37.12 OAUTH_AUTHENTICATEファンクション

このファンクションは、OAUTH認証を実行し、OAuthアクセス・トークンをリクエストします。トークンとその失効日は、グローバル変数g_oauth_tokenに格納されます。

type oauth_token is record(
     token      varchar2(255),
     expires    date );

注意:

現在は、クライアント資格証明フローのみがサポートされています。

構文

APEX_WEB_SERVICE.OAUTH_AUTHENTICATE(
    p_token_url         in varchar2,
    p_client_id         in varchar2,
    p_client_secret     in varchar2,
    p_flow_type         in varchar2 default OAUTH_CLIENT_CRED,
    p_proxy_override    in varchar2 default null,
    p_transfer_timeout  in number   default 180,
    p_wallet_path       in varchar2 default null,
    p_wallet_pwd        in varchar2 default null,
    p_https_host        in varchar2 default null );

パラメータ

表37-7 OAUTH_AUTHENTICATEファンクションのパラメータ

パラメータ 説明

p_token_url

OAuthトークン・サービスのURLエンドポイント。

p_client_id

認証に使用するOAuth Client ID。

p_client_secret

認証に使用するOAuthクライアント・シークレット。

p_flow_type

OAuthフロー・タイプ - 現時点ではOAUTH_CLIENT_CREDのみサポートされます。

p_proxy_override

リクエストに使用するプロキシ。

p_transfer_timeout

レスポンスを待機する時間(秒単位)。

p_wallet_path

リクエストがhttpsの場合、ウォレットのファイルシステム上のパス。file:/usr/home/oracle/WALLETSなど。

p_wallet_pwd

ウォレットにアクセスするためのパスワード。

p_https_host

HTTPS要求に対してリモート・サーバーの証明書の共通名(CN)と照合するホスト名。

begin
    apex_web_service.oauth_authenticate(
        p_token_url     => '[URL to ORDS OAuth troken service: http(s)://{host}:{port}/ords/.../oauth/token]',
        p_client_id     => '[client-id]',
        p_client_secret => '[client-secret]');
end;