Courier-mta の調整
4 日前
いろんなアイデンティティ管理系製品やサービスの実験の記録をしていきます。 後は、関連するニュースなどを徒然と。
| ベンダ | サービス/製品 | 特長 | フェデレーション | プロビジョニング | 認証強化 |
|---|---|---|---|---|---|
| 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
}
#----------------------------------------------------------------------------------------------------------