ADO.NET Provider for PostgreSQL

Build 25.0.9434

Entra ID(Azure AD)でのサービスプリンシパルアプリの作成

Entra ID(Azure AD)でのサービスプリンシパルアプリの作成

Note:Microsoft はAzure ADEntra ID にリブランドしました。ユーザーがEntra ID 管理サイトを操作する必要があるトピックでは、Microsoft が使用している名称と同じものを使用します。ただし、名前または値が"Azure AD" を参照しているCData 接続プロパティは、依然として存在します。

PostgreSQL はサービスプリンシパルベースの認証をサポートしており、これはロールベースです。 つまり、サービスプリンシパルの権限は、割り当てられたロールによって決まります。 ロールは、サービスプリンシパルがアクセスできるリソースと実行可能な操作を指定します。

PostgreSQL に対してサービスプリンシパルを使用して認証を行いたい場合は、Microsoft Entra ID でカスタムアプリケーションを作成する必要があります。

サービスプリンシパル認証を有効にするには:

  • テナント内でアプリケーションの登録とロールの割り当てを行う権限があることを確認します。
  • Entra 管理センターで新しいアプリケーションを登録し、認証情報とアクセス許可を構成してください。

アプリケーションの登録

  1. https://portal.azure.com に移動します。
  2. 左側のナビゲーションペインでMicrosoft Entra ID ->アプリの登録を選択します。
  3. 新規登録をクリックします。
  4. アプリケーションの名前を入力します。
  5. 希望するテナント設定を選択します。このカスタムアプリケーションはサービスプリンシパル用であるため、任意のMicrosoft Entra ID テナント - マルチテナントを選択します。


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


  8. 証明書とシークレットセクションに移動して、アプリケーションの認証タイプを定義します。証明書(推奨)とクライアントシークレットの2種類の認証方法が利用可能です。

    • 証明書による認証: 証明書とシークレット証明書のアップロードを選択し、ローカルマシンから証明書をアップロードします。 自己署名証明書の作成についての詳細は、自己署名証明書の作成 を参照してください。
    • 新しいクライアントシークレットの作成: 証明書とシークレット新しいクライアントシークレットを選択し、有効期限を指定します。クライアントシークレットが保存されると、PostgreSQL はキーの値を表示します。この値は一度しか表示されないので、後で使用するために記録しておきます。この値をOAuthClientSecret に使用します。

  9. 認証に移動し、アクセストークンオプションを選択します。
  10. ユーザーコンテキストで認証する場合は、Azure OSSRDBMS Database -> 委任されたアクセス許可 -> user_impersonation を選択します。ユーザーコンテキストなしで認証する場合は、Azure OSSRDBMS Database -> アプリケーションの許可 -> app_impersonation を選択します。
  11. 変更を保存します。
  12. 管理者の同意が必要なアクセス許可([アプリケーションの許可]など)を指定した場合は、API のアクセス許可ページで現在のテナントから付与することができます。

管理者の同意の付与

カスタムアプリケーションの中には、Microsoft Entra ID テナント内で操作するために管理者権限が必要なものがあります。 これは特に、サインインしているユーザーなしでアプリケーションを実行できるアプリケーションの許可を使用するアプリケーションに当てはまります。 新しいアプリケーションを作成する際に、「管理者の同意が必要」とマークされた関連するアクセス許可を追加することで、管理者の同意を与えることができます。 管理者の同意は、認証フローでクライアント資格情報を使用する場合にも必要です。

これらのアクセス許可は、管理者によって付与される必要があります。管理者の同意を付与するには:

  1. 管理者アカウントでhttps://portal.azure.com にログインします。
  2. Microsoft Entra ID ->アプリの登録に移動し、登録済みのアプリケーションを選択します。
  3. API のアクセス許可に移動します。
  4. アプリケーションの許可にリストされている許可を確認します。ユースケースに必要なAPI スコープが含まれていることを確認してください。
  5. 管理者の同意を与えますをクリックして、要求された許可を承認します。
これで、アプリケーションが作成されたテナントにアクセス権限が付与されます。

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

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

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

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

Copyright (c) 2025 CData Software, Inc. - All rights reserved.
Build 25.0.9434