ADO.NET Provider for Microsoft Exchange

Build 24.0.9062

サービスプリンシパルによるAzure AD アプリケーションの作成

サービスプリンシパルによるAzure AD アプリケーションの作成

Microsoft Exchange は、ロールベースのサービスプリンシパルベースの認証をサポートします。 Microsoft Exchange への認証にサービスプリンシパルを使用する場合は、ここで説明するように、カスタムAzure AD アプリケーションを作成する必要があります。

Azure サービスプリンシパル認証を使用するには、認証アプリケーションにロールを割り当てる機能を設定したのち、Azure AD テナントにアプリケーションを登録し、新しいサービスプリンシパルを作成する必要があります。 この新しいサービスプリンシパルは、割り当てられたロールベースのアクセス制御を利用して、サブスクリプション内のリソースにアクセスできます。

Azure サービスプリンシパルを使用した認証

https://portal.azure.com で:

  1. 左側のナビゲーションペインでAzure Active Directory ->アプリの登録を選択します。
  2. 新規登録をクリックします。
  3. アプリケーションの名前を入力します。
  4. 希望するテナント設定を選択します。このカスタムアプリケーションはAzure サービスプリンシパル用なので、Any Microsoft Entra ID tenant - Multi Tenant を選択します。
  5. 新しいアプリケーションを登録するには、登録をクリックします。アプリケーション管理画面が表示されます。
    OAuthClientId としてApplication (client) ID の値、AzureTenant としてDirectory (tenant) ID の値をメモします。
  6. 証明書とシークレットセクションに移動して、アプリケーションの認証タイプを定義します。認証には、証明書(推奨)とクライアントシークレットの2種類があります。

    • 証明書による認証: 証明書とシークレット証明書のアップロードを選択し、ローカルマシンから証明書をアップロードします。 この証明書の作成方法の例については、https://learn.microsoft.com/ja-jp/entra/identity-platform/howto-create-self-signed-certificate を参照してください。
    • 新しいクライアントシークレットの作成: 証明書とシークレット新しいクライアントシークレットを選択し、有効期限を指定します。クライアントシークレットが保存されると、Microsoft Exchange はキーの値を表示します。この値は一度しか表示されないので、後で使用するために記録しておきます。(この値がOAuthClientSecret となります。)

  7. 認証タブに移動し、アクセストークンオプションを選択します。
  8. If you are connecting to Microsoft Exchange through EWS schema, select Exchange API and add EWS.AccessAsUser.All permission. If you are connecting to Microsoft Exchange through MSGraph schema, select Microsoft Graph API and add the following permissions: Calendars.ReadWrite.Shared, Contacts.ReadWrite, Group.Read.All, Group.ReadWrite.All, User.ReadWrite.All, and Mail.ReadWrite.Shared.
  9. 変更を保存します。
  10. 管理者の同意が必要なアクセス許可([アプリケーションの許可]など)を使用することを指定した場合は、API のアクセス許可ページで現在のテナントから付与することができます。

管理者の同意の付与

カスタムアプリケーションの中には、Azure Active Directory テナント内で操作するために管理者権限が必要なものがあります。管理者の同意は、新しいカスタムAzure AD アプリケーションを作成する際に、すでに"Admin Consent Required" とマークされている関連パーミッションを追加することで付与できます。管理者の同意は、認証フローでクライアント資格情報を使用する場合にも必要です。

管理者の同意を付与するには:

  1. 管理者にhttps://portal.azure.com にログインしてもらいます。
  2. アプリの登録に移動し、作成したカスタムAzure AD アプリケーションを見つけます。
  3. API のアクセス許可で、同意の付与をクリックします。
これで、アプリケーションが作成されたテナントにアクセス権限が付与されます。

クライアント資格情報の同意

OAuth は、認証のためのクライアント資格情報の使用をサポートします。 クライアント資格情報の認証フローでは、認証するアプリケーション自身の資格情報が作成されます。 認証フローは通常の認証フローと同じように動作しますが、関連するユーザーに対して資格情報の提供を求めるプロンプトは表示されません。 アプリケーションで受理されるすべてのタスクは、デフォルトユーザーコンテキストなしで実行されます。

Note: 埋め込まれたOAuth 資格情報はユーザーごとに認証されるため、 クライアント認証フローで使用することはできません。クライアント資格情報を使用するには、必ずカスタムAzure AD アプリケーションを作成する必要があります。

https://portal.azure.com で:

  1. 上記のように、カスタムAzure AD アプリケーションを作成します。
  2. アプリの登録に移動します。
  3. 作成したアプリケーションを探し、API のアクセス許可を開きます。
  4. Microsoft Graph アクセス許可を選択します。 アクセス許可には2つの異なるアクセス許可セットがあります。委任されたアクセス許可とアプリケーションの許可です。
  5. サービスプリンシパルで使用する場合は、アプリケーションの許可を指定します。
  6. インテグレーションに必要なアクセス許可を選択します。

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.9062