エンタイトルメント管理でアクセス パッケージの割り当てを表示、追加、削除する

エンタイトルメント管理では、アクセス パッケージに割り当てられているユーザー、そのポリシー、状態、ユーザー ライフサイクルを確認できます (プレビュー)。 アクセス パッケージに適切なポリシーが設定されている場合は、ユーザーをアクセス パッケージに直接割り当てることもできます。 この記事では、アクセス パッケージの割り当てを表示、追加、および削除する方法について説明します。

前提条件

エンタイトルメント管理を使用し、ユーザーをアクセス パッケージに割り当てるには、次のいずれかのライセンスが必要です。

  • Microsoft Entra ID P2
  • Enterprise Mobility + Security (EMS) E5 ライセンス
  • Microsoft Entra ID Governance サブスクリプション

割り当てられているユーザーを表示する

ヒント

この記事の手順は、開始するポータルに応じて若干異なる場合があります。

前提条件となるロール: 全体管理者、Identity Governance 管理者、カタログ所有者、アクセス パッケージ マネージャー、またはアクセス パッケージ割り当てマネージャー

  1. Microsoft Entra 管理センターIdentity Governance 管理者以上としてサインインします。

  2. [Identity Governance]>[エンタイトルメント管理]>[アクセス パッケージ] の順に移動します。

  3. [アクセス パッケージ] ページで、アクセス パッケージを開きます。

  4. [割り当て] を選んで、アクティブな割り当ての一覧を表示します。

    List of assignments to an access package

  5. 特定の割り当てを選ぶと、その他の詳細が表示されます。

  6. 一部のリソース ロールが適切にプロビジョニングされなかった割り当ての一覧を表示するには、フィルターの状態を選び、[配信しています] を選びます。

    [要求] ページでユーザーの対応する要求を見つけることで、配信エラーのその他の詳細を確認できます。

  7. 有効期限切れの割り当てを確認するには、フィルターの状態を選び、[期限切れ] を選びます。

  8. フィルター処理された一覧の CSV ファイルをダウンロードするには、[ダウンロード] を選びます。

プログラムによる割り当ての表示

Microsoft Graph を使用して割り当てを表示する

Microsoft Graph を使用して、アクセス パッケージの割り当てを取得することもできます。 委任された EntitlementManagement.Read.All または EntitlementManagement.ReadWrite.All アクセス許可を持つアプリケーションを有する適切なロールのユーザーは、API を呼び出して、accessPackageAssignments をリストすることができます。 また、アプリケーションのアクセス許可 EntitlementManagement.Read.All または EntitlementManagement.ReadWrite.All のアクセス許可があるアプリケーションもこの API を使用して、すべてのカタログにまたがる割り当てを取得できます。

Microsoft Graph は結果をページ単位で返し、結果のすべてのページが読み取られるまで、各応答で @odata.nextLink プロパティの結果の次のページへの参照を返し続けます。 すべての結果を読み取るには、@odata.nextLink プロパティが返されなくなるまで、各応答で返された @odata.nextLink プロパティを使用して Microsoft Graph を呼び出し続ける必要があります。これは、「アプリで Microsoft Graph データをページングする」で説明しています。

ID ガバナンス管理者は複数のカタログからアクセス パッケージを取得できますが、ユーザーまたはアプリケーションのサービス プリンシパルがカタログ固有の委任された管理者ロールにのみ割り当てられている場合、その要求では、特定のアクセス パッケージを示すようにフィルターを指定する必要があります (例: $filter=accessPackage/id eq 'a914b616-e04e-476b-aa37-91038f0b165b')。

PowerShell を使用した割り当ての表示

また、PowerShell 内で Identity Governance 用の Microsoft Graph PowerShell コマンドレット モジュール バージョン 2.1.x 以降の Get-MgEntitlementManagementAssignment コマンドレットを使って、アクセス パッケージへの割り当てを取得することもできます。 このスクリプトは、Microsoft Graph PowerShell コマンドレット モジュール バージョン 2.4.0 を使って、特定のアクセス パッケージへのすべての割り当てを取得する方法を示しています。 このコマンドレットは、Get-MgEntitlementManagementAccessPackage コマンドレットからの応答に含まれるアクセス パッケージ ID をパラメーターとして受け取ります。 Get-MgEntitlementManagementAccessPackage コマンドレットを使う場合は、必ず -All フラグを含めて、割り当てのすべてのページが返されるようにします。

Connect-MgGraph -Scopes "EntitlementManagement.Read.All"
$accesspackage = Get-MgEntitlementManagementAccessPackage -Filter "displayName eq 'Marketing Campaign'"
if ($null -eq $accesspackage) { throw "no access package"}
$assignments = @(Get-MgEntitlementManagementAssignment -AccessPackageId $accesspackage.Id -ExpandProperty target -All -ErrorAction Stop)
$assignments | ft Id,state,{$_.Target.id},{$_.Target.displayName}

上記のクエリでは、期限切れと配信中の割り当てに加え、配信済みの割り当ても返されます。 期限切れまたは配信中の割り当てを除外する場合は、アクセス パッケージ ID と割り当ての状態を含むフィルターを使用できます。 このスクリプトは、フィルターを使って特定のアクセス パッケージの状態 Delivered の割り当てのみを取得する方法を示しています。 このスクリプトを実行すると、割り当てごとに 1 行の CSV ファイル assignments.csv が生成されます。

Connect-MgGraph -Scopes "EntitlementManagement.Read.All"
$accesspackage = Get-MgEntitlementManagementAccessPackage -Filter "displayName eq 'Marketing Campaign'"
if ($null -eq $accesspackage) { throw "no access package"}
$accesspackageId = $accesspackage.Id
$filter = "accessPackage/id eq '" + $accesspackageId + "' and state eq 'Delivered'"
$assignments = @(Get-MgEntitlementManagementAssignment -Filter $filter -ExpandProperty target -All -ErrorAction Stop)
$sp = $assignments | select-object -Property Id,{$_.Target.id},{$_.Target.ObjectId},{$_.Target.DisplayName},{$_.Target.PrincipalName}
$sp | Export-Csv -Encoding UTF8 -NoTypeInformation -Path ".\assignments.csv"

ユーザーを直接割り当てる

場合によっては、ユーザーがアクセス パッケージを要求するプロセスをたどらなくて済むように、アクセス パッケージに特定のユーザーを直接割り当てることもできます。 ユーザーを直接割り当てるには、アクセス パッケージに、管理者に直接割り当てを許可するポリシーが必要です。

前提条件となるロール: グローバル管理者、ID ガバナンス管理者、ユーザー管理者、カタログ所有者、アクセス パッケージ マネージャー、またはアクセス パッケージ割り当てマネージャー

  1. Microsoft Entra 管理センターIdentity Governance 管理者以上としてサインインします。

  2. [Identity Governance]>[エンタイトルメント管理]>[アクセス パッケージ] の順に移動します。

  3. [アクセス パッケージ] ページで、アクセス パッケージを開きます。

  4. 左側のメニューで、[割り当て] を選びます。

  5. [新しい割り当て] を選んで、[ユーザーのアクセス パッケージへの追加] を開きます。

    Assignments - Add user to access package

  6. ユーザーの今後の要求とライフサイクルを統制、追跡するためのポリシーを [ポリシーの選択] リストで選択します。 選んだユーザーに異なるポリシー設定を割り当てたい場合は、[新しいポリシーの作成] を選んで新しいポリシーを追加できます。

  7. ポリシーを選択すると、ユーザーを追加して、選択したポリシーに基づいて、このアクセス パッケージを割り当てるユーザーを選択できるようになります。

    注意

    質問付きのポリシーを選択した場合は、一度に 1 人のユーザーのみを割り当てることができます。

  8. 選択したユーザーの割り当てを開始および終了する日付と時刻を設定します。 終了日が指定されていない場合は、ポリシーのライフサイクルの設定が使われます。

  9. 必要に応じて、記録保存のために直接割り当ての妥当性を入力します。

  10. 選んだポリシーに追加の要求元情報が含まれている場合は、[質問の表示] を選んでユーザーに代わって回答し、[保存] を選びます。

    Assignments - click view questions

    Assignments - questions pane

  11. [追加] を選んで、選んだユーザーをアクセス パッケージに直接割り当てます。

    しばらくしてから [最新の情報に更新] を選ぶと、割り当ての一覧にユーザーが表示されます。

注意

ユーザーをアクセス パッケージに割り当てる際、管理者は、そのユーザーが既存のポリシー要件に基づいてそのアクセス パッケージの対象となっていることを確認する必要があります。 そうしない場合、ユーザーはアクセス パッケージに正常に割り当てられません。 ユーザー リクエストの承認を必要とするポリシーがアクセス パッケージに含まれている場合、指定された承認者による必要な承認を得ずに、ユーザーを直接アクセス パッケージに割り当てることはできません。

任意のユーザーを直接割り当てる (プレビュー)

エンタイトルメント管理により、外部ユーザーをアクセス パッケージに直接割り当てて、パートナーとの共同作業を簡単にすることもできます。 これを行うには、アクセス パッケージに、まだディレクトリに存在しないユーザーがアクセスを要求できるようにするポリシーがある必要があります。

前提条件となるロール: グローバル管理者、ID ガバナンス管理者、ユーザー管理者、カタログ所有者、アクセス パッケージ マネージャー、またはアクセス パッケージ割り当てマネージャー

  1. Microsoft Entra 管理センターIdentity Governance 管理者以上としてサインインします。

  2. [Identity Governance]>[エンタイトルメント管理]>[アクセス パッケージ] の順に移動します。

  3. [アクセス パッケージ] ページで、アクセス パッケージを開きます。

  4. 左側のメニューで、[割り当て] を選びます。

  5. [新しい割り当て] を選択して、 [ユーザーのアクセス パッケージへの追加] を開きます。

  6. [ポリシーの選択] の一覧で、 [自分のディレクトリ内以外のユーザーの場合] に設定されることを許可するポリシーを選択します

  7. [任意のユーザー] を選択します。 このアクセス パッケージに割り当てるユーザーを指定することができます。 Assignments - Add any user to access package

  8. ユーザーの [名前] (省略可能) とユーザーの [メール アドレス] (必須) を入力します。

    注意

    • 追加するユーザーは、ポリシーのスコープ内にある必要があります。 たとえば、ポリシーが [特定の接続済み組織] に設定されている場合、ユーザーのメールアドレスは、選択した組織のドメインからのものである必要があります。 追加しようとしているユーザーのメール アドレスが jen@foo.com でも、選択した組織のドメインが bar.com である場合、そのユーザーをアクセス パッケージに追加することはできません。
    • 同様に、 [構成済みの接続されたすべての組織] を含めるようにポリシーを設定した場合、ユーザーのメール アドレスは、構成されている接続済み組織のいずれかからのものである必要があります。 そうでない場合、ユーザーはアクセス パッケージに追加されません。
    • アクセス パッケージに任意のユーザーを追加する場合は、ポリシーを構成するときに、 [すべてのユーザー (すべての接続済み組織 + 外部ユーザー)] を選択するようにする必要があります。
  9. 選択したユーザーの割り当てを開始および終了する日付と時刻を設定します。 終了日が指定されていない場合は、ポリシーのライフサイクルの設定が使われます。

  10. [追加] を選んで、選んだユーザーをアクセス パッケージに直接割り当てます。

  11. しばらくしてから [最新の情報に更新] を選ぶと、割り当ての一覧にユーザーが表示されます。

プログラムによるユーザーの直接割り当て

Microsoft Graph を使用してアクセス パッケージにユーザーを割り当てる

Microsoft Graph を使用して、アクセス パッケージにユーザーを直接割り当てることもできます。 委任された EntitlementManagement.ReadWrite.All アクセス許可を持つアプリケーション、または EntitlementManagement.ReadWrite.All アプリケーションのアクセス許可を持つアプリケーションを有する適切なロールのユーザーは、API を呼び出して、accessPackageAssignmentRequest を作成することができます。 この要求では、requestType プロパティの値は adminAdd であり、assignment プロパティは、割り当てられているユーザーの targetId を格納する構造体です。

PowerShell を使用してアクセス パッケージにユーザーを割り当てる

PowerShell 内で Identity Governance 用の Microsoft Graph PowerShell コマンドレット モジュール バージョン2.1.x 以降の New-MgEntitlementManagementAssignmentRequest コマンドレットを使用して、アクセス パッケージにユーザーを割り当てることができます。 このスクリプトは、Microsoft Graph PowerShell コマンドレットモジュールバージョン 2.4.0 の使用方法を示しています。

Connect-MgGraph -Scopes "EntitlementManagement.ReadWrite.All"
$accesspackage = Get-MgEntitlementManagementAccessPackage -Filter "displayname eq 'Marketing Campaign'" -ExpandProperty "assignmentpolicies"
if ($null -eq $accesspackage) { throw "no access package"}
$policy = $accesspackage.AssignmentPolicies[0]
$userid = "cdbdf152-82ce-479c-b5b8-df90f561d5c7"
$params = @{
   requestType = "adminAdd"
   assignment = @{
      targetId = $userid
      assignmentPolicyId = $policy.Id
      accessPackageId = $accesspackage.Id
   }
}
New-MgEntitlementManagementAssignmentRequest -BodyParameter $params

PowerShell と Identity Governance 用の Microsoft Graph PowerShell コマンドレット モジュール バージョン 2.4.0 以降の New-MgBetaEntitlementManagementAccessPackageAssignment コマンドレットを使用することで、ディレクトリに存在する複数のユーザーをアクセス パッケージに割り当てることもできます。 このコマンドレットは、パラメーターを受け取ります

  • Get-MgEntitlementManagementAccessPackage コマンドレットからの応答に含まれるアクセス パッケージ ID、
  • assignmentpolicies コマンドレットからの応答の Get-MgEntitlementManagementAccessPackage フィールドのポリシーに含まれるアクセス パッケージ割り当てポリシー ID、
  • 文字列の配列として、または Get-MgGroupMember コマンドレットから返されるユーザー メンバーの一覧としての、対象ユーザーのオブジェクト ID。

たとえば、現在グループのメンバーであるすべてのユーザーに、アクセス パッケージへの割り当てもあることを確認する場合は、このコマンドレットを使用して、現在割り当てのないユーザーに対する要求を作成できます。 このコマンドレットでは割り当てが作成されるだけであることに注意してください。グループのメンバーではなくなったユーザーの割り当てが削除されることはありません。

Connect-MgGraph -Scopes "EntitlementManagement.ReadWrite.All,Directory.Read.All"
$members = @(Get-MgGroupMember -GroupId "a34abd69-6bf8-4abd-ab6b-78218b77dc15" -All)

$accesspackage = Get-MgEntitlementManagementAccessPackage -Filter "displayname eq 'Marketing Campaign'" -ExpandProperty "assignmentPolicies"
if ($null -eq $accesspackage) { throw "no access package"}
$policy = $accesspackage.AssignmentPolicies[0]
$req = New-MgBetaEntitlementManagementAccessPackageAssignment -AccessPackageId $accesspackage.Id -AssignmentPolicyId $policy.Id -RequiredGroupMember $members

ディレクトリにまだ存在しないユーザーの割り当てを追加する場合、Identity Governance 用の Microsoft Graph PowerShell コマンドレットNew-MgBetaEntitlementManagementAccessPackageAssignmentRequest コマンドレットを使用できます (ベータ モジュール バージョン 2.1.x 以降のベータ モジュール バージョン)。 このスクリプトは、Graph の beta プロファイルと Microsoft Graph PowerShell コマンドレット モジュール バージョン 2.4.0 の使用方法を示しています。 このコマンドレットは、パラメーターを受け取ります

  • Get-MgEntitlementManagementAccessPackage コマンドレットからの応答に含まれるアクセス パッケージ ID、
  • Get-MgEntitlementManagementAccessPackage コマンドレットからの応答の assignmentpolicies フィールドのポリシーに含まれるアクセス パッケージ割り当てポリシー ID、
  • ターゲット ユーザーのメール アドレス。
Connect-MgGraph -Scopes "EntitlementManagement.ReadWrite.All"
$accesspackage = Get-MgEntitlementManagementAccessPackage -Filter "displayname eq 'Marketing Campaign'" -ExpandProperty "assignmentPolicies"
if ($null -eq $accesspackage) { throw "no access package"}
$policy = $accesspackage.AssignmentPolicies[0]
$req = New-MgBetaEntitlementManagementAccessPackageAssignmentRequest -AccessPackageId $accesspackage.Id -AssignmentPolicyId $policy.Id -TargetEmail "sample@example.com"

ライフサイクル ワークフローの一部としてアクセス割り当てを構成する

Microsoft Entra のライフサイクル ワークフロー機能では、オンボード ワークフローにユーザー アクセス パッケージの割り当ての要求タスクを追加できます。 このタスクでは、ユーザーが持つ必要があるアクセス パッケージを指定できます。 ワークフローがユーザーに対して実行されると、アクセス パッケージの割り当て要求が自動的に作成されます。

  1. Microsoft Entra 管理センターにグローバル管理者としてサインインしてください。

  2. [ID ガバナンス]>[ライフサイクル ワークフロー]>[ワークフロー] を参照してください。

  3. 従業員のオンボーディングまたは移動ワークフローを選択してください。

  4. [タスク] を選択し、[タスクの追加] を選択してください。

  5. [ユーザー アクセス パッケージの割り当てを要求する] を選択し、[追加] を選択してください。

  6. 新しく追加されたタスクを選択してください。

  7. [アクセス パッケージの選択] を選択し、新規の、または移動するユーザーに割り当てるアクセス パッケージを選択してください。

  8. [ポリシーの選択] を選択し、そのアクセス パッケージのアクセス パッケージ割り当てポリシーを選択してください。

  9. [保存] を選択します。

割り当ての削除

ユーザーまたは管理者が以前に要求した割り当てを削除できます。

前提条件となるロール: グローバル管理者、ID ガバナンス管理者、ユーザー管理者、カタログ所有者、アクセス パッケージ マネージャー、またはアクセス パッケージ割り当てマネージャー

  1. Microsoft Entra 管理センターIdentity Governance 管理者以上としてサインインします。

  2. [Identity Governance]>[エンタイトルメント管理]>[アクセス パッケージ] の順に移動します。

  3. [アクセス パッケージ] ページで、アクセス パッケージを開きます。

  4. 左側のメニューで、[割り当て] を選びます。

  5. 割り当てをアクセス パッケージから削除するユーザーの横にあるチェック ボックスをオンにします。

  6. 左ペインの上部付近にある [削除] ボタンを選びます。

    Assignments - Remove user from access package

    割り当てが削除されたことを知らせる通知が表示されます。

プログラムによる割り当ての削除

Microsoft Graph を使用して割り当てを削除する

Microsoft Graph を使用して、アクセス パッケージへのユーザーの割り当てを削除することもできます。 委任された EntitlementManagement.ReadWrite.All アクセス許可を持つアプリケーション、または EntitlementManagement.ReadWrite.All アプリケーションのアクセス許可を持つアプリケーションを有する適切なロールのユーザーは、API を呼び出して、accessPackageAssignmentRequest を作成することができます。 この要求では、requestType プロパティの値は adminRemove であり、assignment プロパティは、削除される accessPackageAssignment を識別する id プロパティを格納する構造体です。

PowerShell を使用した割り当ての削除

PowerShell 内で Identity Governance 用の Microsoft Graph PowerShell コマンドレット モジュール バージョン 2.1.x 以降の New-MgEntitlementManagementAssignmentRequest コマンドレットを使用して、ユーザーの割り当てを削除できます。 このスクリプトは、Microsoft Graph PowerShell コマンドレットモジュールバージョン 2.4.0 の使用方法を示しています。

Connect-MgGraph -Scopes "EntitlementManagement.ReadWrite.All"
$accessPackageId = "9f573551-f8e2-48f4-bf48-06efbb37c7b8"
$userId = "040a792f-4c5f-4395-902f-f0d9d192ab2c"
$filter = "accessPackage/Id eq '" + $accessPackageId + "' and state eq 'Delivered' and target/objectId eq '" + $userId + "'"
$assignment = Get-MgEntitlementManagementAssignment -Filter $filter -ExpandProperty target -all -ErrorAction stop
if ($assignment -ne $null) {
   $params = @{
      requestType = "adminRemove"
      assignment = @{ id = $assignment.id }
   }
   New-MgEntitlementManagementAssignmentRequest -BodyParameter $params
}

ライフサイクル ワークフローの一部として割り当て削除を構成する

Microsoft Entra のライフサイクル ワークフロー機能では、オンボード ワークフローにユーザーのアクセス パッケージ割り当ての削除タスクを追加できます。 そのタスクでは、ユーザーが割り当てられる可能性があるアクセス パッケージを指定できます。 ワークフローがユーザーに対して実行されると、アクセス パッケージ割り当てが自動的に削除されます。

  1. Microsoft Entra 管理センターにグローバル管理者としてサインインしてください。

  2. [ID ガバナンス]>[ライフサイクル ワークフロー]>[ワークフロー] を参照してください。

  3. 従業員のオフボード ワークフローを選択してください。

  4. [タスク] を選択し、[タスクの追加] を選択してください。

  5. [ユーザーのアクセス パッケージ割り当ての削除] を選択し、[追加] を選択してください。

  6. 新しく追加されたタスクを選択してください。

  7. [アクセス パッケージの選択] を選択し、オフボードしているユーザーを削除するアクセス パッケージを 1 つ以上選択してください。

  8. [保存] を選択します。

次のステップ