11 OAUTH PL/SQLパッケージのリファレンス
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;
/
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;
/
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;
/
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;
/
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;関連トピック