はじめに
なぜこんなことになったのかというと、職場で使っているAzureADはオンプレのADとDirectory Sync8ADFS)を使ってユーザの同期をしていました。
しかし、システムリプレースに伴って、オンプレADのWindowsドメイン名が変わり、Direcotry Syncのサーバも新規で構築することになりました。
この機会にDirecotry Syncをクラウド同期(この辺については割愛)に変更したのですが、その過程でAzureAD側で一部の属性を格納している属性名が変わったのです。
それまでは etension_<APP ID>_<属性名> という属性名だったのですが、クラウド同期すると <属性名> になったのです。
extensionで始まる属性名はAzureADの拡張属性なので、通常のWebUIでは見ることができません。
しかし、ここにどんな値が入っているのかを確認する必要がでてきました。
というのも、新しく登録したユーザは、<属性名>に値が格納されており、古いユーザはextension・・・に値が入っているのです。
この属性名の違いが、動的グループのルール設定などでちょっと困ったことなりました
値の確認
WebUIでは見れないのですが、情報を探しているとAPIもしくはPowewShellで取得ができるらしということがわかりました。
しかし、PowewShellは2.0以降でAzureADモジュールがないとダメっぽい。いろいろめんどくさいので、却下です。
そこでAPIを使うことにしました。
Pythonか何かで取得してもいいのですが、今回は単にどんな値が入っているかわかればいいので、Microsoft Graph Explorerを使うことにしました。
サインイン
Microsoft Graph Explorerをブラウザで開きます。URLはこちら https://developer.microsoft.com/en-us/graph/graph-explorer です。
こんな感じでの画面が開きます。
今はマスクしてありますが、画面の右上にサインインのリンクがあるので、AzureADのアクセス権限があるMicrosoftアカウントでサインインします。
サインインに成功するとメニューバーの”Tenant”の項目に自分の使っているAzureADのテナント名が表示されているはずです。
属性の確認
すべての属性を見るには、beta/usersをGETします。
Microsoft Graph Explorerで”GET” ”beta" "https://graph.microsoft.com/beta/users/6XXXXXXXXX-XXXXXXXXXXXX-XXXX"を入力して、"Run query"をクリックすると結果が返ってきました。
よく見ると、”extension_e5XXXXXXXXXXX_ipPhone”と”extension_e5XXXXXXXXXXX_facsimileTelephoneNumber”の属性が見えています。
これがWebUIでは見れないんですよね。
なお、UIDについては、AzureADのWebUIから確認できますので、そちらからコピペします。
権限について
もし、エラーになる場合は、権限の確認をしてください。
Microsoft Graph Explorerで”Modify Permissions”のタブを開きます。
あとは必要な権限を選んで、”Consent”すれば付与されます。
(この時に再度パスワード入力を求められます)
Directory.Read.Allがあればほぼ大丈夫じゃないかと。
今回はいろいろテストするためにDirectory.ReadWrite.Allが付与されています。