6 OAUTH PL/SQLパッケージのリファレンス
6.1 OAUTH.CREATE_CLIENT
形式
OAUTH.CREATE_CLIENT( p_name IN VARCHAR2, p_grant_type IN VARCHAR2, p_owner IN VARCHAR2 DEFAULT NULL, p_description IN VARCHAR2 DEFAULT NULL, p_origins_allowed IN VARCHAR2 DEFAULT NULL, p_redirect_uri IN VARCHAR2 DEFAULT NULL, p_support_email IN VARCHAR2 DEFAULT NULL, p_support_uri IN VARCHAR2 DEFAULT NULL, p_privilege_names IN VARCHAR2 p_token_duration IN NUMBER, p_refresh_duration IN NUMBER, p_code_duration IN NUMBER)
説明
OAuthクライアントの登録を作成します。
パラメータ
- p_name
-
クライアントの名前で、Three-Legged OAuthの承認フェーズでエンド・ユーザーに表示されます。一意である必要があります。
- p_grant_type
-
authorization_code
、implicit
またはclient_credentials
のいずれかである必要があります。 - p_owner
-
クライアント・アプリケーションを所有するパーティの名前です。
- p_description
-
クライアントの目的の説明で、Three-Legged OAuthの承認フェーズでエンド・ユーザーに表示されます。
p_grant_type
がclient_credentials
の場合はnullにもできます。それ以外の場合はnullにはできません。 - p_origins_allowed
-
URLの接頭辞のカンマ区切りリスト。リストが空の場合、既存のオリジンは削除されます。
- p_redirect_uri
-
OAuthアクセス・トークンまたはエラーが含まれるリダイレクトが送信されるクライアント制御URIです。
p_grant_type
がclient_credentials
の場合はnullにもできます。それ以外の場合はnullにはできません。 - p_support_email
-
エンド・ユーザーがサポートを得るためにクライアントに連絡できる電子メールです。
- p_support_uri
-
エンド・ユーザーがサポートを得るためにクライアントに連絡できるURIです。例:
http://www.myclientdomain.com/support/
- p_privilege_names
-
クライアントがアクセスするカンマ区切りの権限のリストです。
- p_token_duration
- アクセス・トークンの期間(秒単位)。
NULL
期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、3600秒に設定されます。
使用上のノート
操作を有効にするには、このプロシージャを呼び出した後でCOMMIT文を使用します。
例
次の例では、OAuthクライアント登録を作成します。
BEGIN
OAUTH.create_client(
'CLIENT_TEST',
'authorization_code',
'test_user',
'This is a test description.',
'',
'https://example.org/my_redirect/#/',
'test@example.org',
'https://example.org/help/#/',
'MyPrivilege',
NULL,
NULL,
NULL
);
COMMIT;
END;
/
6.3 OAUTH.GRANT_CLIENT_ROLE
形式
OAUTH.GRANT_CLIENT_ROLE( p_client_name IN VARCHAR2, p_role_name IN VARCHAR2);
説明
OAuthクライアントに指定したロールを付与し、クライアントがTwo-Legged OAuthを実行して、ロールを要求する権限にアクセスできるようにします。
使用上のノート
操作を有効にするには、このプロシージャを呼び出した後でCOMMIT文を使用します。
例
次の例では、ロールを作成し、OAuthクライアントにそのロールを付与します。
BEGIN ORDS.create_role(p_role_name => 'CLIENT_TEST_ROLE'); OAUTH.grant_client_role( 'CLIENT_TEST', 'CLIENT_TEST_ROLE' ); COMMIT; END; /
6.4 OAUTH.RENAME_CLIENT
形式
OAUTH.RENAME_CLIENT( p_name IN VARCHAR2, p_new_name IN VARCHAR2);
説明
クライアントの名前を変更します。
使用上のノート
クライアントの名前はThree-Legged OAuthの承認フェーズでエンド・ユーザーに表示されます。
操作を有効にするには、このプロシージャを呼び出した後でCOMMIT文を使用します。
例
次の例では、クライアントの名前を変更します。
BEGIN OAUTH.rename_client( 'CLIENT_TEST', 'CLIENT_TEST_RENAMED' ); COMMIT; END; /
6.5 OAUTH.REVOKE_CLIENT_ROLE
形式
OAUTH.REVOKE_CLIENT_ROLE( p_client_name IN VARCHAR2, p_role_name IN VARCHAR2);
説明
OAuthクライアントから指定したロールを削除し、クライアントがTwo-Legged OAuthを通じてロールを要求する権限にアクセスすることを防ぎます。
使用上のノート
操作を有効にするには、このプロシージャを呼び出した後でCOMMIT文を使用します。
例
次の例では、OAuthクライアントから指定したロールを削除します。
BEGIN OAUTH.revoke_client_role( 'CLIENT_TEST_RENAMED', 'CLIENT_TEST_ROLE' ); COMMIT; END; /
6.6 OAUTH.UPDATE_CLIENT
形式
OAUTH.UPDATE_CLIENT( p_name IN VARCHAR2, p_description IN VARCHAR2, p_origins_allowed IN VARCHAR2, p_redirect_uri IN VARCHAR2, p_support_email IN VARCHAR2, p_suppor_uri IN VARCHAR2, p_privilege_names IN t_ords_vchar_tab DEFAULT NULL, p_token_duration IN NUMBER, p_refresh_duration IN NUMBER, p_code_duration IN NUMBER );
説明
クライアント情報を更新します(名前を除く)。null値を指定すると、既存のクライアント・プロパティは変更されません。
パラメータ
- p_name
-
所有者、説明、使用可能な起点、サポート電子メール、サポートURIおよび権限変更を要求するクライアントの名前です。
- p_description
-
クライアントの目的の説明で、Three-Legged OAuthの承認フェーズでエンド・ユーザーに表示されます。
- p_origins_allowed
-
URLの接頭辞のカンマ区切りリスト。リストが空の場合、既存のオリジンは削除されます。
- p_redirect_uri
-
OAuthアクセス・トークンまたはエラーが含まれるリダイレクトが送信されるクライアント制御URI。このパラメータがnullの場合、既存の
p_redirect_uri
値(存在する場合)は変更されません。 - p_support_email
-
エンド・ユーザーがサポートを得るためにクライアントに連絡できる電子メール・アドレスです。
- p_support_uri
-
エンド・ユーザーがサポートを得るためにクライアントに連絡できるURIです。例:
http://www.myclientdomain.com/support/
- p_privilege_names
-
クライアントがアクセスする権限の名前のリストです。
- p_token_duration
-
アクセス・トークンの期間(秒単位)。
NULL
期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、3600秒に設定されます。
使用上のノート
操作を有効にするには、このプロシージャを呼び出した後でCOMMIT文を使用します。
クライアントの名前を変更する場合は、 OAUTH.RENAME_CLIENT
プロシージャを使用します。
指定のクライアントの説明を更新する例
次の例では、p_name
の値と一致する名前を持つクライアントの説明を更新します。
BEGIN ORDS_METADATA.OAUTH.update_client( p_name => 'CLIENT_TEST_RENAMED', p_description => 'The description was altered', p_origins_allowed => null, p_redirect_uri => null, p_support_email => null, p_support_uri => null, p_privilege_names => null, p_token_duration => null, p_refresh_duration => null, p_code_duration => null); COMMIT; END; /
例6-1 複数の権限を追加する例
次の例は、2つめの権限を追加します。
declare my_privs t_ords_vchar_tab := t_ords_vchar_tab (); begin my_privs.EXTEND (3); my_privs(1):='tst.privilege1'; my_privs(2):='tst.privilege2'; oauth.update_client( p_name => 'Test_Client', p_description => 'Description altered.', p_origins_allowed => NULL, p_redirect_uri => '/abc/efg/', p_privilege_names => my_privs, p_token_duration => NULL, p_refresh_duration => NULL, p_code_duration => NULL); commit; end;
関連トピック
6.7 OAUTH.ROTATE_CLIENT_SECRET
形式
OAUTH.ROTATE_CLIENT_SECRET(
p_client_id IN NUMBER,
p_editing_user IN VARCHAR2,
p_revoke_sessions IN BOOLEAN DEFAULT TRUE);
説明
ROTATE_CLIENT_SECRET
は、新しいクライアント・シークレットを再生成し、デフォルトで既存のクライアント・セッションをすべて削除します。
パラメータ
例
BEGIN
OAUTH.ROTATE_CLIENT_SECRET(
p_client_id => 1234567890,
p_editing_user => 'USERA',
p_revoke_sessions => TRUE
);
END;
/
6.8 OAUTH.UPDATE_CLIENT_SECRET
形式
OAUTH.UPDATE_CLIENT_SECRET(
p_client_name IN VARCHAR2,
p_editing_user IN VARCHAR2,
p_client_secret IN VARCHAR2);
説明
UPDATE_CLIENT_SECRET
は、クライアントのシークレットに新しい値を設定します。デフォルトでは、既存のクライアント・セッションがすべて削除されます。
パラメータ
例
次の例では、特定のクライアントのシークレットを更新します。
BEGIN
OAUTH.UPDATE_CLIENT_SECRET(
p_client_name => 'CLIENT_TEST',
p_editing_user => 'USERA ',
p_client_secret => 'RaFhM690PA6cN1ffpkNx3Q..');
END;
/
6.9 OAUTH.IMPORT_CLIENT
形式
OAUTH.IMPORT_CLIENT(
p_name IN VARCHAR2,
p_client_id IN VARCHAR2,
p_client_secret IN VARCHAR2 DEFAULT NULL,
p_grant_type IN VARCHAR2,
p_owner IN VARCHAR2 DEFAULT NULL,
p_description IN VARCHAR2 DEFAULT NULL,
p_origins_allowed IN VARCHAR2 DEFAULT NULL,
p_redirect_uri IN VARCHAR2 DEFAULT NULL,
p_support_email IN VARCHAR2 DEFAULT NULL,
p_support_uri IN VARCHAR2 DEFAULT NULL,
p_privilege_names IN VARCHAR2,
p_token_duration IN NUMBER DEFAULT NULL,
p_refresh_duration IN NUMBER DEFAULT NULL,
p_code_duration IN NUMBER DEFAULT NULL);
説明
既存のクライアントをこのスキーマにインポートし、識別子およびオプションでシークレットを保持します。シークレットが指定されていない場合は、新しいシークレットが生成されます。
パラメータ
- p_description
-
クライアントの目的の説明。Three-Legged OAuthの承認フェーズでエンド・ユーザーに表示されます。
p_grant_type
値がclient_credentials
の場合、null
にできます。それ以外の場合は、nullにできません。
- p_redirect_uri
-
OAuthアクセス・トークンまたはエラーが含まれるリダイレクトが送信されるクライアント制御URI。
p_grant_type
の値がclient_credentials
の場合、nullにできます。それ以外の場合は、nullにできません。
- p_token_duration
-
アクセス・トークンの期間(秒単位)。
NULL
期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、3600秒に設定されます。
使用上のノート
操作を有効にするには、このプロシージャを呼び出した後でCOMMIT
文を使用します。
例
次の例では、カスタム期間またはオリジンなしでOAuthクライアントをインポートします:
BEGIN
OAUTH.IMPORT_CLIENT(
p_name => 'CLIENT_TEST',
p_client_id => 'awVMtPlqullIqPXhAwh4zA..',
p_grant_type => 'authorization_code',
p_owner => 'RESTEASY',
p_description => 'This is a test description.',
p_origins_allowed => NULL,
p_redirect_uri => 'https://example.org/my_redirect/',
p_support_email => 'test@example.org',
p_support_uri => 'https://example.org/help/',
p_privilege_names => 'MyPrivilege');
COMMIT;
END;
/