37.12 OAUTH_AUTHENTICATE Procedure Signature 1

This procedure performs OAUTH autentication and requests an OAuth access token. The token and its expiry date are stored in the global variable g_oauth_token.

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

Note:

Currently only the Client Credentials flow is supported.

Syntax

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,
    p_scope             IN VARCHAR2 DEFAULT NULL );

Parameters

Table 37-7 OAUTH_AUTHENTICATE Procedure Parameters

Parameter Description

p_token_url

The url endpoint of the OAuth token service.

p_client_id

OAuth Client ID to use for authentication.

p_client_secret

OAuth Client Secret to use for authentication.

p_flow_type

OAuth flow type - only OAUTH_CLIENT_CRED is supported at this time.

p_proxy_override

The proxy to use for the request.

p_transfer_timeout

The amount of time in seconds to wait for a response.

p_wallet_path

The filesystem path to a wallet if request is https. For example, file:/usr/home/oracle/WALLETS.

p_wallet_pwd

The password to access the wallet.

p_https_host

The host name to be matched against the common name (CN) of the remote server's certificate for an HTTPS request.

p_scope

The OAuth scope to identify groups of attributes that will be requested from the OAuth provider. For example, profile,email.

Example

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;