ふらりのメモ書き

Microsoft 365 , Power Platform らへん

【Microsoft 365 】Azure AD の動的グループが便利だなぁと思った話


Azure AD Premium の 動的グループが便利だったのでメモ書きです。
あっ、Azure AD ってしれっと書いちゃったけど、Microsoft Entra の Azure Active Directory ですね!

Microsoft 365 Advent Calendar 2022 3日目!
adventar.org

動的セキュリティグループとは?

Azure AD Premium P1 以上の機能で、ユーザーの属性情報で条件を設定することで条件に合ったユーザーをセキュリティグループに追加できる機能です。
例えば、部門(department)が営業部のユーザーを自動的に営業部のセキュリティグループに自動追加するような運用ができます。

また、Microsoft 365 グループを動的グループに設定することもできます。Microsoft 365 グループで動的グループを作成すると、部門が営業部のユーザーは Teams の営業部のチームに自動追加するような運用も可能になります。

ライセンス要件

動的グループのに追加されたユーザー数分、Azure AD P1 以上のライセンスが必要です。

learn.microsoft.com

ゲストユーザーのライセンス要件

ゲストユーザーを動的グループに追加するにも、ライセンス要件を満たす必要があります。
社内の Azure AD Premium P1 を付与したユーザー1名に対し、 ゲストユーザー5名まで Azure AD Premium の機能を利用させることができます。

最近では、Azure AD External Identities の課金モデルが提供されています。Azure サブスクリプションが必要で、一定量以上は課金対象になりますが、月間50,000 アクティブ ユーザーまで無料で Azue AD Premium の機能をゲストユーザーに適用することができます。

なお、Azure AD External Identities の課金モデルでは、テナントに割り当てられているAzure AD Premium サブスクリプションの最も高い価格レベルに基づいて決まるそうです。
Azure AD Premium P1 と Azure AD Premium P2 の両方がテナントにある場合、Azure AD Premium P2 の価格と機能が Azure AD External Identities の課金モデルで提供されます。

learn.microsoft.com

動的セキュリティグループの作り方

公式ドキュメントに記載のある、「"すべてのユーザー" ルールを作成する」を設定してみます。

(user.objectId -ne null) -and (user.userType -eq "Member")

参考: 動的に設定されるグループ メンバーシップのルール - Azure AD - Microsoft Entra | Microsoft Learn

作成手順

それでは作成してみましょう。

手順はこちらに記載があります。
動的グループを作成または編集し、状態を取得する - Azure AD - Microsoft Entra | Microsoft Learn


Azure Active Directory 管理センター
にアクセスします。 Azure Active Directory > グループ を選択します。

すべてのグループ > 新しいグループ を選択して、グループを新規作成します。

グループ名はわかりやすいように設定してください。私はよくセキュリティグループは SGMicrosoft 365 グループは MS で作成しています。
グループの種類 : セキュリティ 、メンバーシップの種類 : 動的ユーザー を選択し「動的クエリの追加」をクリックします。

条件をGUIで設定していくこともできますが、今回は規則の構文の編集をクリックします。

規則の構文の入力欄に、公式のドキュメントにある 「ゲストを除いたすべてのユーザー」の条件を貼り付けます。
貼り付けたら、OK をクリックします。

(user.objectId -ne null) -and (user.userType -eq "Member")

参考: 動的に設定されるグループ メンバーシップのルール - Azure AD - Microsoft Entra | Microsoft Learn

保存 クリックして、保存します。
これで、動的グループの作成ができました。
少し、時間をおくと条件にあったユーザーが作成したグループに追加されます。

作成したグループの確認

先ほど作成した動的セキュリティグループを確認しましょう。

Azure Active Directory 管理センター から すべてのグループを開き、先ほど作成したグループをクリックします。

メンバーをクリックすると、ユーザーが確認できます。
先ほど設定したルールだと、ゲストは除外したのでユーザータイプがメンバーのみが追加されています。しかし、ユーザーだけじゃなく、共有メールボックスや会議室などのリソースも追加されていますね。
Azure AD では、共有メールボックスやリソースメールボックスもメンバーとして取り扱われているようです。

社員だけ取得したい!

ユーザーのcompanyName や department などの属性情報を編集して、それを条件に社員だけを取得する方法はあります。

部署属性が Sales のユーザーを対象にする場合

user.department -eq "Sales"  

参考: 動的に設定されるグループ メンバーシップのルール - Azure AD - Microsoft Entra | Microsoft Learn

ドキュメントを見ていたら、特定のライセンス付与の構文がありました。
これをなんとか、ライセンスを指定せず、ライセンス付与しているという条件で取得できれば、ライセンス付与済みのユーザーを社員として取得できそうな気がします。

user.assignedPlans -any (assignedPlan.servicePlanId -eq "efb87545-963c-4e0d-99df-69c6916d9eb0" -and assignedPlan.capabilityStatus -eq "Enabled")  


参考: 動的に設定されるグループ メンバーシップのルール - Azure AD - Microsoft Entra | Microsoft Learn

ライセンス付与済みを条件に設定する

assignedPlan.servicePlanId が ライセンスを指定しているようなので、その部分を除外するとこんな感じになります。
assignedPlan.capabilityStatus がライセンスの付与状態を指しているようですね。

user.assignedPlans -any (assignedPlan.capabilityStatus -eq "Enabled")  

そして、先ほどのすべてのユーザーと合体させてみます!
さて、これでいけるのか...

(user.objectId -ne null) -and (user.userType -eq "Member") and (user.assignedPlans -any (assignedPlan.capabilityStatus -eq "Enabled"))

動的グループの条件変更

先ほど作成したグループを開き、動的メンバーシップ ルール をクリックします。
規則の構文の編集をクリックし、先ほどの構文を貼り付けて 保存 すれば完了です。

ライセンスを付与していない共有メールボックスや会議室が除外できました!

さいごに

動的グループを様々な条件で作成しておけば、各サービスでアクセス権を設定するときに便利です。
以前、ゲストユーザーがとても多いテナントを管理しているときは、ゲストユーザーのメールドメインを動的グループの条件に設定して管理していたこともあります。

また、テナント内の全ユーザーのグループを1個作成しておくと、Power Apps や Power Automate で社員マスターが欲しい時に役立ちます。

しかし、今回の最後の条件だと、共有メールボックスにライセンスを付与している場合や、Teams Rooms などがある場合はそれも対象に入ってしまうと思いますのでご注意ください。
その場合は条件の工夫なのか属性情報をメンテナンスするなどする必要がありますね。

それでは、良い Microsoft 365 ライフを!