新しい処理の一時停止の切り替えが Azure AD 管理センターに表示される

Azure AD 動的グループ用の最近の Azure AD 管理センターの更新により、管理者はグループ メンバーを識別するメンバーシップ クエリの処理を一時停止できます。変更に関するアナウンスが見つからず、プレビューとしてタグ付けされていませんが、処理を一時停止するためのトグルがあり(図1)、機能します。

図 1: Azure AD 動的グループの処理を一時停止する

処理の一時停止の切り替えをオフに戻すと、Azure AD はメンバーシップ規則の処理を続行できます。動的グループのプロパティは、処理の現在の状態と、最後のメンバーシップ変更がいつ発生したかを示します。コモン 処理状態 Azure AD の動的グループは次のとおりです。

  • 成功: Azure AD がメンバーシップ クエリを評価し、メンバーシップは最新です。
  • 評価中: Azure AD は現在、グループ メンバーを識別するためにメンバーシップ クエリを解決しています。
  • 処理中: Azure AD は現在メンバーシップを処理しています。
  • 処理エラー: Azure AD はメンバーシップ クエリを評価できませんでした。
  • 更新の一時停止: 管理者が更新を一時停止しました。メンバーシップは、更新が再開されるまで静的なままです。
  • 未開始: Azure AD は、動的グループのメンバーシップの評価をまだ開始していません。

Azure AD は、サービスの需要が許す限りメンバーシップを再評価し、少なくとも 1 日に 1 回はチェックすることを目標としています。そのため、Azure AD は、メンバーシップ規則のスコープ内に収まるユーザー オブジェクトに加えられた変更を最大 24 時間処理しない可能性があります。私の経験では、更新は以前に行われることがよくありますが、この期待を設定するのが賢明です。

動的メンバーシップ更新の報告

動的メンバーシップ更新の現在の状況を確認するには、PowerShell を使用してテナント内のすべての動的グループを検索し、最後のメンバーシップ更新のタイムスタンプ、処理が有効になっているかどうか、および現在の更新状態を報告します。Microsoft Graph PowerShell SDK を使用してジョブを実行する方法は次のとおりです。

Connect-MgGraph
Select-MgProfile Beta
[array]$Groups = Get-MgGroup -Filter "groupTypes/any(c:c eq 'DynamicMembership')" -All
If (!($Groups)) { 
    Write-Host "No dynamic Azure AD groups found"
} Else { 
   Write-Host ("Processing {0} dynamic Azure AD groups" -f $Groups.count) }
$Report = [System.Collections.Generic.List[Object]]::new()
$Groups = $Groups | Sort-Object DisplayName
ForEach ($Group in $Groups) {
  $Options = $Group.ResourceProvisioningOptions -join ", "
  [array]$Members = Get-MgGroupMember -GroupId $Group.Id
  [array]$Owners = Get-MgGroupOwner -GroupId $Group.Id
  $DynamicData = Get-MgGroup -GroupId $Group.Id -Property MembershipRuleProcessingStatus
  $DataLine = [PSCustomObject] @{
    Id              = $Group.Id
    DisplayName     = $Group.DisplayName
    Owners          = $Owners.Count
    Members         = $Members.Count
    ProcessingState = $Group.MembershipRuleProcessingState
    LastUpdate      = $DynamicData.MembershipRuleProcessingStatus.LastMembershipUpdated
    Status          = $DynamicData.MembershipRuleProcessingStatus.Status
    Options         = $Options }
  $Report.Add($DataLine)
}

コードが Get-MgGroup グループのメンバーシップ規則の処理状態を保持しているプロパティをフェッチするコマンドレット。何らかの理由で、このプロパティが取得するリストに含まれている場合、フィルター処理されたグループのセットをフェッチする元の呼び出しは失敗します。グラフ X-Ray アドオンで明らかになったように、Azure AD 管理センターでも同じフローが発生します。

このコードには、 Get-MgGroupOwner, Get-MgGroupMemberそして Get-MgUser 各グループの所有者とメンバーのセットをフェッチするコマンドレット。しかし、 Get-MgGroupOwner そして Get-MgGroupMember コマンドレットは、グループの所有者とメンバーのセットをそれぞれ返し、表示名ではなくオブジェクト識別子を返します。この情報を使用してカウントを報告することはできますが、所有者名を報告するには、実行する必要があります Get-MgUser.Microsoft Graph PowerShell SDK を使用して Azure AD ユーザーと Azure AD グループを操作する方法の詳細については、これらの記事を参照してください。図 2 に、レポートの出力を示します。

Azure AD 動的グループとそのメンバーシップ状態のレポート
図 2: Azure AD 動的グループとそのメンバーシップ状態のレポート

メンバーシップの更新が一時停止された動的グループには、最終更新日が 2000 年 1 月 1 日と表示されます。図 2 の他の 2 つのグループの日付は奇数です (1/1/0001)。これらは古い動的グループ(2017年に作成)で、メンバーシップはそれ以来変更されていません。メンバーシップの変更が発生した場合、日付は正しいものになります。

動的グループと動的配布リスト

Azure AD 動的グループと動的配布リストは大きく異なるオブジェクトですが、この 2 つを混同したり、2 つのオブジェクトがほぼ同じであると信じている人もいます。Azure AD 動的グループの Azure AD Premium P1 ライセンスを取得するという要件とは別に、次の 3 つの大きな違いがあります。

  • 動的配布リストは Azure AD には存在しません。これらは交換オブジェクトです。
  • 動的配布リストは、より広範なメンバー オブジェクト (メールが有効な受信者) のセットをサポートします。
  • 動的配布リストは、カスタム メンバーシップ フィルター (クエリ) を作成するための幅広いプロパティ セットをサポートします。

2 種類の動的グループの違いの詳細については、この記事を参照してください。

動的制限

grの評価と処理に必要な処理負荷のためOUPメンバーシップ、 Azure AD の制限 テナントあたりの動的グループと動的管理単位の合計数は 5,000 です。2021 年 12 月、Microsoft は、リソースを節約するための同様の試みで、Exchange Online が動的配布リストのメンバーシップを評価する方法を変更しました。

メンバーシップ処理を無効にする理由

Microsoftがメンバーシップ処理を一時停止する柔軟性を追加してくれたことに感謝しますが、良いユースケースを見つけるのに苦労しています。1 つは、ディレクトリが流動的な状態にあり、一定期間の動的グループ メンバーシップの一貫性が必要な合併および買収シナリオです。それとは別に、マイクロソフトがこの機能を導入した理由はわかりません。ただし、現在はここにあり、必要に応じて利用できます。


Microsoft 365 テナント管理者が利用できるデータを活用する方法については、 IT プロフェッショナル向け Office 365 電子書籍。私たちは物事がどのように機能するかを理解するのが大好きです。