👥

Azure AD のユーザーに extensionAttribute を追加する

2023/04/17に公開

はじめに

Azure AD では、ユーザーとデバイスのリソースに 15 個の extensionAttribute (拡張属性) が準備されており、これらに任意の値をセットすることで動的グループなどの属性情報に基づく機能に活用することが可能です。今回はユーザーの拡張属性の設定方法を説明します。
https://learn.microsoft.com/ja-jp/graph/extensibility-overview?tabs=http#extension-attributes

前提条件

こちらの属性、オンプレ AD から同期したユーザーに対しては設定不可です。また、以前にオンプレミス AD から同期されていた場合、 MS Graph API 経由で管理ができないようで、 Exchange 管理 センターまたは PowerShell の Exchange Online V2 モジュールを使用する必要があるようです。
https://learn.microsoft.com/ja-jp/graph/api/resources/onpremisesextensionattributes?view=graph-rest-1.0

なお、オンプレ AD においてはこの拡張属性は Exhcange Server 関連のもので、スキーマ拡張が必要です。なので、オンプレ AD 前提なのであれば、extensionAttribute に拘らず、Azure AD Connect のディレクトリ拡張機能を使ったほうが簡単なようですね。
https://learn.microsoft.com/ja-jp/azure/active-directory/hybrid/how-to-connect-sync-feature-directory-extensions

設定してみる

設定には MS Graph API からなので、Graph Explorer を使います。設定するにはまずユーザーの ID が必要なので、以下 URI でユーザーの一覧を取得します。Method は GET です。
この際、後の手順も踏まえて Directory.ReadWrite.All を許可しておきます。

https://graph.microsoft.com/v1.0/users/


ID が確認できたら、extensionAttribute の設定状況を確認します。Method は GET です。

https://graph.microsoft.com/v1.0/users/{user-id}?$select=onPremisesExtensionAttributes


次に extentionAttribute1 を設定します。URI は以下で、Method は PATCH です。Directory.AccessAsUser.All の許可が必要になります。

https://graph.microsoft.com/v1.0/users/{userId}?$select=onPremisesExtensionAttributes

Request の Body には以下を入れます。

{ 
    "onPremisesExtensionAttributes": { 
        "extensionAttribute1": "test-user" 
    } 
}

成功すると 204 が返ってきます。 ※都合により、↑ までの手順と対象のユーザーを変えました。


GET で設定が反映されているか確認します。

Microsoft (有志)

Discussion