Autonomous DatabaseでのAzure AD認証の有効化

Azure AD管理者およびAutonomous Database管理者は、Autonomous DatabaseでAzure AD認証を構成するステップを実行します。

Microsoft Entra ID v2アクセス・トークンの有効化

Oracle Databaseでは、v1およびv2 Azure AD OAuth2アクセス・トークンとの統合がサポートされています。

Oracle Databaseでは、Entra ID v2トークンとデフォルトのv1トークンがサポートされています。ただし、Entra ID v2トークンを使用するには、Oracle Databaseで機能するように追加のステップを実行する必要があります。このトークンは、アプリケーション登録エクスペリエンスを使用してAzureポータルに登録されているアプリケーションで使用できます。
Azure AD v2 OAuth2アクセス・トークンを使用すると、資格証明フローは変更なしで以前と同様に引き続き機能します。ただし、対話型フローでv2トークンを使用する場合は、upn:クレームを追加する必要があります。
  1. 使用しているEntra IDアクセス・トークンのバージョンを確認します。
  2. Microsoft Entra IDポータルにログインします。
  3. 「Entra ID」を検索して選択します。
  4. 「Manage」で、「アプリケーション登録」を選択します。
  5. シナリオおよび目的の結果に基づいてオプションの要求を構成するアプリケーションを選択します。
  6. 「Manage」で、「Token構成」を選択します。
  7. 「Add optional claim」をクリックし、「upn」を選択します。
v2トークンを使用すると、aud:クレームにはAPP ID値のみが反映されます。v2トークンが使用されている場合、https:domain接頭辞をAPP ID URIに設定する必要はありません。これにより、デフォルトのAPP ID URIを使用できるため、データベースの構成が簡略化されます。

Entra IDアクセス・トークン・バージョンの確認

JSON WebトークンのWebサイトを使用すると、サイトで使用されているEntra IDアクセス・トークンのバージョンを確認できます。

デフォルトでは、Entra ID v1アクセス・トークンですが、サイトではv2の使用が選択されている可能性があります。Oracle Databaseではv1トークンがサポートされており、Autonomous Database Serverlessではv2トークンもサポートされています。v2アクセス・トークンを使用する必要がある場合は、Oracleデータベースに対してそれらの使用を有効にできます。使用しているEntra IDアクセス・トークンのバージョンを検索するには、次のようにEntra ID管理者に問い合せるか、JSON WebトークンのWebサイトからバージョンを確認します。
  1. JSON WebトークンのWebサイトにアクセスします。
    https://jwt.io/
  2. トークン文字列をコピーして「エンコード」フィールドに貼り付けます。
  3. デコードフィールドを確認します。ここにはトークン文字列に関する情報が表示されています。
    そのフィールドの近くか下部に、次のバージョンのいずれかを示すverというクレームが表示されます。
    • "ver": "1.0"
    • "ver": "2.0"

Autonomous Databaseの外部アイデンティティ・プロバイダとしてのAzure ADの構成

Autonomous Database管理者は、Autonomous Databaseインスタンスで外部アイデンティティ・プロバイダとしてAzure ADを有効にできます。

Azure ADを外部アイデンティティ・プロバイダとして使用するには:

  1. DBMS_CLOUD_ADMIN PL/SQLパッケージに対するEXECUTE権限を持つユーザーとして、Autonomous Databaseインスタンスにログインします。ADMINユーザーにはこの権限があります。
  2. Azure ADに必要なパラメータを指定してDBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATIONプロシージャを実行します。
    BEGIN
      DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
          type   =>'AZURE_AD',
          params => JSON_OBJECT('tenant_id' VALUE 'tenant_id',
                                'application_id' VALUE 'application_id',
                                'application_id_uri' VALUE 'application_id_uri'),
          force => TRUE
      );
    END;

    このプロシージャで、Azure ADのパラメータは:

    • type: 外部認証プロバイダを指定します。Azure ADの場合は、示されているように'AZURE_AD'を使用します。
    • params: 必要なAzure ADパラメータの値は、Azureポータル(Azure Active Directoryのアプリケーション登録の「Overview」ペイン)から使用できます。Azure ADに必要なparamsは:
      • tenant_id: AzureアカウントのテナントID。テナントIDでは、Autonomous DatabaseインスタンスのAzure ADアプリケーション登録を指定します。
      • application_id: Autonomous Databaseインスタンスの外部認証用にロール/スキーマ・マッピングを割り当てるAzure ADで作成されたAzureアプリケーションID。
      • application_id_uri: Azureアプリケーションに割り当てられた一意のURI。

        これは、Autonomous Databaseインスタンスの識別子です。名前はドメイン修飾である必要があります(これはクロス・テナンシのリソース・アクセスをサポートします)。

        このパラメータの最大長は256文字です。

    • force: 別のEXTERNAL AUTHENTICATIONメソッドがAutonomous Databaseインスタンス用に構成されており、それを無効にする場合は、このパラメータをTRUEに設定します。

    たとえば:

    BEGIN
      DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
          type   =>'AZURE_AD',
          params => JSON_OBJECT('tenant_id' VALUE '29981886-6fb3-44e3-82',
                                'application_id' VALUE '11aa1a11-aaa',
                                'application_id_uri' VALUE 'https://example.com/111aa1aa'),
          force  => TRUE
      );
    END;

    これにより、IDENTITY_PROVIDER_TYPEシステム・パラメータが設定されます。

    たとえば、次を使用してIDENTITY_PROVIDER_TYPEを検証できます:

    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
     
    NAME                   VALUE   
    ---------------------- -------- 
    identity_provider_type AZURE_AD

    詳細は、ENABLE_EXTERNAL_AUTHENTICATIONプロシージャを参照してください。