単一テナント型のサーバー間認証の使用

単一テナント型サーバー間 (S2S) シナリオは通常、認証に Active Directory フェデレーション サービス (AD FS) を使用した複数の Microsoft Dataverse 環境を持つエンタープライズ組織に対して適用されます。 ただしアプリケーションが他の環境に配布されない場合は、環境によって適用することが可能です。

単一 の Microsoft Entra ID テナント向けのすべての Dataverse 環境に接続する Web アプリケーションまたはサービスを作成できます。

マルチテナント型シナリオの違い

単一テナント型サーバー間認証の Web アプリケーションまたはサービスの作成は、マルチテナント型の組織の認証と類似していますが、いくつかの重要な違いがあります。

  • すべての組織がテナント内にあるため、テナント管理者が組織ごとに同意を許可する必要はありません。 アプリケーションはテナントに一度登録するだけです。

  • キーよりもむしろ証明書を使用することもできます。

この記事の最後の 関連項目 セクションでは、マルチテナント機能への単一テナント アプリケーションのアップグレードに関する情報へのリンクがあります。

要件

サーバー間の認証を使用する単一テナント型アプリケーション テストを作成してテストするには、次のものが必要です:

  • 提供されているサンプル アプリケーションを登録する際に使用する Microsoft Entra ID テナント。
  • Microsoft Entra ID テナントと関連付けられている Dataverse サブスクリプションです。
  • Microsoft Entra ID テナントおよび Dataverse 環境の管理者特権。

Azure アプリケーション登録

Microsoft Entra ID アプリケーション登録を作成するには、次の手順に従います。

  1. https://admin.microsoft.com に移動してサインインします。

  2. 管理センター > Microsoft Entra ID を選択します。

  3. 左側のナビゲーション パネルから、アプリケーション > アプリの登録 を選択します。

  4. + 新規登録 を選択します。

  5. アプリケーションの登録 フォームにアプリの名前を指定し、この組織のディレクトリ内のアカウントのみ を選択して、登録 を選択します。 リダイレクト URI は、このチュートリアルと付属のサンプル コードについては不要です。

    申請フォームを登録します。

  6. ナビゲーション ウィンドウで、API のアクセス許可 を選択します。

  7. API のアクセス許可 ページで、org-name に管理者の同意を与える を選択し、まだ選択されていない場合は確認メッセージが表示されたら はい を選択します。 このサーバー間のシナリオでは、委任されたアクセス許可は必要ありません。

    API アクセス許可を付与しています。

  8. ナビゲーション ウィンドウの 概要 をクリックし、アプリ登録の 表示名アプリケーション (クライアント) IDディレクトリ (テナント) ID の値を記録します。

  9. ナビゲーション ウィンドウで、証明書とシークレット を選択します。

  10. クライアント シークレット で、新しいクライアント シークレットの追加 を選択してシークレットを作成します。

  11. フォームに説明を入力して 追加 を選択します。 シークレットの文字列を記録します。 現在の画面を離れると、シークレットを再び表示することはできません。

Web サービス認証には、アプリケーション ID、ディレクトリ ID、およびクライアント シークレットが必要になります。

アプリケーション ユーザーの作成

環境内にライセンスのない "アプリケーション ユーザー" を作成できます。 このアプリケーション ユーザーは、アプリケーションを使用しているエンド ユーザーに代わって組織のデータにアクセスできます。

アプリケーション ユーザーの作成の手順については アプリケーション ユーザーの作成 を参照してください。

アプリケーション ユーザーのセキュリティ ロールを管理する手順については、アプリケーション ユーザーのロールを管理する を参照してください

注意

環境では、各 Microsoft Entra ID に登録されたアプリケーションに対して 1 人のアプリケーション ユーザーのみがサポートされます。 アプリケーション ユーザーが作成されると、プライマリ メール アドレスまたはユーザー名を変更することはできなくなります。

S2S を使用して実際のアプリケーションを開発するときは、ソリューションに格納して、アプリケーションとともに配布できる、ユーザー定義のセキュリティ ロールを使用する必要があります。

アプリケーション ユーザーの有効化または無効化

アプリケーション ユーザーが作成されると、自動的にアクティブ化されます。 アプリケーション ユーザーの状態が非アクティブ化されている場合は、Power Platform 管理センターでアクティブ化します。 また、Power Platform 管理センターは、使用されなくなったアプリケーション ユーザーを非アクティブ化します。

詳細: アプリケーション ユーザーをアクティブ化または非アクティブ化する

注意事項

アプリケーション ユーザーを無効にすると、そのアプリケーション ユーザー を使用するすべての統合シナリオが中断されます。

アプリケーションのコーディングと実行

次の手順に従って、サンプル アプリケーションをダウンロード、構築、および実行します。 サンプルは Web API を呼び出して、組織の上位 3 つのアカウント (名前別) のリストを返します。

  1. Visual Studio 2017 SingleTenantS2S サンプルをダウンロードします。
  2. アプリケーション登録とサーバー キーの値で App.config ファイルを更新します。
  3. アプリケーションをビルドして実行します。

予測した結果

組織の上位 3 つのアカウント名の一覧を示す OData の返信。

コンソール出力の例

以下に示す例は、「Test Account 1」および「Test Account 2」という 2 つのアカウントのみ持つ組織から取得したコンソール出力です。

{
  "@odata.context": "https://crmue2.api.crm.dynamics.com/api/data/v9.1/$metadata#accounts(name)",
  "@Microsoft.Dynamics.CRM.totalrecordcount": -1,
  "@Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded": false,

  "value": [
    {
      "@odata.etag": "W/\"4648334\"",
      "name": "Test Account 1",
      "accountid": "28630624-cac9-e811-a964-000d3a3ac063"
    },
    {
      "@odata.etag": "W/\"4648337\"",
      "name": "Test Account 2",
      "accountid": "543fd72a-cac9-e811-a964-000d3a3ac063"
    }
  ]
}

関連項目

マルチ テナント型でのサーバー間認証の使用
サーバー間 (S2S) 認証を使用して Web アプリケーションを作成する
方法: マルチテナント型のアプリケーションを使用するユーザーMicrosoft Entra ID にサインインする

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。