Entra ID(AzureAD)でのサービスプリンシパルアプリの作成
Entra ID(Azure AD)でのサービスプリンシパルアプリの作成
Note:Microsoft はAzure AD をEntra ID にリブランドしました。ユーザーがEntra ID 管理サイトを操作する必要があるトピックでは、Microsoft が使用している名称と同じものを使用します。ただし、名前または値が"Azure AD" を参照しているCData 接続プロパティは、依然として存在します。
Microsoft Dataverse はサービスプリンシパルベースの認証をサポートしており、これはロールベースです。 つまり、サービスプリンシパルの権限は、割り当てられたロールによって決まります。 ロールは、サービスプリンシパルがアクセスできるリソースと実行可能な操作を指定します。
Microsoft Dataverse に対してサービスプリンシパルを使用して認証を行いたい場合は、Microsoft Entra ID でカスタムアプリケーションを作成する必要があります。
サービスプリンシパル認証を有効にするには:
- テナント内でアプリケーションの登録とロールの割り当てを行う権限があることを確認します。
- Entra 管理センターで新しいアプリケーションを登録し、認証情報とアクセス許可を構成してください。
アプリケーションの登録
- https://portal.azure.com に移動します。
- 左側のナビゲーションペインでMicrosoft Entra ID ->アプリの登録を選択します。
- 新規登録をクリックします。

- アプリケーションの名前を入力します。
- 希望するテナント設定を選択します。このカスタムアプリケーションはサービスプリンシパル用であるため、任意のMicrosoft Entra ID テナント - マルチテナントを選択します。

- 登録をクリックします。アプリケーション管理画面が開きます。
- OAuthClientId としてアプリケーション(クライアント)ID の値、AzureTenant としてディレクトリ(テナント)ID の値を控えておきます。

- 証明書とシークレットセクションに移動して、アプリケーションの認証タイプを定義します。証明書(推奨)とクライアントシークレットの2種類の認証方法が利用可能です。
- 証明書による認証: 証明書とシークレットで証明書のアップロードを選択し、ローカルマシンから証明書をアップロードします。 自己署名証明書の作成についての詳細は、自己署名証明書の作成 を参照してください。
- 新しいクライアントシークレットの作成: 証明書とシークレットで新しいクライアントシークレットを選択し、有効期限を指定します。クライアントシークレットが保存されると、Microsoft Dataverse はキーの値を表示します。この値は一度しか表示されないので、後で使用するために記録しておきます。この値をOAuthClientSecret に使用します。
- 認証に移動し、アクセストークンオプションを選択します。
- Under Select an API, select the Dynamics CRM Online permissions if authenticating from a Desktop app, or select the Dynamics CRM Online permissions if authenticating from web apps or headless machines.
- 変更を保存します。
クライアント資格情報の同意
OAuth は、認証のためのクライアント資格情報の使用をサポートします。 クライアント資格情報の認証フローでは、認証するアプリケーション自身の資格情報が作成されます。 認証フローは通常の認証フローと同じように動作しますが、関連するユーザーに対して資格情報の提供を求めるプロンプトは表示されません。 アプリケーションで受理されるすべてのタスクは、デフォルトユーザーコンテキストなしで実行されます。Note: 埋め込まれたOAuth 資格情報はユーザーごとに認証されるため、 クライアント認証フローで使用することはできません。クライアント資格情報を使用するには、必ずカスタムOAuth アプリケーションを作成する必要があります。
- https://portal.azure.com にログインします。
- 前述のように、カスタムOAuth アプリケーションを作成します。
- アプリの登録に移動します。
- 作成したアプリケーションを探し、API のアクセス許可を開きます。
- Microsoft Graph アクセス許可を選択します。アクセス許可には2つの異なるアクセス許可セットがあります。委任されたアクセス許可とアプリケーションの許可です。
- サービスプリンシパルで使用する場合は、アプリケーションの許可を指定します。
- インテグレーションに必要なアクセス許可を選択します。