Azure AD Connectから利用場所属性を設定

皆さんこんにちは。国井です。

2020年2月18日に私のブログに接続できなくなるという障害があり、
アクセスしてきてくださった方にはご迷惑をおかけしました。

さて、今日の話題です。
Azure ADユーザーにOffice 365などのライセンスを割り当てる場合、利用場所という属性を事前に設定することが必須になります。
Azure ADに直接作成するユーザーであれば、ユーザー作成時に利用場所も一緒に作成すればよいと思うのですが、オンプレミスActive DirectoryからAzure AD Connectで同期されたユーザーの場合はオンプレミスの国/地域属性から利用場所属性へ同期してほしい。

ところがActive Directoryユーザーの国/地域属性を設定して、

1

Azure AD Connectで同期すると、

2

ご覧のように利用場所属性ではなく、国/リージョン属性に設定されてしまいます。
(違う、そうじゃない!)

これは国/地域は c という属性であるのに対して、利用場所は usageLocation という異なる属性を採用していることが起因しています。そのため、Azure AD Connectで同期するときに c 属性を usageLocation 属性に同期するようなマッピングを設定してあげればよいのです。

Azure AD Connectのマッピングを設定

Azure AD Connectのマッピング設定にはSynchronization Rules Editorというツールを使います。Add New Ruleボタンを押してルールを作り、

4

ルール作成のウィザード画面では最初に
・Name:適当
・Connected System:ADドメイン名
・Connected System Object Type:user
・Metaverse Object Type:person
・Link Type:Join
・Precedence:99より下の数字
のように設定します。

5

次にウィザード画面を2つほど飛ばして、Transformationsページに移動したマッピングルールを定義します。
・FromType:Expression
・Target Attribute:usageLocation
・Source:[c]

6

これで設定は完了です。あとはAzure AD Connectで同期すれば、国/地域属性の値がAzure ADの利用場所属性に設定されます。

ちなみにオンプレミスADの国/地域属性を設定していないけど、利用場所属性を設定したいときはTransformationsページで次のように設定するとよいでしょう。

・FromType:Constant
・Target Attribute:usageLocation
・Source:JP

そうすると、同期ユーザー全員が利用場所=日本になります。
また、国/地域属性の値が入っているときはその設定を優先し、そうでなければ日本になるように設定する場合であれば、

・FromType:Expression
・Target Attribute:usageLocation
・Source:IIF(IsNullOrEmpty(),”JP”,)

iKenichiさんにいただいたコメントのように書きたいのですが、なぜかエディターが
勝手に文字列を変換してしまうので、以下のコメントのIIF文を参照ください。

のように書くこともできます。