Entra IDエンドポイントのアクセシビリティのテスト

Oracle DatabaseがEntra IDエンドポイントにアクセスできることを確認する必要があります。

データベース・クライアントがMicrosoft Entra ID OAuth2トークンを取得するように構成されている場合、データベース・クライアントはEntra IDエンドポイントにアクセスできる必要があります。次のコマンドを実行して、インターネット・アクセスがあるかどうかを確認します。
curl https://login.windows.net/common/discovery/keys
ステータス・コード200は成功を示します。

このコマンドの実行に失敗した場合は、ITヘルプ・デスクにプロキシ情報を確認してください。

OracleデータベースがEntra ID OAuth2トークンを受け入れるには、データベースがMicrosoft Entra IDエンドポイントから公開キーをリクエストする必要があります。
  • 次のテストを実行して、データベースがMicrosoft Entra IDエンドポイントに接続できるかどうかを確認します。
    SET SERVEROUTPUT ON SIZE 40000
    DECLARE
      req UTL_HTTP.REQ;
      resp UTL_HTTP.RESP;
    BEGIN
      UTL_HTTP.SET_WALLET(path => 'system:');
      req := UTL_HTTP.BEGIN_REQUEST('https://login.windows.net/common/discovery/keys');
      resp := UTL_HTTP.GET_RESPONSE(req);
      DBMS_OUTPUT.PUT_LINE('HTTP response status code: ' || resp.status_code);
      UTL_HTTP.END_RESPONSE(resp);
    END;
    /

    このテストが成功すると、PL/SQL procedure successfully completedメッセージが表示されます。

    次のメッセージが表示された場合は、データベース・ネットワーク・アクセス制御リスト(ACL)ポリシーによってテストがブロックされ、これをテストできるようにアクセス制御リスト・ポリシーを一時的に設定する必要があります。

    ORA-29273: HTTP request failed
    ORA-24247: network access denied by access control list (ACL)
    1. ACLを次のように設定します。
      BEGIN
      DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
        host => '*',
        ace  =>  xs$ace_type(privilege_list => xs$name_list('connect'),
                             principal_name => 'username_placeholder',
                             principal_type => xs_acl.ptype_db));
      END;
      /

      username_placeholderを、テストを実行しているデータベース・ユーザーのユーザー名に置き換えます。たとえば、次のとおりです。

      BEGIN
      DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
        host => '*',
        ace  =>  xs$ace_type(privilege_list => xs$name_list('connect'),
                             principal_name => 'DBA_DEBRA',
                             principal_type => xs_acl.ptype_db));
      END;
      /
    2. テストを再度実行します。
    3. ACLは不要になったため、削除します。たとえば、ユーザー名がdba_debraであるとします。
      BEGIN
      DBMS_NETWORK_ACL_ADMIN.REMOVE_HOST_ACE(
        host => '*',
        ace  =>  xs$ace_type(privilege_list => xs$name_list('connect'),
                             principal_name => 'DBA_DEBRA',
                             principal_type => xs_acl.ptype_db));
      END;
      /
データベースがMicrosoft Entra IDエンドポイントに接続できない場合は、ACLポリシーを設定した後でも、データベースのHTTP_PROXYパッケージを設定する必要があります。デフォルトのOracle Database環境またはOracle Real Application Clusters RAC環境を使用しているかどうかに応じて、「関連トピック」にリストされているトピックを確認します。ネットワーク管理者は、正しいHTTP_PROXY設定を通知できる必要があります。