11 OAUTH PL/SQLパッケージのリファレンス

OAUTH PL/SQLパッケージには、Oracle REST Data Servicesを使用してOAuth認証を実装するプロシージャが含まれています。

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_codeimplicitまたはclient_credentialsのいずれかである必要があります。

p_owner

クライアント・アプリケーションを所有するパーティの名前です。

p_description

クライアントの目的の説明で、Three-Legged OAuthの承認フェーズでエンド・ユーザーに表示されます。p_grant_typeclient_credentialsの場合はnullにもできます。それ以外の場合はnullにはできません。

p_allowed_origins

URLの接頭辞のカンマ区切りリスト。リストが空の場合、既存のオリジンは削除されます。

p_redirect_uri

OAuthアクセス・トークンまたはエラーが含まれるリダイレクトが送信されるクライアント制御URIです。p_grant_typeclient_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.DELETE_CLIENT

形式

OAUTH.DELETE_CLIENT(
   p_name VARCHAR2 IN);

説明

OAuthクライアント登録を削除します。

パラメータ

p_name

削除されるクライアント登録の名前です。

使用上のノート

操作を有効にするには、このプロシージャを呼び出した後でCOMMIT文を使用します。

次の例では、OAuthクライアント登録を削除します。

BEGIN
  OAUTH.delete_client(
    'CLIENT_TEST'
    );
  COMMIT;
END;
/

OAUTH.GRANT_CLIENT_ROLE

形式

OAUTH.GRANT_CLIENT_ROLE(
   p_client_name VARCHAR2 IN,
   p_role_name   VARCHAR2 IN);

説明

OAuthクライアントに指定したロールを付与し、クライアントがTwo-Legged OAuthを実行して、ロールを要求する権限にアクセスできるようにします。

パラメータ

p_client_name

OAuthクライアントの名前です。

p_role_name

付与されるロールの名前です。

使用上のノート

操作を有効にするには、このプロシージャを呼び出した後で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);

説明

クライアントの名前を変更します。

パラメータ

p_name

クライアントの現在の名前です。

p_new_name

クライアントの新しい名前です。

使用上のノート

クライアントの名前は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を通じてロールを要求する権限にアクセスすることを防ぎます。

パラメータ

p_client_name

OAuthクライアントの名前です。

p_role_name

削除されるロールの名前です

使用上のノート

操作を有効にするには、このプロシージャを呼び出した後で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;

関連トピック