SPICEy Developments
3 日前
いろんなアイデンティティ管理系製品やサービスの実験の記録をしていきます。 後は、関連するニュースなどを徒然と。
ベンダ | サービス/製品 | 特長 | フェデレーション | プロビジョニング | 認証強化 |
---|---|---|---|---|---|
Intel | Intel Cloud SSO | 対応APLが多数 | ○ | ○(サービスによる) | OTP、IP制限、モバイル、時間帯、曜日 |
Microsoft | Windows Azure Active Directory | Office365連携 | ○ | Office365 | AD FS2.x ベースのカスタマイズ |
PingIdentity | PingFederate | オンプレミス | ○ | ○(サービスによる) | 証明書、RSA SecureID、Symantec VIP、PhoneFactor |
タブ | 項目 | 入力値 | 備考 |
---|---|---|---|
全般 | 表示名 | Synchronization Rules | 任意の名称(英字名) |
使用法キーワード | なし(空白) | 一般ユーザにも公開する場合はここに「BasicUI」と入力 | |
UI位置 | 親の順序 | 7 | デフォルトの「管理」が上から6番目なのでその下の7を入力 |
並び順 | 0 | サブメニューを作る場合は親項目の中での並び順を入力 | |
動作 | ナビゲーションURL | ~/IdentityManagement/aspx/syncrule/AllSyncRules.aspx | 相対パスもしくは絶対パスでリソースのURLを入力。同期規則はこのURL |
ローカライズ | サポートされる言語 | 日本語(日本) | マルチ言語の場合のみ |
ローカライズ済みの表示名 | 同期規則 | マルチ言語の場合のみ |
<microsoft.identityServer.web> ... <useRelayStateForIdpInitiatedSignOn enabled="true" /> </microsoft.identityServer.web>
#---------------------------------------------------------------------------------------------------------- set-variable -name URI -value "http://localhost:5725/resourcemanagementservice' " -option constant #---------------------------------------------------------------------------------------------------------- function DeleteObject { PARAM($objectType, $objectId) END { $importObject = New-Object Microsoft.ResourceManagement.Automation.ObjectModel.ImportObject $importObject.ObjectType = $objectType $importObject.TargetObjectIdentifier = $objectId $importObject.SourceObjectIdentifier = $objectId $importObject.State = 2 $importObject | Import-FIMConfig -uri $URI } } #---------------------------------------------------------------------------------------------------------- if(@(get-pssnapin | where-object {$_.Name -eq "FIMAutomation"} ).count -eq 0) {add-pssnapin FIMAutomation} clear-host if($args.count -ne 1) {throw "Missing name parameter"} $objectName = $args[0] if(0 -eq [String]::Compare($objectName,"administrator", $true)) {throw "You can't delete administrator"} if(0 -eq [String]::Compare($objectName,"Built-in Synchronization Account", $true)) {throw "You can't delete Built-in Synchronization Account"} $exportObject = export-fimconfig -uri $URI ` -onlyBaseResources ` -customconfig "/Person[DisplayName='$objectName']" if($exportObject -eq $null) {throw "L:Object not found"} $objectId = (($exportObject.ResourceManagementObject.ObjectIdentifier).split(":"))[2] DeleteObject -objectType "Person" ` -objectId $objectId write-host "`nObject Deleted successfully`n" #---------------------------------------------------------------------------------------------------------- trap { $exMessage = $_.Exception.Message if($exMessage.StartsWith("L:")) {write-host "`n" $exMessage.substring(2) "`n" -foregroundcolor white -backgroundcolor darkblue} else {write-host "`nError: " $exMessage "`n" -foregroundcolor white -backgroundcolor darkred} Exit } #----------------------------------------------------------------------------------------------------------
# # 引数 # 0 : 対象ユーザの表示名(DisplayName) # 1 : 属性名、属性値ペア(「:」区切り) # set-variable -name URI -value "http://localhost:5725/resourcemanagementservice" -option constant clear If(@(Get-PSSnapin | Where-Object {$_.Name -eq "FIMAutomation"} ).count -eq 0) {Add-PSSnapin FIMAutomation} $accountName=$args[0] $Filter = "/Person[DisplayName=$accountName]" $attribute = ($args[1]).split(":")[0] $value = ($args[1]).split(":")[1] $object = export-fimconfig -uri $URI -onlyBaseResources -customconfig ($Filter) -ErrorVariable Err -ErrorAction SilentlyContinue function GetAttributeValue($exportObject,[string] $name) { $attribute = $exportObject.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq $name} if ($attribute -ne $null -and $attribute.Value) { $attribute.Value } } $objectID = GetAttributeValue $object "ObjectID" $objectType = GetAttributeValue $object "ObjectType" $importChange = New-Object Microsoft.ResourceManagement.Automation.ObjectModel.ImportChange $importChange.Operation = 1 $importChange.AttributeName = $attribute $importChange.AttributeValue = $value $importChange.FullyResolved = 1 $importChange.Locale = "Invariant" $importObject = New-Object Microsoft.ResourceManagement.Automation.ObjectModel.ImportObject $importObject.ObjectType = $objectType $importObject.TargetObjectIdentifier = $objectID $importObject.SourceObjectIdentifier = $objectID $importObject.State = 1 $importObject.Changes = (,$importChange) $importObject | Import-FIMConfig -uri $URI -ErrorVariable Err -ErrorAction SilentlyContinue write-host "completed"
#---------------------------------------------------------------------------------------------------------- set-variable -name URI -value "http://localhost:5725/resourcemanagementservice' " -option constant #---------------------------------------------------------------------------------------------------------- function SetAttribute { PARAM($object, $attributeName, $attributeValue) END { $importChange = New-Object Microsoft.ResourceManagement.Automation.ObjectModel.ImportChange $importChange.Operation = 1 $importChange.AttributeName = $attributeName $importChange.AttributeValue = $attributeValue $importChange.FullyResolved = 1 $importChange.Locale = "Invariant" if ($object.Changes -eq $null) {$object.Changes = (,$importChange)} else {$object.Changes += $importChange} } } #---------------------------------------------------------------------------------------------------------- function CreateObject { PARAM($objectType) END { $newObject = New-Object Microsoft.ResourceManagement.Automation.ObjectModel.ImportObject $newObject.ObjectType = $objectType $newObject.SourceObjectIdentifier = [System.Guid]::NewGuid().ToString() $newObject } } #---------------------------------------------------------------------------------------------------------- if(@(get-pssnapin | where-object {$_.Name -eq "FIMAutomation"} ).count -eq 0) {add-pssnapin FIMAutomation} clear-host if($args.count -ne 1) {throw "You need to specify your attribute values as parameter"} $attributes = ($args[0]).split("|") if(0 -ne [String]::Compare(($attributes[0]).split(":")[0],"displayname", $true)) {throw "You need to specify a display name"} $objectName = ($attributes[0]).split(":")[1] $exportObject = export-fimconfig -uri $URI ` -onlyBaseResources ` -customconfig "/Person[DisplayName='$objectName']" if($exportObject) {throw "L:User $objectName already exists"} $newUser = CreateObject -objectType "Person" foreach($attribute in $attributes) { $attrData = $attribute.split(":") SetAttribute -object $newUser ` -attributeName $($attrData[0]) ` -attributeValue $($attrData[1]) } $newUser | Import-FIMConfig -uri $URI write-host "`nUser created successfully`n" #---------------------------------------------------------------------------------------------------------- trap { $exMessage = $_.Exception.Message if($exMessage.StartsWith("L:")) {write-host "`n" $exMessage.substring(2) "`n" -foregroundcolor white -backgroundcolor darkblue} else {write-host "`nError: " $exMessage "`n" -foregroundcolor white -backgroundcolor darkred} Exit } #----------------------------------------------------------------------------------------------------------