sidebarIdM実験室いろんなアイデンティティ管理系製品やサービスの実験の記録をしていきます。後は、関連するニュースなどを徒然と。退職そして復職(ILM2007で実装してみました)実際にあった要件で、1人事システムからはアクティブ(在籍中の)ユーザ一覧のみしか渡せない2非アクティブユーザのActiveDirectory上のエントリを無効化したい3一度退職した人も復帰するケースがあるので、その際はActiveDirectory上のエントリを再度有効化してほしい(結構偉い人の場合が多いので新規IDで、というわけにはいかないらしい・・・)という話がありました。話を聞くだけだと「ふ~ん、なるほど」という話なんですが、実装をしてみるとそれなりに面倒です。Web上などで出回っている情報だと、人事システム側にEmployeeStatusのような状態を示す属性があり、その属性を基にActiveDirectoryのuserAccountControlを変更して、、、というようになっています。冒頭に挙げた例も含め実際の要件ってそんなにIdMに都合のよいインプット情報が渡ってくるわけではないので、今回の様に工夫が必要になります。1ですが、要するに入社するとエントリが増え、異動するとエントリの属性が変更され、退職するとエントリが消えるということになります。extensionを書いて、その中でcsentryのuserAccountControlに無効値(ADS_UF_ACCOUNTDISABLE)をセットしてあげれば問題ないんですが、今回は最後3の復帰を考えてあげないといけません。通常のProvisioningの動きだと、MetaVerse(以下MV)と対象のConnectorSpace(以下CS)のオブジェクト間にリンクがあるかどうかによってオブジェクト(csentry)の新規作成をするか、既存エントリの更新を行うかが決定されます。今回普通にdeprovisionを使ってしまうと、MVとMA_ADのCS内オブジェクト間のリンクが切断されてしまいますし(※)、そもそもdeprovisionはMVのオブジェクトが削除されないと走らない、という制限があります。再接続不可能な状態でdisconnectするしか存在しません。Exist」という形でエラーが出てしまいます。・人事システム用MA(MA_HR_PERSON)のCSとMVの間のリンク状況を見てAD_MAのCS内オブジェクトの属性(userAccountControl)をコントロールするということをしてみます。extensionを使います。この中で、対象のmventryがMA_HR_PERSONのCSとリンクがあるかどうかを、mventry.ConnectedMAs("MA_HR_PERSON").Connectors.Countに入っている値を見ることで判断します。値が0ならリンクはありませんし、1ならリンクされているオブジェクトがある、と判断できます。実際のコードはこんな感じです。Sub以下、実際に実行した結果です。よりアクセス解析を行っています。品質向上のみを目的とし、個人の特定などを目的とはしておりません。中で公開されることはあります。問い合わせ不明点等は管理人までご連絡ください。本プライバシーポリシーは予告なく変更/削除することがあります。プライバシーに関するトラブルについては一切の責任を負いかねますのでご了承ください。