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;関連トピック