アプリケーションのアクセス許可を Exchange Online の特定のメールボックスにスコーピングするScoping application permissions to specific Exchange Online mailboxes

一部のアプリは、ユーザーの代理としてではなく、独自の ID を使用して Microsoft Graph を呼び出します。Some apps call Microsoft Graph with their own identity and not on behalf of a user. 通常、これに該当するものは、サーバーで実行される、サインインしているユーザーが存在しないバックグラウンド サービスやデーモン アプリです。In many cases, these are background services or daemons that run on a server without the presence of a signed-in user. こうしたアプリは、認証のために OAuth 2.0 クライアント資格情報付与フローを使用し、アプリケーションのアクセス許可によって構成されています。これにより、そうしたアプリは Exchange Online の組織内のすべてのメールボックスにアクセスできるようになります。These apps make use of OAuth 2.0 client credentials grant flow to authenticate and are configured with application permissions, which enable such apps to access all mailboxes in a organization on Exchange Online. たとえば、アプリケーションのアクセス許可 Mail.Read により、サインインしているユーザーなしで、すべてのメールボックスのメールをアプリで読み取れるようになります。For example, the Mail.Read application permission allows apps to read mail in all mailboxes without a signed-in user.

管理者は、アプリのアクセスを特定のメールボックスのセットに制限するために、PowerShell コマンドレット New-ApplicationAccessPolicy を使用してアクセス制御を構成できます。Administrators who want to limit the app access to a specific set of mailboxes can use the New-ApplicationAccessPolicy PowerShell cmdlet to configure access control. この記事では、アプリケーション アクセス ポリシーの基本的な構成手順について説明します。This article covers the basic steps to configure an application access policy.

この手順は Exchange Online のリソースに固有のものであり、その他の Microsoft Graph のワークロードには適用できません。These steps are specific to Exchange Online resources and do not apply to other Microsoft Graph workloads.

アプリケーション アクセス ポリシーの構成Configure ApplicationAccessPolicy

アプリケーション アクセス ポリシーを構成して、アプリケーションのアクセス許可のスコープを制限するには、次の操作を実行します。To configure an application access policy and limit the scope of application permissions:

  1. Exchange Online PowerShell に接続します。Connect to Exchange Online PowerShell. 詳細については、「Exchange Online PowerShell への接続」を参照してください。For details, see Connect to Exchange Online Using Remote PowerShell.

  2. アプリのクライアント ID とメールが有効なセキュリティ グループを特定して、アプリのアクセス対象を制限します。Identify the app’s client ID and a mail-enabled security group to restrict the app’s access to.

    • Azure のアプリの登録ポータルで、アプリのアプリケーション (クライアント) ID を特定します。Identify the app’s application (client) ID in the Azure app registration portal.
    • メールが有効な新しいセキュリティ グループを作成するか既存のグループを使用して、そのグループの電子メール アドレスを特定します。Create a new mail-enabled security group or use an existing one and identify the email address for the group.
  3. アプリケーション アクセス ポリシーを作成します。Create an application access policy.

    次のコマンドを実行します。ただし、引数の AppIdPolicyScopeGroupId、および Description は置き換えてください。Run the following command, replacing the AppId, PolicyScopeGroupId, and Description arguments.

    New-ApplicationAccessPolicy -AppId e7e4dbfc-046f-4074-9b3b-2ae8f144f59b -PolicyScopeGroupId EvenUsers@contoso.com -AccessRight RestrictAccess -Description "Restrict this app to members of distribution group EvenUsers."
    
  4. 新しく作成したアプリケーション アクセス ポリシーをテストします。Test the newly created application access policy.

    次のコマンドを実行します。ただし、引数の AppId および Identity は置き換えてください。Run the following command, replacing the AppId and Identity arguments.

    Test-ApplicationAccessPolicy -Identity user1@contoso.com -AppId e7e4dbfc-046-4074-9b3b-2ae8f144f59b 
    

    このコマンドの出力には、アプリが User1 のメールボックスにアクセスできるかどうかが示されます。The output of this command will indicate whether the app has access to User1’s mailbox.

注: アプリケーション アクセス ポリシーの変更が Microsoft Graph REST API の呼び出しに反映されるまでに、最長で 30 分かかることがあります。Note: Changes to application access policies can take up to 30 minutes to take effect in Microsoft Graph REST API calls.

サポートされるアクセス許可と追加のリソースSupported app scenarios and additional resources

管理者は、ApplicationAccessPolicy コマンドレットを使用して、次のいずれかのアプリケーションのアクセス許可が付与されているアプリのメールボックス アクセスを制御できます。Administrators can use ApplicationAccessPolicy cmdlets to control mailbox access of an app that has been granted any of the following application permissions:

  • Mail.ReadMail.Read
  • Mail.ReadWriteMail.ReadWrite
  • Mail.SendMail.Send
  • MailboxSettings.ReadMailboxSettings.Read
  • MailboxSettings.ReadWriteMailboxSettings.ReadWrite
  • Calendars.ReadCalendars.Read
  • Calendars.ReadWriteCalendars.ReadWrite
  • Contacts.ReadContacts.Read
  • Contacts.ReadWriteContacts.ReadWrite

アプリケーション アクセス ポリシーの構成の詳細については、PowerShell コマンドレット リファレンスの New-ApplicationAccessPolicyの項目を参照してください。For more information about configuring application access policy, see the PowerShell cmdlet reference for New-ApplicationAccessPolicy.

API エラーの処理Handling API errors

構成済みのアプリケーション アクセス ポリシーによって API 呼び出しのアクセスが拒否されると、次のエラーが発生することがあります。You might encounter the following error when an API call is denied access due to a configured application access policy.

{
    "error": {
        "code": "ErrorAccessDenied",
        "message": "Access to OData is disabled.",
        "innerError": {
            "request-id": "2f038156-cf40-403d-8e46-831fe42a8229",
            "date": "2019-05-24T10:16:21"
        }
    }
}

このエラーがアプリからの Microsoft Graph API 呼び出しで返された場合は、組織の Exchange Online 管理者と協力して、メールボックス リソースにアクセスするためのアクセス許可をアプリに付与してください。If Microsoft Graph API calls from your app return this error, work with the Exchange Online administrator for the organization to ensure that your app has permission to access the mailbox resource.

関連項目See also