11 OAUTH PL/SQLパッケージのリファレンス
11.1 OAUTH.CREATE_CLIENT
形式
OAUTH.CREATE_CLIENT( p_name VARCHAR2 IN, p_grant_type VARCHAR2 IN, p_owner VARCHAR2 IN DEFAULT NULL, p_description VARCHAR2 IN DEFAULT NULL, p_allowed_origins VARCHAR2 IN DEFAULT NULL, p_redirect_uri VARCHAR2 IN DEFAULT NULL, p_support_email VARCHAR2 IN DEFAULT NULL, p_support_uri VARCHAR2 IN DEFAULT NULL, p_privilege_names VARCHAR2 IN)
説明
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_allowed_origins
-
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
-
クライアントがアクセスするカンマ区切りの権限のリストです。
使用上のノート
操作を有効にするには、このプロシージャを呼び出した後で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' ); COMMIT; END; /
11.3 OAUTH.GRANT_CLIENT_ROLE
形式
OAUTH.GRANT_CLIENT_ROLE( p_client_name VARCHAR2 IN, p_role_name VARCHAR2 IN);
説明
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; /
11.4 OAUTH.RENAME_CLIENT
形式
OAUTH.RENAME_CLIENT( p_name VARCHAR2 IN, p_new_name VARCHAR2 IN);
説明
クライアントの名前を変更します。
使用上のノート
クライアントの名前はThree-Legged OAuthの承認フェーズでエンド・ユーザーに表示されます。
操作を有効にするには、このプロシージャを呼び出した後でCOMMIT文を使用します。
例
次の例では、クライアントの名前を変更します。
BEGIN OAUTH.rename_client( 'CLIENT_TEST', 'CLIENT_TEST_RENAMED' ); COMMIT; END; /
11.5 OAUTH.REVOKE_CLIENT_ROLE
形式
OAUTH.REVOKE_CLIENT_ROLE( p_client_name VARCHAR2 IN, p_role_name VARCHAR2 IN);
説明
OAuthクライアントから指定したロールを削除し、クライアントがTwo-Legged OAuthを通じてロールを要求する権限にアクセスすることを防ぎます。
使用上のノート
操作を有効にするには、このプロシージャを呼び出した後でCOMMIT文を使用します。
例
次の例では、OAuthクライアントから指定したロールを削除します。
BEGIN OAUTH.revoke_client_role( 'CLIENT_TEST_RENAMED', 'CLIENT_TEST_ROLE' ); COMMIT; END; /
11.6 OAUTH.UPDATE_CLIENT
形式
OAUTH.UPDATE_CLIENT( p_name VARCHAR2 IN, p_description VARCHAR2 IN, p_origins_allowed VARCHAR2 IN, p_redirect_uri VARCHAR2 IN, p_support_email VARCHAR2 IN, p_suppor_uri VARCHAR2 IN, p_privilege_names t_ords_vchar_tab IN);
説明
クライアント情報を更新します(名前を除く)。null値を指定すると、既存のクライアント・プロパティは変更されません。
パラメータ
- p_name
-
所有者、説明、使用可能な起点、サポート電子メール、サポートURIおよび権限変更を要求するクライアントの名前です。
- p_description
-
クライアントの目的の説明で、Three-Legged OAuthの承認フェーズでエンド・ユーザーに表示されます。
- p_redirect_uri
-
OAuthアクセス・トークンまたはエラーが含まれるリダイレクトが送信されるクライアント制御URI。このパラメータがnullの場合、既存の
p_redirect_uri
値(存在する場合)は変更されません。 - p_support_email
-
エンド・ユーザーがサポートを得るためにクライアントに連絡できる電子メール・アドレスです。
- p_support_uri
-
エンド・ユーザーがサポートを得るためにクライアントに連絡できるURIです。例:
http://www.myclientdomain.com/support/
- p_privilege_names
-
クライアントがアクセスする権限の名前のリストです。
使用上のノート
操作を有効にするには、このプロシージャを呼び出した後で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); COMMIT; END; /
例11-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_owner => 'scott', p_description => 'Description', p_grant_type => 'client_credentials', p_redirect_uri => '/abc/efg/', p_privilege_names => my_privs); commit; end;
関連トピック