4.2 CALLBACKプロシージャ
このプロシージャは、外部ログイン・ページのランディング・リソースです。このプロシージャのコールは、ブラウザから直接行います。
構文
APEX_AUTHENTICATION.CALLBACK (
p_session_id IN NUMBER,
p_app_id IN NUMBER,
p_page_id IN NUMBER DEFAULT NULL,
p_ajax_identifier IN VARCHAR2,
p_x01 IN VARCHAR2 DEFAULT NULL,
p_x02 IN VARCHAR2 DEFAULT NULL,
p_x03 IN VARCHAR2 DEFAULT NULL,
p_x04 IN VARCHAR2 DEFAULT NULL,
p_x05 IN VARCHAR2 DEFAULT NULL,
p_x06 IN VARCHAR2 DEFAULT NULL,
p_x07 IN VARCHAR2 DEFAULT NULL,
p_x08 IN VARCHAR2 DEFAULT NULL,
p_x09 IN VARCHAR2 DEFAULT NULL,
p_x10 IN VARCHAR2 DEFAULT NULL );
パラメータ
表4-1 APEX_AUTHENTICATION.CALLBACKプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
Application Expressセッション識別子。 |
|
データベース・アプリケーション識別子。 |
|
ページ識別子(オプション)。 |
|
システム生成のAjax識別子。GET_AJAX_IDENTIFIERファンクションを参照してください。 |
|
外部ログインによって認証プラグインに渡されるオプション・パラメータ。 |
例1
この例では、外部ログイン・ページにリダイレクトが行われ、認証の成功時に外部ログインのリダイレクト先となるApplication Expressにコールバックが渡されます。
declare
l_callback varchar2(4000) := apex_application.get_callback_url;
begin
sys.owa_util.redirect_url(
'https://single-signon.example.com/my_custom_sso.login?p_on_success='||
sys.utl_url.escape (
url => l_callback,
escape_reserved_chars => true );
apex_application.stop_apex_engine;
end;
例2
この例では、外部ログイン・ページの共有表にユーザー・データを保存し、データへのハンドルを使用してコールバックを実行します。Application Expressでは、コールバックによって認証プラグインのAJAXコードがアクティブ化されます。これは、値x01
を取ることができ、共有表から実際のユーザー・データをフェッチできます。
---- create or replace package body my_custom_sso as
procedure login (
p_on_success in varchar2 )
is
l_login_id varchar2(32);
begin
l_login_id := rawtohex(sys.dbms_crypto.random(32));
insert into login_data(id, username) values (l_login_id, 'JOE USER');
sys.owa_util.redirect_url (
p_on_success||'&p_x01='||l_login_id );
end;
---- end my_custom_sso;
親トピック: APEX_AUTHENTICATION