DBMS_CLOUD_FUNCTION_ADMINパッケージ

DBMS_CLOUD_FUNCTION_ADMINパッケージでは、Autonomous AI Databaseインスタンスからの汎用スクリプトの起動、およびデータベース・ツールでの外部認証のためのアイデンティティ・プロバイダの登録がサポートされています。

DBMS_CLOUD_FUNCTION_ADMINサブプログラムの要約

この表は、DBMS_CLOUD_FUNCTION_ADMINパッケージに含まれるサブプログラムの概要を示しています。

サブプログラム 摘要
DEREGISTER_REMOTE_EXECUTION_ENVプロシージャ このプロシージャは、以前に登録されたエンドポイントを削除します。
GRANT_REMOTE_EXECUTION_ENVプロシージャ このプロシージャを使用すると、ADMINユーザーは、登録済エンドポイントの権限をADMIN以外のユーザーに付与できます。
REGISTER_REMOTE_EXECUTION_ENVプロシージャ このプロシージャは、リモート・エンドポイント環境を登録します。
REVOKE_REMOTE_EXECUTION_ENVプロシージャ このプロシージャを使用すると、ADMINユーザーは、ADMIN以外のユーザーから登録済エンドポイントの権限を取り消すことができます。
CREATE_IDPプロシージャ このプロシージャにより、ADMINユーザーは外部認証用の新しいアイデンティティ・プロバイダを作成できます。この手順は、OCI IAMアイデンティティ・プロバイダ登録には使用されません。
UPDATE_IDPプロシージャ このプロシージャにより、ADMINユーザーは、idp_idで識別される既存のアイデンティティ・プロバイダ・エントリを更新できます。
DELETE_IDPプロシージャ このプロシージャにより、ADMINユーザーはデータベースからアイデンティティ・プロバイダ登録を削除できます。

DEREGISTER_REMOTE_EXECUTION_ENVプロシージャ

このプロシージャは、以前に登録されたエンドポイントを削除します。

構文

DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV(
   remote_endpoint_name IN VARCHAR2
);

パラメータ

パラメータ 摘要
remote_endpoint_name

削除するリモート・エンドポイントを指定します。

このパラメータは必須です。

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV(
      remote_endpoint_name => 'REM_EXECUTABLE');
END;
/

使用上のノート

  • このプロシージャを実行するには、ADMINユーザーとしてログインする必要があります。

GRANT_REMOTE_EXECUTION_ENVプロシージャ

このプロシージャを使用すると、ADMINユーザーは、登録済エンドポイントの権限をADMIN以外のユーザーに付与できます。

構文

DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV(
   remote_endpoint_name IN VARCHAR2,
   user_name            IN VARCHAR2
);

パラメータ

パラメータ 摘要
remote_endpoint_name

登録されているリモート・エンドポイント名を指定します。

このパラメータは必須です。

user_name

ユーザー名を指定します。

このパラメータは必須です。

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV(
      remote_endpoint_name => 'REM_EXECUTABLE',
      user_name            => '<username>');
END;
/

使用上のノート

  • このプロシージャを実行するには、ADMINユーザーとしてログインする必要があります。

REGISTER_REMOTE_EXECUTION_ENVプロシージャ

このプロシージャは、リモート・エンドポイントを登録します。

構文

DBMS_CLOUD_FUNCTION_ADMIN.REGISTER_REMOTE_EXECUTION_ENV(
   remote_endpoint_name IN VARCHAR2,
   remote_endpoint_url  IN CLOB,
   wallet_dir           IN VARCHAR2,
   remote_cert_dn       IN CLOB
);

パラメータ

パラメータ 摘要
remote_endpoint_name

登録するリモート・エンドポイントを指定します。

このパラメータは必須です。

remote_endpoint_url

ライブラリのリモート位置を指定します。

パラメータは、host_name:port_number形式の文字列値を受け入れます。

たとえば: EHRPMZ_DBDOMAIN.adb-us-phoenix1.com:16000

このパラメータは必須です。

wallet_dir

自己署名ウォレットが格納されるディレクトリを指定します。

このパラメータは必須です。

remote_cert_dn

サーバー証明書識別名(DN)を指定します。

このパラメータは必須です。

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.REGISTER_REMOTE_EXECUTION_ENV(
      remote_endpoint_name => 'REM_EXECUTABLE',
      remote_endpoint_url  => 'remote_hostname:16000',
      wallet_dir           => 'WALLET_DIR',
      remote_cert_dn       => 'CN=VM Hostname');
END;
/

使用上のノート

  • このプロシージャを実行するには、ADMINユーザーとしてログインする必要があります。

REVOKE_REMOTE_EXECUTION_ENVプロシージャ

このプロシージャを使用すると、ADMINユーザーは、ADMIN以外のユーザーから登録済エンドポイントの権限を取り消すことができます。

構文

DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV(
   remote_endpoint_name IN VARCHAR2,
   user_name            IN VARCHAR2
);

パラメータ

パラメータ 摘要
remote_endpoint_name

登録されているリモート・エンドポイント名を指定します。

このパラメータは必須です。

user_name

ユーザー名を指定します。

このパラメータは必須です。

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV(
      remote_endpoint_name => 'REM_EXECUTABLE',
      user_name            => '<username>');
END;
/

使用上のノート

  • このプロシージャを実行するには、ADMINユーザーとしてログインする必要があります。

CREATE_IDPプロシージャ

このプロシージャは、Autonomous AI Databaseに外部アイデンティティ・プロバイダ(IDP)を登録します。この手順は、OCI IAMアイデンティティ・プロバイダ情報の登録には使用されません。

構文

DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
   idp_name        IN VARCHAR2,
   client_id       IN VARCHAR2,
   client_secret   IN VARCHAR2,
   params          IN JSON
);

パラメータ

パラメータ 摘要
idp_name アイデンティティ・プロバイダ登録の一意の名前を指定します。このパラメータは必須です。
client_id アイデンティティ・プロバイダに登録されたアプリケーションからのクライアント識別子を指定します。このパラメータは必須です。
client_secret 登録されたアプリケーションのクライアント・シークレットを指定します。このパラメータは必須です。
params アイデンティティ・プロバイダ構成値を含むJSONオブジェクトを指定します。このパラメータは必須です。

サポートされているJSONパラメータ

パラメータ 摘要
discovery_url 認証メタデータの取得に使用されるOpenID Connect検出エンドポイント。

Microsoft Entra IDの場合:

https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration

OCI IAMでは、この手順でCREATE_IDP登録またはdiscovery_url値は必要ありません。

例: Microsoft Entra IDの登録

この例では、テナント固有のOpenID Connect検出URLを使用して、Microsoft Entra IDを外部アイデンティティ・プロバイダとして登録する方法を示します。

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
      idp_name      => 'AZURE_AD',
      client_id     => '<client-id>',
      client_secret => '<client-secret>',
      params        => JSON_OBJECT(
                         'discovery_url' VALUE
                         'https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration'));
END;
/

例: AWS Cognitoの登録

この例は、Amazon Cognito OpenID Connect検出URLを使用して、AWS Cognitoを外部IDプロバイダとして登録する方法を示しています。

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
      idp_name       => 'AWS',
      client_id      => '<client-id>',
      client_secret  => '<client-secret>',
      params         => JSON_OBJECT(
                           'discovery_url' VALUE
                           'https://cognito-idp.<region>.amazonaws.com/<user-pool-id>/.well-known/openid-configuration'
                           ));
END;
/

例: Google Cloud Platform (GCP)の登録

この例では、Google OpenID Connect検出URLを使用して、Google Cloudを外部アイデンティティ・プロバイダとして登録する方法を示します。

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
      idp_name       => 'GCP',
      client_id      => '<client-id>',
      client_secret  => '<client-secret>',
      params         => JSON_OBJECT(
                           'discovery_url' VALUE
                           'https://accounts.google.com/.well-known/openid-configuration'
                           ));
END;
/

例: Oktaの登録

この例では、Okta認可サーバーのOpenID Connect検出URLを使用して、Oktaを外部アイデンティティ・プロバイダとして登録する方法を示します。

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
      idp_name       => 'OKTA',
      client_id      => '<client-id>',
      client_secret  => '<client-secret>',
      params         => JSON_OBJECT(
                           'discovery_url' VALUE
                           'https://<okta-domain>/oauth2/default/.well-known/openid-configuration'
                           ));
END;
/

登録を更新または置換する必要がないかぎり、データベースに対してアイデンティティ・プロバイダを1回登録する必要があります。

プロバイダ CREATE_IDPは必須ですか。 検出URLパターン
OCI IAM いいえ 該当なし。OCI IAMは、DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATIONで有効になっており、CREATE_IDPを使用しません。
Microsoft Entra ID(Azure) はい https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration
AWSコグニート はい https://cognito-idp.<region>.amazonaws.com/<user-pool-id>/.well-known/openid-configuration
Google Cloud Platform (GCP) はい https://accounts.google.com/.well-known/openid-configuration
Okta はい 組織サーバー: https://<okta-domain>/.well-known/openid-configuration
デフォルト/カスタム・サーバー: https://<okta-domain>/oauth2/<authorization-server-id>/.well-known/openid-configuration

UPDATE_IDPプロシージャ

このプロシージャは、既存のアイデンティティ・プロバイダ登録を変更します。クライアント資格証明、アイデンティティ・プロバイダ・メタデータ、またはその両方を更新できます。

構文

DBMS_CLOUD_FUNCTION_ADMIN.UPDATE_IDP(
   idp_id          IN VARCHAR2,
   client_id       IN VARCHAR2 DEFAULT NULL,
   client_secret   IN VARCHAR2 DEFAULT NULL,
   params          IN JSON DEFAULT NULL
);

パラメータ

パラメータ 摘要
idp_id 更新するアイデンティティ・プロバイダ登録の一意の識別子を指定します。
client_id 更新されたクライアント識別子を指定します。このパラメータはオプション。
client_secret 更新されたクライアント・シークレットを指定します。このパラメータはオプション。
params 更新されたJSON構成パラメータを指定します。このパラメータはオプション。

この例では、既存のアイデンティティ・プロバイダ登録のクライアント資格証明およびOpenID Connect検出URLを更新する方法を示します。

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.UPDATE_IDP(
      idp_id        => '<idp-id>',
      client_id     => '<client-id>',
      client_secret => '<client-secret>',
      params        => JSON_OBJECT(
                         'discovery_url' VALUE
                         'https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration'));
END;
/

使用上のノート

  • client_idを指定する場合は、client_secretも指定する必要があります。client_secretを指定する場合は、client_idも指定する必要があります。
  • idp_id値は、アイデンティティ・プロバイダの作成時に返されます。
  • 省略されたパラメータは、その現在の値を保持します。
  • アイデンティティ・プロバイダを更新しても、外部認証用に構成された既存のデータベース・ユーザーには影響しません。

DELETE_IDPプロシージャ

このプロシージャは、登録済アイデンティティ・プロバイダをデータベースから削除します。

構文

DBMS_CLOUD_FUNCTION_ADMIN.DELETE_IDP(
   idp_id IN VARCHAR2
);

パラメータ

パラメータ 摘要
idp_id 削除するアイデンティティ・プロバイダ登録の一意の識別子を指定します。このパラメータは必須です。

この例では、idp_idを使用して既存のアイデンティティ・プロバイダ登録を削除する方法を示します。

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.DELETE_IDP(
      idp_id => 'AZURE-ID');
END;
/

使用上のノート

  • アイデンティティ・プロバイダを削除すると、データベース・ツールで外部認証に使用される登録情報が削除されます。
  • アイデンティティ・プロバイダを削除する前に、認証のためにアプリケーションまたはユーザーがその登録に依存していないことを確認してください。
  • 従来のデータベース認証用に構成されたユーザーは、アイデンティティ・プロバイダ登録の削除後も、データベースのユーザー名とパスワードで引き続き認証できます。

DBA_LIST_IDPビュー

DBA_LIST_IDPビューには、Autonomous AI Databaseで外部認証に登録されたアイデンティティ・プロバイダが表示されます。このビューを使用して、データベース・ツールおよび外部認証フローで使用されるアイデンティティ・プロバイダ名、クライアント識別子およびOpenID Connect検出メタデータをレビューします。

カラム

カラム 摘要
idp_id 登録済アイデンティティ・プロバイダの一意の識別子。この値は、アイデンティティ・プロバイダの登録時に生成されます。
idp_name アイデンティティ・プロバイダの名前。たとえば、AZURE_ADは、Microsoft Entra IDをアイデンティティ・プロバイダとして識別します。
client_id アイデンティティ・プロバイダに登録されたアプリケーションのクライアント識別子。データベース・ツールは、外部認証のためにユーザーをリダイレクトするときにこの値を使用します。
params アイデンティティ・プロバイダ構成パラメータを格納するJSONオブジェクト。discovery_urlパラメータは、アイデンティティ・プロバイダのOpenID Connect検出エンドポイントを識別します。

PARAMS JSON属性

属性 摘要
discovery_url アイデンティティ・プロバイダのOpenID Connect検出URL。検出URLは、認可エンドポイント、トークン・エンドポイント、発行者、署名キーなどのメタデータを返します。Microsoft Entra IDの場合、このURLはテナント固有の.well-known/openid-configurationエンドポイントを使用します。

この例では、登録済アイデンティティ・プロバイダの選択された列をリストします。

SELECT idp_id,
       idp_name,
       client_id,
       params
FROM dba_list_idp;

サンプル出力:

IDP_ID     IDP_NAME   CLIENT_ID              PARAMS
---------- ---------- ---------------------- ------------------------------------------------------------
AZURE-ID   AZURE_AD   5691bae2-XXX-YYY-ZZZ   {"discovery_url":"https://login.microsoftonline.com/XXXX-YYYY-ZZZ-KKK-/v2.0/.well-known/openid-configuration"}

この例では、以下のようになります。

  • AZURE-IDは、生成されたアイデンティティ・プロバイダ識別子です。

  • AZURE_ADは、登録済アイデンティティ・プロバイダ名です。

  • CLIENT_IDは、Microsoft Entra IDのアプリケーション・クライアントIDです。

  • PARAMS値には、Entra IDテナントのOpenID Connect構成の検索に使用されるdiscovery_urlが含まれます。