次の方法で共有


アプリケーションのアクセス許可を Exchange Online の特定のメールボックスに制限する

管理者は、アプリのアクセスを特定のメールボックスに制限するために、PowerShell コマンドレット New-ApplicationAccessPolicy を使用して、アプリケーション アクセス ポリシーを作成できます。 この記事では、アクセス制御の基本的な構成手順について説明します。 これらの手順はExchange Onlineリソースに固有であり、他の Microsoft Graph ワークロードには適用されません。

背景

一部のアプリは、ユーザーの代理としてではなく、独自の ID を使用して Microsoft Graph を呼び出します。 通常、これらのアプリはバックグラウンド サービスまたはデーモン アプリであり、サインインしているユーザーが存在せずにサーバー上で実行されます。 これらのアプリは、OAuth 2.0 クライアント資格情報付与フローを使用して認証を行い、アプリケーションのアクセス許可で構成されます。既定では、このようなアプリは、Exchange Onlineのorganization内のすべてのメールボックスにアクセスできます。 たとえば、アプリケーションのアクセス許可 Mail.Read により、サインインしているユーザーなしで、すべてのメールボックスのメールをアプリで読み取れるようになります。

重要

既定では、次のデータ セットに対するアプリケーションアクセス許可が付与されているアプリは、organization内のすべてのメールボックスにアクセスできます。

  • 予定表
  • 連絡先
  • メール
  • メールボックス設定

管理者はアプリケーション アクセス ポリシーを構成して、アプリのアクセスを特定のメールボックスに制限することができます。

管理者がアプリを特定のメールボックスのみに制限し、organization内のすべてのExchange Onlineメールボックスに制限しない場合があります。 管理者は、メールが有効になっているセキュリティ グループに入れて、アクセスを許可するメールボックスのセットを識別できます。 その後、管理者は、そのグループにアクセスするためのアプリケーション アクセス ポリシーを作成することで、サード パーティ製アプリのアクセスを、そのメールボックスのセットのみに制限できます。

サポートされているアクセス許可とその他のリソース 」セクションで詳しく説明されているように、アプリケーション アクセス ポリシーでは、ポリシーでサポートされている Microsoft Graph または Exchange Web Services のアクセス許可スコープが付与されているアプリのメールボックス アクセスが制限されます。

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

アプリケーション アクセス ポリシーを構成して、アプリケーションのアクセス許可のスコープを制限するには、次の操作を実行します。

  1. Exchange Online PowerShell に接続します。 詳細については、「Exchange Online PowerShell への接続」を参照してください。

  2. アプリのアクセスを制限するアプリのクライアント ID とメールが有効なセキュリティ グループを特定します。

    • [Microsoft Entra 管理センター > アプリの登録] ページでアプリのアプリケーション (クライアント) ID を特定します。
    • メールが有効な新しいセキュリティ グループを作成するか既存のグループを使用して、そのグループの電子メール アドレスを特定します。
  3. アプリケーション アクセス ポリシーを作成します。

    次のコマンドを実行します。ただし、AppId の引数、PolicyScopeGroupId の引数、および Description の引数は置き換えてください。

    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. 新しく作成したアプリケーション アクセス ポリシーをテストします。

    次のコマンドを実行します。ただし、AppId の引数および Identity の引数は置き換えてください。

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

    このコマンドの出力は、アプリが User1 のメールボックスにアクセスできるかどうかを示します。

注:

アプリケーション アクセス ポリシーの変更は、 Test-ApplicationAccessPolicy に肯定的な結果が表示された場合でも、Microsoft Graph REST API 呼び出しで有効にされるまでに 1 時間以上かかることがあります。

サポートされているアクセス許可とその他のリソース

管理者は、ApplicationAccessPolicy コマンドレットを使用して、次の Microsoft Graph アプリケーションのアクセス許可または Exchange Web サービスのアクセス許可が付与されているアプリのメールボックス アクセスを制御できます。

Microsoft Graph のアプリケーションのアクセス許可

  • Mail.Read
  • Mail.ReadBasic
  • Mail.ReadBasic.All
  • Mail.ReadWrite
  • Mail.Send
  • MailboxSettings.Read
  • MailboxSettings.ReadWrite
  • Calendars.Read
  • Calendars.ReadWrite
  • Contacts.Read
  • Contacts.ReadWrite

Exchange Web サービスのアクセス許可のスコープ: full_access_as_app

アプリケーション アクセス ポリシーの構成の詳細については、PowerShell コマンドレット リファレンスの New-ApplicationAccessPolicyの項目を参照してください。

API エラーの処理

構成済みのアプリケーション アクセス ポリシーによって API 呼び出しのアクセスが拒否されると、次のエラーが発生することがあります。

{
    "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 管理者と協力して、メールボックス リソースにアクセスするためのアクセス許可をアプリに付与してください。