Microsoft Entra ID で静的なグループ メンバーシップを動的に変更する

Microsoft Entra の一部である Microsoft Entra ID で、グループのメンバーシップを静的から動的 (またはその逆) に変更できます。 Microsoft Entra ID は、システム内で同じグループ名と ID を維持するため、グループに対するすべての既存の参照は、引き続き有効です。 新しいグループを作成する場合は、これらの参照を更新する必要があります。 動的グループ メンバーシップは、ユーザーの追加と削除という管理オーバーヘッドを排除します。 この記事では、ポータルまたは PowerShell コマンドレットを使用して、既存のグループを静的から動的なメンバーシップに変換する方法について説明します。

警告

既存の静的グループを動的グループに変更すると、すべての既存のメンバーがグループから削除され、新しいメンバーを追加するためにメンバーシップ ルールが処理されます。 グループを使用してアプリまたはリソースへのアクセスを制御している場合、メンバーシップ ルールが完全に処理されるまで、元のメンバーはアクセス権を失う場合があることに注意してください。

グループの新しいメンバーシップが予期したとおりのものになるように、事前に新しいメンバーシップ ルールをテストすることをお勧めします。

グループのメンバーシップの種類を変更する

次の手順は、グローバル管理者、ユーザー管理者、またはグループ管理者のロールが割り当てられているアカウントを使用して実行できます。

  1. グループ管理者以上の権限で Microsoft Entra 管理センターにサインインします。
  2. [Microsoft Entra ID] を選びます。
  3. グループ
  4. [すべてのグループ] の一覧から、変更するグループを開きます。
  5. [プロパティ] を選択します。
  6. グループの [プロパティ] ページで、目的のメンバーシップの種類に応じて、[割り当て済み] (静的)、[動的ユーザー]、または [動的なデバイス] の [メンバーシップの種類] を選びますす。 動的メンバーシップの場合は、ルール ビルダーを使って簡単なルールのオプションを選んだり、メンバーシップ ルールを自分で作成したりすることができます。

次の手順は、ユーザーのグループを静的メンバーシップから動的メンバーシップに変更する例です。

  1. 選択したグループの [プロパティ] ページで、 [動的ユーザー][メンバーシップの種類] を選び、グループ メンバーシップの変更について説明するダイアログ ボックスで [はい] を選んで続行します。

    Screenshot of selecting membership type of dynamic user.

  2. [動的クエリの追加] を選び、ルールを指定します。

    Screenshot of entering the rule for the dynamic group.

  3. ルールを作成した後、ページの下部にある [クエリの追加] を選びます。

  4. グループの [プロパティ] ページで [保存] を選んで、変更を保存します。 グループの一覧でグループの [メンバーシップの種類] がすぐに更新されます。

ヒント

入力したメンバーシップ ルールが正しくない場合、グループの変換が失敗する可能性があります。 ポータルの右上隅に通知が表示されます。ルールがシステムで受け付けられない理由の説明が含まれます。 それをよく読み、有効にするためにできる調整の方法を理解してください。 ルールの構文の例、メンバーシップの規則でサポートされているプロパティ、演算子、および値の完全な一覧については、Microsoft Entra ID でのグループに対する動的メンバーシップの規則に関する記事を参照してください。

グループのメンバーシップの種類を変更する (PowerShell)

Note

動的グループ プロパティを変更するには、Microsoft Graph PowerShell モジュールのコマンドレットを使用する必要があります。 詳細については、Microsoft Graph PowerShell SDK のインストールに関する記事を参照してください。

既存のグループにおいてメンバーシップの管理を切り替える関数を次に示します。 この例では、GroupTypes プロパティを正しく操作し、動的なメンバーシップに関係のない値を保持するようにしてください。

#The moniker for dynamic groups as used in the GroupTypes property of a group object
$dynamicGroupTypeString = "DynamicMembership"

function ConvertDynamicGroupToStatic
{
    Param([string]$groupId)

    #existing group types
    [System.Collections.ArrayList]$groupTypes = (Get-MgGroup -GroupId $groupId).GroupTypes

    if($groupTypes -eq $null -or !$groupTypes.Contains($dynamicGroupTypeString))
    {
        throw "This group is already a static group. Aborting conversion.";
    }


    #remove the type for dynamic groups, but keep the other type values
    $groupTypes.Remove($dynamicGroupTypeString)

    #modify the group properties to make it a static group: i) change GroupTypes to remove the dynamic type, ii) pause execution of the current rule
    Update-MgGroup -GroupId $groupId -GroupTypes $groupTypes.ToArray() -MembershipRuleProcessingState "Paused"
}

function ConvertStaticGroupToDynamic
{
    Param([string]$groupId, [string]$dynamicMembershipRule)

    #existing group types
    [System.Collections.ArrayList]$groupTypes = (Get-MgGroup -GroupId $groupId).GroupTypes

    if($groupTypes -ne $null -and $groupTypes.Contains($dynamicGroupTypeString))
    {
        throw "This group is already a dynamic group. Aborting conversion.";
    }
    #add the dynamic group type to existing types
    $groupTypes.Add($dynamicGroupTypeString)

    #modify the group properties to make it a static group: i) change GroupTypes to add the dynamic type, ii) start execution of the rule, iii) set the rule
    Update-MgGroup -GroupId $groupId -GroupTypes $groupTypes.ToArray() -MembershipRuleProcessingState "On" -MembershipRule $dynamicMembershipRule
}

グループを静的にするには:

ConvertDynamicGroupToStatic "a58913b2-eee4-44f9-beb2-e381c375058f"

グループを動的にするには:

ConvertStaticGroupToDynamic "a58913b2-eee4-44f9-beb2-e381c375058f" "user.displayName -startsWith ""Peter"""

次のステップ

これらの記事では、Microsoft Entra ID でのグループに関する追加情報が提供されています。