顧客管理のWalletを使用した外部コールの作成
Autonomous Databaseインスタンスがプライベート・エンドポイントにある場合は、UTL_HTTP, DBMS_LDAP, UTL_SMTPまたはUTL_TCPのプロシージャで顧客管理ウォレットを使用できます。 スケジューラがスケジューラ・ジョブに関連する様々なイベントのSMTP電子メール通知を送信するときに、顧客管理ウォレットを使用することもできます。
外部コールでの顧客管理Walletの使用について
Autonomous Databaseインスタンスがプライベート・エンドポイントにある場合は、顧客管理ウォレットを使用して外部コールを処理するか、スケジューラを使用してスケジューラ・ジョブに関連する様々なイベントの電子メールを送信できます。
Autonomous Databaseでは、次のいずれかの目的で外部コールを実行できます:
-
webサービスを
UTL_HTTPとともに使用する場合。 -
DBMS_LDAPを使用してLDAPサーバーからデータにアクセスするには。 -
UTL_SMTPで電子メールを送信するには。 -
UTL_TCPでTCP/IPを使用して外部TCP/IPベースのサーバーと通信する場合。 -
Oracle Schedulerジョブの電子メール通知の場合。
デフォルトでは、これらのパッケージでプロシージャを使用すると、Autonomous Databaseは内部ウォレットを保持し、常にセキュアな接続を使用します(Oracle管理ウォレットには、最も一般的な信頼できるルート証明書と中間SSL証明書の90以上が含まれます)。 Autonomous Databaseがプライベート・エンドポイントにある場合は、信頼できる中間SLL認証でデフォルトのOracle管理ウォレットを使用することも、顧客管理ウォレットを指定することもできます。
Autonomous Databaseがプライベート・エンドポイントにある場合は、次のPL/SQLプロシージャを使用して、UTL_HTTP, UTL_SMTP, DBMS_LDAPの顧客管理ウォレットとDBMS_NETWORK_ACL_ADMINを指定できます:
UTL_HTTP.SET_WALLET (
path IN VARCHAR2,
password IN VARCHAR2 DEFAULT NULL);
UTL_HTTP.REQUEST (
wallet_path IN VARCHAR2 DEFAULT NULL,
wallet_password IN VARCHAR2 DEFAULT NULL)
UTL_HTTP.REQUEST_PIECES (
wallet_p ath IN VARCHAR2 DEFAULT NULL,
wallet_password IN VARCHAR2 DEFAULT NULL,
UTL_HTTP.CREATE_REQUEST_CONTEXT (
wallet_path IN VARCHAR2 DEFAULT NULL,
wallet_password IN VARCHAR2 DEFAULT NULL)
UTL_TCP.OPEN_CONNECTION
wallet_path IN VARCHAR2 DEFAULT NULL,
wallet_password IN VARCHAR2 DEFAULT NULL);
UTL_SMTP.OPEN_CONNECTION
wallet_path IN VARCHAR2 DEFAULT NULL,
wallet_password IN VARCHAR2 DEFAULT NULL)
DBMS_LDAP.OPEN_SSL(
sslwrl IN VARCHAR2,
sslwalletpasswd IN VARCHAR2)
DBMS_NETWORK_ACL_ADMIN.APPEND_WALLET_ACE
wallet_path IN VARCHAR2
DBMS_NETWORK_ACL_ADMIN.APPEND_WALLET_ACL(
wallet_path IN VARCHAR2これらのコールでは、プロシージャに応じて、pathまたはwallet_pathパラメータを使用して、顧客管理ウォレットを指定します。 ウォレット・ディレクトリにはDIR:プレフィクスを設定し、ウォレット・パスを含めます。 たとえば:
UTL_HTTP.set_wallet('DIR:WALLET_DIR', 'password');APIを起動する現在のユーザーは、ディレクトリ・オブジェクトに対するREAD権限を持っているか、CREATE ANY DIRECTORYシステム権限を付与されている必要があります。
DIR:プレフィクスは、顧客管理ウォレットの指定に使用する優先形式です。 また、file:プレフィクスもサポートされています。 たとえば:
UTL_HTTP.set_wallet('file:WALLET_DIR/wallet.sso', 'password');詳細は、「UTL_HTTPによる外部コールに対する顧客管理Walletの使用」を参照してください:
スケジューラEメール・サーバーでの顧客管理Walletの使用について
スケジューラEメール・サーバーは、開始済、失敗または完了済ジョブの通知など、スケジューラに関連する様々なイベントのEメール通知を送信できます。 デフォルトでは、スケジューラのSMTP電子メール・サーバーは、SSL/TLS通信用にSSL_WALLETプロパティで定義されたウォレットを使用します。 オプションで、スケジューラSMTP電子メール・サーバーで顧客管理ウォレットを使用できます。
次のグローバル属性は、顧客管理ウォレットの使用をサポートします:
-
EMAIL_SERVER_WALLET_DIRECTORY: 、SSLウォレットが存在するパスを指定するディレクトリ・オブジェクトに設定されます。 EMAIL_SERVER_WALLET_CREDENTIAL: username/パスワードペアを持つ資格証明オブジェクトに設定されます。ここで、usernameは任意の値で、パスワードはSSLウォレット・パスワードです。
これらの属性の値は、DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTEを使用して設定します。
詳細は、次を参照してください:
外部コールで顧客管理Walletを使用するための前提条件
外部コールまたはスケジューラSMTP電子メール通知で顧客管理ウォレットを使用するための前提条件ステップを示します。
前提条件ステップを実行します:
UTL_HTTPによる外部コールに対する顧客管理Walletの使用
Autonomous Databaseインスタンスがプライベート・エンドポイントにある場合、顧客管理ウォレットを使用して外部コールを処理できます。
次のステップでは、UTL_HTTPでの顧客管理ウォレットの使用について説明します。 次のような、サポートされている他のパッケージについても同じステップです: DMBS_LDAP、UTL_SMTP、およびUTL_TCP。
顧客管理ウォレットを使用するには、前提条件ステップを実行します。 詳細については、「外部コールで顧客管理Walletを使用するための前提条件」を参照してください。
顧客管理ウォレットを使用するようにAutonomous Databaseを構成するには:
スケジューラの電子メール通知での顧客管理Walletの使用
顧客管理ウォレットでスケジューラSMTP電子メール・サーバーを使用するステップについて説明します。
顧客管理ウォレットを使用するには、前提条件ステップを実行します。 詳細については、「外部コールで顧客管理Walletを使用するための前提条件」を参照してください。
スケジューラEメール・サーバーで顧客管理ウォレットを使用するには:
外部コールで顧客管理Walletを使用するためのノート
外部コールで顧客管理ウォレットを使用するためのノートを提供します。
-
DBMS_CLOUDリクエストでは、UTL_HTTP.set_walletで設定したカスタム・ウォレットは適用されません。 これには、DBMS_CLOUD.SEND_REQUESTおよびDBMS_CLOUD.CREATE_EXTERNAL_TABLE、DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEまたはDBMS_CLOUD.CREATE_HYBRID_PART_TABLEで定義したDBMS_CLOUD外部表に対するすべてのオブジェクト・ストレージ・アクセスが含まれます。DBMS_CLOUDプロシージャを使用して作成した外部表に対して問合せを実行する場合、問合せではUTL_HTTP.set_walletで設定したカスタム・ウォレットは使用されません。 -
APEX_WEB_SERVICEリクエストでは、UTL_HTTP.set_walletで設定したカスタム・ウォレットは適用されません。APEXで顧客管理ウォレットを使用するには、
APEX_WEB_SERVICEAPIコールでp_wallet_pathパラメータを指定するか、APEX管理サービスでWalletパス・インスタンスの設定を設定します。詳細については、「Oracle APEX管理サービスへのアクセス」を参照してください。
-
自動ログイン・ウォレットとパスワードで保護されたウォレットの両方がサポートされています。 自動ログイン・ウォレットを使用する場合は、
wallet_passwordパラメータにNULLを指定します。 -
UTL_HTTP.set_walletAPIを起動する現行のユーザーは、ディレクトリ・オブジェクトに対するREAD権限を持っているか、CREATE ANY DIRECTORYシステム権限を付与されている必要があります。 -
UTL_HTTP.SET_AUTHENTICATION_FROM_WALLETAPIを使用できます。 詳細については、「SET_AUTHENTICATION_FROM_WALLETプロシージャ」を参照してください。 -
file:プレフィクスは、指定されたファイル・パスがPATH_PREFIX準拠であるかぎり、UTL_HTTP.set_walletでサポートされます。DBMS_PDB_IS_VALID_PATHプロシージャ(ADMINユーザーを含むPUBLICに付与)を使用して、入力として指定されたパスのPATH_PREFIXコンプライアンスを決定できます。たとえば:
with function check_path_prefix_compliance(file_path varchar2) return varchar2 as BEGIN if dbms_pdb_is_valid_path(file_path) then return 'YES'; else return 'NO'; end if; END; SELECT check_path_prefix_compliance('/u03/dbfs/1276CDexample/data/dpdump') as PATH_PREFIX_COMPLIANT, check_path_prefix_compliance('/u01/app/oracle/diag') as PATH_PREFIX_COMPLIANT FROM dual; / -
UTL_HTTP.set_walletを使用するときに下位互換性を確保するために、ウォレット・パスが無視される場合は、file:、NULLなどの入力値が受け入れられます。 これらの値は無視され、デフォルトのSSLウォレット・パスをUTL_HTTP.set_walletとともに使用するように指定します。 -
APPEND_WALLET_ACLなどのDBMS_NETWORK_ACL_ADMINウォレットACL APIがサポートされています。 これらのプロシージャを使用すると、ウォレットACL権限を付与または取り消すことができます。 詳細については、DBMS_NETWORK_ACL_ADMINを参照してください。 -
認証用のSSLウォレットでのパスワード資格証明の使用をサポートするには、
UTL_HTTPAPIを呼び出す現在のユーザーに、ウォレット・パスに対する"use-passwords" ACL権限が必要です。 -
EMAIL_SERVER_WALLET_DIRECTORYおよびEMAIL_SERVER_WALLET_CREDENTIALをDBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTEで設定するためのノート:-
DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTEを使用して属性値を設定するには、管理ユーザーまたはMANAGE SCHEDULER権限を持つユーザーである必要があります(ADMINユーザーにはこれらの権限があります)。 MANAGE SCHEDULER権限に加えて、DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTEを起動するユーザーには、EMAIL_SERVER_WALLET_DIRECTORYで設定したディレクトリ・オブジェクトに対するREAD権限と、EMAIL_SERVER_WALLET_CREDENTIALで設定した資格証明オブジェクトに対するEXECUTE権限が必要です。
-