ユーザーがアプリケーションに同意する方法を構成する
この記事では、アプリケーションに対するユーザーの同意方法と、アプリケーションに対する今後のユーザーの同意操作をすべて無効にする方法について説明します。
アプリケーションが組織のデータにアクセスできるようにするには、そのためのアプリケーションのアクセス許可をユーザーに付与する必要があります。 異なるアクセス許可によって、さまざまなレベルのアクセスが可能になります。 既定では、すべてのユーザーが、管理者の同意を必要としないアクセス許可のアプリケーションに同意することが許可されています。 たとえば、既定では、ユーザーはアプリが自分のメールボックスにアクセスすることを許可することができますが、組織内のすべてのファイルを自由に読み取りと書き込みできるアクセスをアプリに許可することに同意することはできません。
悪意のあるアプリケーションがユーザーに組織のデータへのアクセス付与を誘導しようとした場合のリスクを軽減するために、確認済み発行者によって発行されたアプリケーションに対してのみユーザーの同意を許可することをお勧めします。
Note
ユーザーをアプリケーションに割り当てる必要があるアプリケーションでは、ディレクトリのユーザー同意ポリシーでユーザーが自分の代わりに同意できる場合でも、管理者がアクセス許可を付与する必要があります。
前提条件
ユーザーの同意を構成するには、次のものが必要です。
- ユーザー アカウント。 まだアカウントがない場合は、無料でアカウントを作成することができます。
- 特権ロール管理者ロール。
ユーザーの同意設定を構成する
ヒント
この記事の手順は、開始するポータルによって若干異なる場合があります。
Microsoft Entra 管理センターを使用してユーザーの同意設定を構成するには:
Microsoft Entra 管理センターに特権ロール管理者としてサインインします。
[ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[同意とアクセス許可]>[ユーザーの同意] の設定に移動します。
[User consent for applications](アプリケーションに対するユーザーの同意) で、すべてのユーザーに対して構成する同意設定を選択します。
[Save](保存) を選択して設定を保存します。
アプリケーションに対するユーザーの同意を制御するアプリの同意ポリシーを選択するには、Microsoft Graph PowerShell モジュールを使用します。 ここで使用するコマンドレットは、Microsoft.Graph.Identity.SignIns モジュールに含まれています。
Microsoft Graph PowerShell に接続する
必要な最小限の特権を使用して、Microsoft Graph PowerShell に接続します。 ユーザーの現在の同意設定を読み取る場合は、Policy.Read.All を使用します。 ユーザーの同意設定を読み取って変更するには、Policy.ReadWrite.Authorization を使用します。 特権ロール管理者として署名する必要があります。
Connect-MgGraph -Scopes "Policy.ReadWrite.Authorization"
ユーザーの同意を無効にする
ユーザーの同意を無効にするには、コレクションの更新中に同意ポリシー (PermissionGrantPoliciesAssigned
) に他の現在の ManagePermissionGrantsForOwnedResource.*
ポリシー (存在する場合) が含まれることを確認します。 これにより、ユーザーの同意設定と他のリソースの同意設定の現在の構成を維持できます。
# only exclude user consent policy
$body = @{
"permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
"managePermissionGrantsForOwnedResource.{other-current-policies}"
)
}
Update-MgPolicyAuthorizationPolicy -BodyParameter $body
PowerShell を使ってアプリの同意ポリシーに従ってユーザーの同意を許可する
ユーザーの同意を許可するには、アプリに同意を付与するユーザーの認可を管理するアプリの同意ポリシーを選択します。 コレクションの更新中に同意ポリシー (PermissionGrantPoliciesAssigned
) に他の現在の ManagePermissionGrantsForOwnedResource.*
ポリシー (存在する場合) が含まれることを確認します。 これにより、ユーザーの同意設定と他のリソースの同意設定の現在の構成を維持できます。
$body = @{
"permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
"managePermissionGrantsForSelf.{consent-policy-id}",
"managePermissionGrantsForOwnedResource.{other-current-policies}"
)
}
Update-MgPolicyAuthorizationPolicy -BodyParameter $body
{consent-policy-id}
を、適用するポリシーの ID に置き換えます。 作成したカスタム アプリの同意ポリシーを選択することも、次の組み込みポリシーから選択することもできます。
id | 説明 |
---|---|
microsoft-user-default-low | 確認済みの発行元からのアプリに対して選択されたアクセス許可を与えることへのユーザーの同意を許可する 確認済みの発行元からのアプリとテナントに登録されているアプリ、および影響が少ないとして分類したアクセス許可に対してのみ、制限付きのユーザーの同意を許可します。 (アクセス許可を分類して、ユーザーが同意を許可できるアクセス許可を選択してください。) |
microsoft-user-default-legacy | アプリに対するユーザーの同意を許可する このオプションを使用すると、すべてのユーザーが、すべてのアプリケーションに対し、管理者の同意を必要としないすべてのアクセス許可に同意することができます |
たとえば、組み込みのポリシー microsoft-user-default-low
に従ってユーザーの同意を有効にするには、次のコマンドを実行します。
$body = @{
"permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
"managePermissionGrantsForSelf.managePermissionGrantsForSelf.microsoft-user-default-low",
"managePermissionGrantsForOwnedResource.{other-current-policies}"
)
}
Graph Explorer を使用して、アプリケーションに対するユーザーの同意を制御するアプリの同意ポリシーを選択します。 特権ロール管理者として署名する必要があります。
ユーザーの同意を無効にするには、コレクションの更新中に同意ポリシー (PermissionGrantPoliciesAssigned
) に他の現在の ManagePermissionGrantsForOwnedResource.*
ポリシー (存在する場合) が含まれることを確認します。 これにより、ユーザーの同意設定と他のリソースの同意設定の現在の構成を維持できます。
PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy
{
"defaultUserRolePermissions": {
"permissionGrantPoliciesAssigned": [
"managePermissionGrantsForOwnedResource.{other-current-policies}"
]
}
}
Microsoft Graph を使ってアプリの同意ポリシーに従ってユーザーの同意を許可する
ユーザーの同意を許可するには、アプリに同意を付与するユーザーの認可を管理するアプリの同意ポリシーを選択します。 コレクションの更新中に同意ポリシー (PermissionGrantPoliciesAssigned
) に他の現在の ManagePermissionGrantsForOwnedResource.*
ポリシー (存在する場合) が含まれることを確認します。 これにより、ユーザーの同意設定と他のリソースの同意設定の現在の構成を維持できます。
PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy
{
"defaultUserRolePermissions": {
"managePermissionGrantsForSelf.{consent-policy-id}",
"managePermissionGrantsForOwnedResource.{other-current-policies}"
}
}
{consent-policy-id}
を、適用するポリシーの ID に置き換えます。 作成したカスタム アプリの同意ポリシーを選択することも、次の組み込みポリシーから選択することもできます。
id | 説明 |
---|---|
microsoft-user-default-low | 確認済みの発行元からのアプリに対して選択されたアクセス許可を与えることへのユーザーの同意を許可する 確認済みの発行元からのアプリとテナントに登録されているアプリ、および影響が少ないとして分類したアクセス許可に対してのみ、制限付きのユーザーの同意を許可します。 (アクセス許可を分類して、ユーザーが同意を許可できるアクセス許可を選択してください。) |
microsoft-user-default-legacy | アプリに対するユーザーの同意を許可する このオプションを使用すると、すべてのユーザーが、すべてのアプリケーションに対し、管理者の同意を必要としないすべてのアクセス許可に同意することができます |
たとえば、組み込みのポリシー microsoft-user-default-low
に従ってユーザーの同意を有効にするには、次の PATCH コマンドを使用します。
PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy
{
"defaultUserRolePermissions": {
"permissionGrantPoliciesAssigned": [
"managePermissionGrantsForSelf.microsoft-user-default-low",
"managePermissionGrantsForOwnedResource.{other-current-policies}"
]
}
}
ヒント
ユーザーが同意することが許可されていないアプリケーションの管理者によるレビューと承認をユーザーが要求できるようにするには、管理者の同意ワークフローを有効にします。 たとえば、ユーザーの同意が無効になっている場合や、ユーザーによる付与が許可されていないアクセス許可をアプリケーションが要求している場合に、このような操作を行うことができます。