プライマリ・コンテンツに移動

Oracle® Application Express APIリファレンス リリース5.1 E85937-02 |
| 目次 | 索引

前 | 次 |

# 3.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 );

パラメータ

表3-1 APEX_AUTHENTICATION.CALLBACKプロシージャのパラメータ

パラメータ | 説明
--- | ---
`p_session_id` | Application Expressセッション識別子。
`p_app_id` | データベース・アプリケーション識別子。
`p_page_id` | ページ識別子(オプション)。
`p_ajax_identifierp` | システム生成のAjax識別子。GET_AJAX_IDENTIFIERファンクションを参照してください。
`p_x01`から`p_x10` | 外部ログインによって認証プラグインに渡されるオプション・パラメータ。

例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;

注意:

GET_CALLBACK_URLファンクション