9 ORDS_SECURITY_ADMIN PL/SQLパッケージのリファレンス
このパッケージでは、すべてのユーザーのORDSスキーマ・セキュリティを管理するためのAPIが提供されます。このパッケージは単なるインタフェースであり、アプリケーション・ロジックは含まれていません。
ノート:
OAUTHおよびOAUTH_ADMIN PL/SQLパッケージの非推奨: ORDSリリース24.3以降では、OAUTHおよびOAUTH_ADMIN PL/SQLパッケージは非推奨となっています。新しいORDS_SECURITYおよびORDS_SECURITY_ADMIN PL/SQLパッケージに移行することをお薦めします。それらにより、セキュリティが強化されます。レガシー・パッケージとの下位互換性はORDSリリース25.2の間は維持されます。その後は、これらのパッケージ(OAUTHおよびOAUTH_ADMIN PL/SQLパッケージ)はサポートが終了します。- CREATE_JWT_PROFILE
- REGISTER_CLIENT
- REGISTER_CLIENT
- IMPORT_CLIENT
- IMPORT_CLIENT
- REGISTER_CLIENT_SECRET
- REGISTER_CLIENT_SECRET
- GRANT_CLIENT_ROLE
- UPDATE_CLIENT
- UPDATE_CLIENT
- UPDATE_CLIENT_LOGO
- UPDATE_CLIENT_LOGO
- UPDATE_CLIENT_PRIVILEGES
- UPDATE_CLIENT_PRIVILEGES
- UPDATE_CLIENT_TOKEN_DURATION
- UPDATE_CLIENT_TOKEN_DURATION
- RENAME_CLIENT
- RENAME_CLIENT
- ROTATE_CLIENT_SECRET
- ROTATE_CLIENT_SECRET
- ROTATE_ALL_SECURITY_KEYS
- ROTATE_SECURITY_KEYS
- DELETE_CLIENT
- DELETE_CLIENT
- REVOKE_CLIENT_ROLE
- REVOKE_CLIENT_SECRETS
- REVOKE_CLIENT_SECRETS
9.1 CREATE_JWT_PROFILE
形式
PROCEDURE create_jwt_profile(
p_schema IN ords_schemas.parsing_schema%type,
p_issuer IN oauth_jwt_profile.issuer%type,
p_audience IN oauth_jwt_profile.audience%type,
p_jwk_url IN oauth_jwt_profile.jwk_url%type,
p_description IN oauth_jwt_profile.description%type DEFAULT NULL,
p_allowed_skew IN oauth_jwt_profile.allowed_skew%type DEFAULT NULL,
p_allowed_age IN oauth_jwt_profile.allowed_age%type DEFAULT NULL
);
表9-1 パラメータ
| パラメータ | 説明 |
|---|---|
| p_schema | REST対応スキーマの名前。nullは指定できない |
| p_issuer | 受入れ可能JWTアクセス・トークンの発行者。この値は、JWTで指定されている"iss"クレームと一致する必要があります。 |
| p_audience | 受入れ可能JWTアクセス・トークンのオーディエンス。この値は、JWTで指定されている"aud"クレームと一致する必要があります。 |
| p_jwk_url | 許容可能なJWTアクセス・トークンを検証するために使用するJWKへのURL。これは、""https://"で始まる必要があります
|
| p_description | JWTプロファイルの説明です。nullも指定できます。 |
| p_allowed_skew | JWTで指定されている時間クレームに許容する時差の秒数。これは、ORDSとトークン発行者が使用するクロックが違うことによる問題を解決するために役立ちます。デフォルト値であるnullにした場合は、ORDSグローバル設定security.jwt.allowed.skewを取得することが指定されます。0以下の値にした場合は、これを無効にしたことになります。最長で60秒を指定できます。
|
| p_allowed_age | JWTの、許容される最長経過期間(秒)。期限切れクレームであっても関係ありません。JWTの経過期間は、JWTの発行時刻クレームから導出されます。デフォルト値であるnullにした場合は、ORDSグローバル設定security.jwt.allowed.ageが無効化されます。
|
9.1.1 例
次の例では、スキーマの既存のJWTプロファイルを削除し、そのスキーマのJWTプロファイルを新規作成します。このスキーマ内のリソースに対するリクエストは、認可にJWTベアラー・トークンを使用できます。JWTトークンは署名されている必要があり、そのシグネチャは、p_jwk_urlによって提供された公開キーを使用して検証可能である必要があります。JWTの発行者クレームおよびオーディエンス・クレームがp_issuerおよびp_audienceの値と一致している必要もあります。JWTで、そのリソースによって保護されているORDS権限に一致するスコープを指定する必要があります:
BEGIN
ORDS_SECURITY.DELETE_JWT_PROFILE;
ORDS_SECURITY.CREATE_JWT_PROFILE(
p_schema => 'HR',
p_issuer => 'https://identity.oraclecloud.com/',
p_audience => 'ords/myapplication/api' ,
p_jwk_url =>'https://idcs-10a10a10a10a10a10a10a10a.identity.oraclecloud.com/admin/v1/SigningCert/jwk'
);
COMMIT;
END;
/親トピック: CREATE_JWT_PROFILE
9.2 REGISTER_CLIENT
形式
FUNCTION register_client(
p_schema IN VARCHAR2,
p_name IN VARCHAR2,
p_grant_type IN VARCHAR2,
p_support_email IN VARCHAR2,
p_description IN VARCHAR2 DEFAULT NULL,
p_client_secret IN ords_types.t_client_secret DEFAULT ords_constants.oauth_client_secret_skip,
p_privilege_names IN VARCHAR2 DEFAULT NULL,
p_origins_allowed IN VARCHAR2 DEFAULT NULL,
p_redirect_uri IN VARCHAR2 DEFAULT NULL,
p_support_uri IN VARCHAR2 DEFAULT NULL,
p_token_duration IN NUMBER DEFAULT NULL,
p_refresh_duration IN NUMBER DEFAULT NULL,
p_code_duration IN NUMBER DEFAULT NULL
) RETURN ords_types.t_client_credentials;
- 説明
- OAuthクライアントを登録します。デフォルトでは、
client_secretは登録されません。クライアント・シークレットを登録するには、パラメータp_client_secretで任意のフィールドを設定するか(issued_on以外)、REGISTER_CLIENT_SECRETまたはROTATE_CLIENT_SECRETをコールし、その後にクライアントを登録します。
表9-2 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_name |
Three-Legged OAuthの承認フェーズの間にエンド・ユーザーに表示される、クライアントの名前。この値は一意である必要があり、nullにできません。 |
p_grant_type |
authorization_code、implicitまたはclient_credentialsのどれかである必要があります。nullは指定できない。
|
p_support_email |
エンド・ユーザーがサポートを得るためにクライアントに連絡できるURIです。たとえば、www.myclientdomain.com/support/などです。nullは指定できない。
|
p_description |
クライアントの目的の説明で、Three-Legged OAuthの承認フェーズでエンド・ユーザーに表示されます。p_grant_typeがclient_credentialsである場合はnullにもできます。それ以外の場合はnullにできません。
|
p_client_secret |
クライアント・シークレットのデフォルト。issued_onフィールド以外のどのフィールドでも設定できます。デフォルトでは、シークレットは登録されません。
|
p_privilege_names |
クライアントがアクセスするカンマ区切りの権限のリストです。 |
p_origins_allowed |
URLの接頭辞のカンマ区切りリスト。リストが空の場合、既存のオリジンは削除されます。 |
p_redirect_uri |
OAuthアクセス・トークンやエラーが含まれているリダイレクトの送信先となるクライアント制御URI。これがp_support_email client_credentialsである場合はnullにもできます。それ以外の場合はnullにできません。
|
p_support_uri |
エンド・ユーザーがサポートを得るためにクライアントに連絡できるURIです。たとえば、www.myclientdomain.com/support/などです。 |
p_token_duration |
アクセス・トークンの期間(秒単位)。NULL期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、3600秒に設定されます。 |
p_refresh_duration |
リフレッシュ・トークンの期間(秒単位)。NULL期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、86400秒に設定されます。 |
p_code_duration |
認可コードの場合のみ適用可能な、コード・トークンの期間(秒単位)。この値がNULLに設定されているかgrant_type値がauthorization_codeでない場合、この値は300になります。
|
9.3 REGISTER_CLIENT
形式
PROCEDURE register_client(
p_schema IN VARCHAR2,
p_name IN VARCHAR2,
p_grant_type IN VARCHAR2,
p_support_email IN VARCHAR2,
p_description IN VARCHAR2 DEFAULT NULL,
p_privilege_names IN VARCHAR2 DEFAULT NULL,
p_origins_allowed IN VARCHAR2 DEFAULT NULL,
p_redirect_uri IN VARCHAR2 DEFAULT NULL,
p_support_uri IN VARCHAR2 DEFAULT NULL,
p_token_duration IN NUMBER DEFAULT NULL,
p_refresh_duration IN NUMBER DEFAULT NULL,
p_code_duration IN NUMBER DEFAULT NULL
);
- 説明
- OAuthクライアントを登録します。デフォルトでは、
client_secretは登録されません。クライアント・シークレットを登録するには、REGISTER_CLIENT_SECRETまたはROTATE_CLIENT_SECRETをコールし、その後にクライアントを登録します。
表9-3 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_name |
Three-Legged OAuthの承認フェーズの間にエンド・ユーザーに表示される、クライアントの名前。この値は一意である必要があり、nullにできません。 |
p_grant_type |
authorization_code、implicitまたはclient_credentialsのどれかである必要があります。nullは指定できない。
|
p_support_email |
エンド・ユーザーがサポートを得るためにクライアントに連絡できるURIです。たとえば、www.myclientdomain.com/support/などです。nullは指定できない。
|
p_description |
クライアントの目的の説明で、Three-Legged OAuthの承認フェーズでエンド・ユーザーに表示されます。p_grant_typeがclient_credentialsである場合はnullにもできます。それ以外の場合はnullにできません。
|
p_privilege_names |
クライアントがアクセスするカンマ区切りの権限のリストです。 |
p_origins_allowed |
URLの接頭辞のカンマ区切りリスト。リストが空の場合、既存のオリジンは削除されます。 |
p_redirect_uri |
OAuthアクセス・トークンやエラーが含まれているリダイレクトの送信先となるクライアント制御URI。これがp_support_email client_credentialsである場合はnullにもできます。それ以外の場合はnullにできません。
|
p_support_uri |
エンド・ユーザーがサポートを得るためにクライアントに連絡できるURIです。たとえば、www.myclientdomain.com/support/などです。
|
p_token_duration |
アクセス・トークンの期間(秒単位)。NULL期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、3600秒に設定されます。 |
p_refresh_duration |
リフレッシュ・トークンの期間(秒単位)。NULL期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、86400秒に設定されます。 |
p_code_duration |
認可コードの場合のみ適用可能な、コード・トークンの期間(秒単位)。この値がNULLに設定されているかgrant_type値がauthorization_codeでない場合、この値は300になります。
|
9.3.1 例
例9-1
DECLARE
l_client_cred ords_types.t_client_credentials;
BEGIN
l_client_cred := ORDS_SECURITY.REGISTER_CLIENT(
p_schema => 'HR',
p_name => 'CLIENT_TEST',
p_grant_type => 'authorization_code',
p_description => 'This is a test description.',
p_redirect_uri => 'https://example.org/my_redirect/',
p_support_email => 'test@example.org',
p_support_uri => 'https://example.org/help/',
p_privilege_names => 'oracle.dbtools.sqldev');
COMMIT;
sys.dbms_output.put_line('CLIENT_ID:' || l_client_cred.client_key.client_id);
END;
/
例9-2
次の例では、クライアント・シークレットを指定してOAuthクライアントをスキーマに登録します:DECLARE
l_client_cred ords_types.t_client_credentials;
BEGIN
l_client_cred := ORDS_SECURITY.REGISTER_CLIENT(
p_schema => 'HR',
p_name => 'CLIENT_TEST',
p_grant_type => 'authorization_code',
p_description => 'This is a test description.',
p_client_secret => ords_types.oauth_client_secret(p_secret=>'RaFhM690PA6cN1ffpkNx3Q..'),
p_redirect_uri => 'https://example.org/my_redirect/',
p_support_email => 'test@example.org',
p_support_uri => 'https://example.org/help/',
p_privilege_names => 'oracle.dbtools.sqldev');
COMMIT;
sys.dbms_output.put_line('CLIENT_ID:' || l_client_cred.client_key.client_id);
sys.dbms_output.put_line('CLIENT_SECRET:' || l_client_cred.client_secret.secret);
END;
/例9-3
次の例では、スキーマにOAuthクライアントを登録します:DECLARE
l_client_id user_ords_clients.client_id%TYPE;
BEGIN
ORDS_SECURITY.REGISTER_CLIENT(
p_schema => 'HR',
p_name => 'CLIENT_TEST',
p_grant_type => 'authorization_code',
p_description => 'This is a test description.',
p_redirect_uri => 'https://example.org/my_redirect/',
p_support_email => 'test@example.org',
p_support_uri => 'https://example.org/help/',
p_privilege_names => 'oracle.dbtools.sqldev');
COMMIT;
SELECT client_id INTO l_client_id FROM user_ords_clients WHERE name = 'CLIENT_TEST';
END;
/親トピック: REGISTER_CLIENT
9.4 IMPORT_CLIENT
形式
FUNCTION import_client(
p_schema IN VARCHAR2,
p_name IN VARCHAR2,
p_grant_type IN VARCHAR2,
p_support_email IN VARCHAR2,
p_description IN VARCHAR2 DEFAULT NULL,
p_client_id IN VARCHAR2 DEFAULT NULL,
p_privilege_names IN VARCHAR2 DEFAULT NULL,
p_origins_allowed IN VARCHAR2 DEFAULT NULL,
p_redirect_uri IN VARCHAR2 DEFAULT NULL,
p_support_uri IN VARCHAR2 DEFAULT NULL,
p_token_duration IN NUMBER DEFAULT NULL,
p_refresh_duration IN NUMBER DEFAULT NULL,
p_code_duration IN NUMBER DEFAULT NULL
) RETURN ords_types.t_client_key;
表9-4 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_name |
Three-Legged OAuthの承認フェーズの間にエンド・ユーザーに表示される、クライアントの名前。この値は一意である必要があり、nullにできません。 |
p_grant_type |
authorization_code、implicitまたはclient_credentialsのどれかである必要があります。nullは指定できない。
|
p_support_email |
エンド・ユーザーがサポートを得るためにクライアントに連絡できるURIです。たとえば、www.myclientdomain.com/support/などです。nullは指定できない。
|
p_description |
クライアントの目的の説明で、Three-Legged OAuthの承認フェーズでエンド・ユーザーに表示されます。p_grant_typeがclient_credentialsである場合はnullにもできます。それ以外の場合はnullにできません。
|
p_client_id |
元の生成されたクライアント識別子。「ORDS_EXPORT」を参照してください。nullにした場合は、新しいクライアント識別子が生成されます。 |
p_privilege_names |
クライアントがアクセスするカンマ区切りの権限のリストです。それらの権限がすでに存在している必要があります。「ORDS.DEFINE_PRIVILEGE」を参照してください。 |
p_origins_allowed |
URLの接頭辞のカンマ区切りリスト。リストが空の場合、既存のオリジンは削除されます。 |
p_redirect_uri |
OAuthアクセス・トークンやエラーが含まれているリダイレクトの送信先となるクライアント制御URI。これがp_support_email client_credentialsである場合はnullにもできます。それ以外の場合はnullにできません。
|
p_support_uri |
エンド・ユーザーがサポートを得るためにクライアントに連絡できるURIです。たとえば、www.myclientdomain.com/support/などです。
|
p_token_duration |
アクセス・トークンの期間(秒単位)。NULL期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、3600秒に設定されます。 |
p_refresh_duration |
リフレッシュ・トークンの期間(秒単位)。NULL期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、86400秒に設定されます。 |
p_code_duration |
認可コードの場合のみ適用可能な、コード・トークンの期間(秒単位)。この値がNULLに設定されているか値がauthorization_codeでない場合、この値は300になります。
|
9.5 IMPORT_CLIENT
形式
PROCEDURE import_client(
p_schema IN VARCHAR2,
p_name IN VARCHAR2,
p_grant_type IN VARCHAR2,
p_support_email IN VARCHAR2,
p_description IN VARCHAR2 DEFAULT NULL,
p_owner IN VARCHAR2 DEFAULT NULL,
p_client_id IN VARCHAR2 DEFAULT NULL,
p_privilege_names IN VARCHAR2 DEFAULT NULL,
p_origins_allowed IN VARCHAR2 DEFAULT NULL,
p_redirect_uri IN VARCHAR2 DEFAULT NULL,
p_support_uri IN VARCHAR2 DEFAULT NULL,
p_token_duration IN NUMBER DEFAULT NULL,
p_refresh_duration IN NUMBER DEFAULT NULL,
p_code_duration IN NUMBER DEFAULT NULL
);
- 説明
- OAuthクライアントをインポートします。デフォルトでは、
client_secretは登録されません。クライアント・シークレットを登録するには、REGISTER_CLIENT_SECRETまたはROTATE_CLIENT_SECRETをコールし、その後にimport_clientをコールします。
表9-5 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_name |
Three-Legged OAuthの承認フェーズの間にエンド・ユーザーに表示される、クライアントの名前。この値は一意である必要があり、nullにできません。 |
p_grant_type |
authorization_code、implicitまたはclient_credentialsのどれかである必要があります。nullは指定できない。
|
p_support_email |
エンド・ユーザーがサポートを得るためにクライアントに連絡できるURIです。たとえば、www.myclientdomain.com/support/などです。nullは指定できない。
|
p_description |
クライアントの目的の説明で、Three-Legged OAuthの承認フェーズでエンド・ユーザーに表示されます。p_grant_typeがclient_credentialsである場合はnullにもできます。それ以外の場合はnullにできません。
|
p_owner |
使用されていません(非推奨)。 |
p_client_id |
元の生成されたクライアント識別子。「ORDS_EXPORT」を参照してください。この値がnullの場合は、新しいクライアント識別子が生成されます。
|
p_privilege_names |
クライアントがアクセスするカンマ区切りの権限のリストです。それらの権限がすでに存在している必要があります。ORDS.DEFINE_PRIVILEGEを参照してください。 |
p_origins_allowed |
URLの接頭辞のカンマ区切りリスト。リストが空の場合、既存のオリジンは削除されます。 |
p_redirect_uri |
OAuthアクセス・トークンやエラーが含まれているリダイレクトの送信先となるクライアント制御URI。これがp_support_email client_credentialsである場合はnullにもできます。それ以外の場合はnullにできません。
|
p_support_uri |
エンド・ユーザーがサポートを得るためにクライアントに連絡できるURIです。たとえば、www.myclientdomain.com/support/などです。
|
p_token_duration |
アクセス・トークンの期間(秒単位)。NULL期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、3600秒に設定されます。 |
p_refresh_duration |
リフレッシュ・トークンの期間(秒単位)。NULL期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、86400秒に設定されます。 |
p_code_duration |
認可コードの場合のみ適用可能な、コード・トークンの期間(秒単位)。この値がNULLに設定されているかgrant_type値が* authorization_codeでない場合、この値は300になります。 |
9.5.1 例
例9-4
次の例では、カスタム期間やオリジンなしでスキーマのOAuthクライアントをインポートします:DECLARE
l_client_key ords_types.t_client_key;
BEGIN
l_client_key := ORDS_SECURITY.IMPORT_CLIENT(
p_schema => 'HR',
p_name => 'CLIENT_TEST',
p_client_id => 'awVMtPlqullIqPXhAwh4zA..',
p_grant_type => 'authorization_code',
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 => 'oracle.dbtools.sqldev');
COMMIT;
sys.dbms_output.put_line('ID:' || l_client_key.id);
END;
/例9-5
次の例では、カスタム期間やオリジンなしでスキーマのOAuthクライアントをインポートします:DECLARE
l_client_key ords_types.t_client_key;
BEGIN
l_client_key := ORDS_SECURITY.IMPORT_CLIENT(
p_schema => 'HR',
p_name => 'CLIENT_TEST',
p_client_id => 'awVMtPlqullIqPXhAwh4zA..',
p_grant_type => 'authorization_code',
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 => 'oracle.dbtools.sqldev');
COMMIT;
sys.dbms_output.put_line('ID:' || l_client_key.id);
END;
/例9-6
次の例では、カスタム期間やオリジンなしでスキーマのOAuthクライアントをインポートします:EGIN
ORDS_SECURITY.IMPORT_CLIENT(
p_schema => 'HR',
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 => 'oracle.dbtools.sqldev');
COMMIT;
END;
/親トピック: IMPORT_CLIENT
9.6 REGISTER_CLIENT_SECRET
形式
FUNCTION register_client_secret(
p_schema IN VARCHAR2,
p_client_key IN ords_types.t_client_key,
p_client_secret IN ords_types.t_client_secret,
p_revoke_existing IN BOOLEAN DEFAULT FALSE,
p_revoke_sessions IN BOOLEAN DEFAULT FALSE
) RETURN ords_types.t_client_credentials;
- 説明
- OAuthクライアント・シークレットを登録し、必要な場合に既存のシークレットおよびセッションを取り消します。デフォルトでは、生成されたクライアント・シークレットが登録され、最新のクライアント・シークレットと既存のクライアント・セッションが有効なままになります。すでに2つのクライアント・シークレットが登録されている場合は、
p_client_secret.slotパラメータに特定のスロットが設定されていないかぎり、最も古いものが上書きされることになります。また、既存のすべてのクライアント・シークレットは、p_revoke_existingパラメータを使用して取り消されないかぎり有効なままになります。「ROTATE_CLIENT_SECRET」を参照してください。
ノート:
p_client_secret.secretが設定されている場合に、カスタム・クライアント・シークレットを登録できます。登録されたクライアント・シークレット値は、p_client_secret.storedパラメータが設定されていないかぎり、このファンクションの使用によって永続化されません。クライアント・シークレットが永続化されなくなった場合は、将来使用するために、コール元によって戻り値を保存する必要があります。ビューUSER_ORDS_CLIENTSでは、格納されていないシークレットは返せません。
表9-6 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_client_key |
登録済クライアントのキー(id|name|client_id)。少なくとも1つのキーを指定する必要があります。 |
p_client_secret |
クライアント・シークレットのデフォルト。issued_on以外のどのフィールドでも設定できます。この値がnullの場合、クライアント・シークレットは、生成された値でローテーションされます。
|
p_revoke_existing |
既存のシークレットをすべて取り消します。デフォルトでは、最新のクライアント・シークレットが保持されます。 |
p_revoke_sessions |
この値がTRUEの場合は、既存のすべてのクライアント・セッションを取り消します。
|
9.7 REGISTER_CLIENT_SECRET
形式
PROCEDURE register_client_secret(
p_schema IN VARCHAR2,
p_name IN VARCHAR2,
p_client_secret IN VARCHAR2,
p_revoke_existing IN BOOLEAN DEFAULT FALSE,
p_revoke_sessions IN BOOLEAN DEFAULT FALSE
);
- 説明
- 新しいOAuthクライアント・シークレットを登録し、必要な場合は、既存のクライアント・セッションをすべて削除します。デフォルトでは、既存のクライアントセッションは有効なままになります。すでに2つのクライアント・シークレットが登録されている場合は、最も古いものが上書きされます。既存のすべてのクライアント・シークレットは、
p_revoke_existingパラメータを使用して取り消されないかぎり有効なままになります。
ノート:
登録されたクライアント・シークレット値は、このメソッドの使用では永続化されません。将来使用するために、コール元によって戻り値を保存する必要があります。ビューUSER_ORDS_CLIENTSでは、格納されていないシークレットは返せません。
表9-7 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_name |
登録されているクライアントの名前。nullは指定できない。 |
p_client_secret |
新しいシークレット。この値はnullにできません。 |
p_revoke_existing |
既存のシークレットをすべて取り消します。デフォルトでは、最新のクライアント・シークレットが保持されます。 |
p_revoke_sessions |
TRUEの場合は、既存のすべてのクライアント・セッションを取り消します。
|
9.7.1 例
例9-7
次の例では、スキーマにOAuthクライアントのシークレットを登録します。既存のクライアント・シークレットは、取り消されるまで機能し続けます:DECLARE
l_client_cred ords_types.t_client_credentials;
BEGIN
l_client_cred.client_key.name := 'CLIENT_TEST';
l_client_cred.client_secret.secret := 'RaFhM690PA6cN1ffpkNx3Q..';
l_client_cred := ORDS_SECURITY.REGISTER_CLIENT_SECRET(
p_schema => 'HR',
p_client_key => l_client_cred.client_key,
p_client_secret => l_client_cred.client_secret
);
-- No Commit Required
sys.dbms_output.put_line('SLOT:' || l_client_cred.client_secret.slot);
sys.dbms_output.put_line('ISSUED ON:' || l_client_cred.client_secret.issued_on);
END;
/例9-8
次の例では、スキーマにOAuthクライアントのシークレットを登録します。既存のクライアント・シークレットは、取り消されるまで機能し続けます:BEGIN
ORDS_SECURITY.REGISTER_CLIENT_SECRET(
p_schema => 'HR',
p_name => 'CLIENT_TEST',
p_client_secret => 'RaFhM690PA6cN1ffpkNx3Q..'
);
-- No Commit Required
END;
/親トピック: REGISTER_CLIENT_SECRET
9.8 GRANT_CLIENT_ROLE
形式
PROCEDURE grant_client_role(
p_schema IN VARCHAR2,
p_client_name IN VARCHAR2,
p_role_name IN VARCHAR2
);
表9-8 パラメータ
| パラメータ | 説明 |
|---|---|
| p_schema | REST対応スキーマの名前。 |
| p_client_name | クライアント権限受領者の名前。nullは指定できない。 |
| p_role_name | そのスキーマに属しているか組込みロールである、付与するロールの名前。nullは指定できない。 |
9.8.1 例
例9-9
次の例では、ロールを作成し、スキーマのOAuthクライアントにそのロールを付与します:BEGIN
ORDS.CREATE_ROLE(p_role_name => 'CLIENT_TEST_ROLE');
ORDS_SECURITY.GRANT_CLIENT_ROLE(
p_schema => 'HR',
p_client_key => ords_types.oauth_client_key(p_name=>'CLIENT_TEST'),
p_role_name => 'CLIENT_TEST_ROLE'
);
COMMIT;
END;
/例9-10
次の例では、ロールを作成し、スキーマのOAuthクライアントにそのロールを付与します:BEGIN
ORDS.CREATE_ROLE(p_role_name => 'CLIENT_TEST_ROLE');
ORDS_SECURITY.GRANT_CLIENT_ROLE(
p_schema => 'HR',
p_client_name => 'CLIENT_TEST',
p_role_name => 'CLIENT_TEST_ROLE'
);
COMMIT;
END;
/親トピック: GRANT_CLIENT_ROLE
9.9 UPDATE_CLIENT
形式
FUNCTION update_client(
p_schema IN VARCHAR2,
p_client_key IN ords_types.t_client_key,
p_new_name IN VARCHAR2 DEFAULT NULL,
p_description IN VARCHAR2,
p_origins_allowed IN VARCHAR2,
p_redirect_uri IN VARCHAR2,
p_support_email IN VARCHAR2,
p_support_uri IN VARCHAR2
) RETURN ords_types.t_client_key;
- 説明
- OAuthクライアント登録を更新します。新しいクライアント名は、Three-Legged OAuthの承認フェーズの間にエンド・ユーザーに表示されます。付与タイプを変更するには、クライアントを削除してから再登録する必要があります。
表9-9 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_client_key |
変更するクライアントのキー(id|name|client_id)。少なくとも1つのキーを指定する必要があります。 |
p_new_name |
Three-Legged OAuthの承認フェーズの間にエンド・ユーザーに表示される、クライアントの名前。この値がnullの場合は、古い名前が保持されます。 |
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 |
9.10 UPDATE_CLIENT
形式
PROCEDURE update_client(
p_schema IN VARCHAR2,
p_name IN VARCHAR2,
p_new_name IN VARCHAR2 DEFAULT NULL,
p_description IN VARCHAR2,
p_origins_allowed IN VARCHAR2,
p_redirect_uri IN VARCHAR2,
p_support_email IN VARCHAR2,
p_support_uri IN VARCHAR2
);
- 説明
- OAuthクライアント登録を更新します。新しいクライアント名は、Three-Legged OAuthの承認フェーズの間にエンド・ユーザーに表示されます。付与タイプを変更するには、クライアントを削除してから再登録する必要があります。
表9-10 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_name |
変更するクライアントの名前。nullは指定できない。 |
p_new_name |
クライアントの新しい名前。nullにした場合は、古い名前が保持されます。 |
| p_description | Three-Legged OAuthの承認フェーズの間にエンド・ユーザーに表示される、クライアントの目的の説明。p_grant_typeがclient_credentialsである場合はnullにもできます。それ以外の場合はnullにできません。
|
| p_privilege_names | クライアントがアクセスするカンマ区切りの権限のリストです。それらの権限がすでに存在している必要があります。「ORDS.DEFINE_PRIVILEGE」を参照してください |
| p_origins_allowed | URLの接頭辞のカンマ区切りリスト。リストが空の場合、既存のオリジンは削除されます。 |
| p_redirect_uri | OAuthアクセス・トークンやエラーが含まれているリダイレクトの送信先となるクライアント制御URI。これがp_support_email client_credentialsである場合はnullにもできます。それ以外の場合はnullにできません。
|
| p_support_email | エンド・ユーザーがサポートを得るためにクライアントに連絡できるURIです。たとえば、www.myclientdomain.com/support/などです。nullは指定できない。
|
| p_support_uri | エンド・ユーザーがサポートを得るためにクライアントに連絡できるURIです。たとえば、www.myclientdomain.com/support/などです。
|
| p_token_duration | アクセス・トークンの期間(秒単位)。NULL期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、3600秒に設定されます。 |
| p_refresh_duration | リフレッシュ・トークンの期間(秒単位)。NULL期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、86400秒に設定されます。 |
| p_code_duration | 認可コードの場合のみ適用可能な、コード・トークンの期間(秒単位)。この値がNULLに設定されているかgrant_type値がauthorization_codeでない場合、この値は300になります。
|
9.10.1 例
例9-11
次の例では、OAuthクライアントの名前を変更し、権限と期間を除く(これらは変更されない)、スキーマのすべてのクライアント・フィールドを更新します:DECLARE
l_client_key ords_types.t_client_key;
BEGIN
l_client_key := ORDS_SECURITY.UPDATE_CLIENT(
p_schema => 'HR',
p_client_key => ords_types.oauth_client_key(p_name=>'CLIENT_TEST'),
p_new_name => 'CLIENT_TEST_RENAMED',
p_description => 'This is a test description.',
p_origins_allowed => '*',
p_redirect_uri => 'https://example.org/my_redirect/',
p_support_email => 'test@example.org',
p_support_uri => 'https://example.org/help/'
);
COMMIT;
sys.dbms_output.put_line('ID:' || l_client_key.id);
END;
/
例9-12
次の例では、OAuthクライアントの名前を変更し、権限と期間を除く(これらは変更されない)、スキーマのすべてのクライアント・フィールドを更新します:BEGIN
ORDS_SECURITY.UPDATE_CLIENT(
p_schema => 'HR',
p_name => 'CLIENT_TEST',
p_new_name => 'CLIENT_TEST_RENAMED',
p_description => 'This is a test description.',
p_origins_allowed => '*',
p_redirect_uri => 'https://example.org/my_redirect/',
p_support_email => 'test@example.org',
p_support_uri => 'https://example.org/help/'
);
COMMIT;
END;
/例9-13
次の例では、スキーマのすべてのOAuthクライアント・フィールドを更新します:DECLARE
l_client_key ords_types.t_client_key;
BEGIN
l_client_key := ORDS_SECURITY.UPDATE_CLIENT(
p_schema => 'HR',
p_client_key => ords_types.oauth_client_key(p_name=>'CLIENT_TEST'),
p_description => 'This is a test description.',
p_privilege_names => 'oracle.dbtools.sqldev',
p_origins_allowed => '*',
p_redirect_uri => 'https://example.org/my_redirect/',
p_support_email => 'test@example.org',
p_support_uri => 'https://example.org/help/',
p_token_duration => 3600,
p_refresh_duration => 86400,
p_code_duration => 300
);
COMMIT;
sys.dbms_output.put_line('ID:' || l_client_key.id);
END;
/例9-14
次の例では、スキーマのすべてのOAuthクライアント・フィールドを更新します:BEGIN
ORDS_SECURITY.UPDATE_CLIENT(
p_schema => 'HR',
p_name => 'CLIENT_TEST',
p_description => 'This is a test description.',
p_privilege_names => 'oracle.dbtools.sqldev',
p_origins_allowed => '*',
p_redirect_uri => 'https://example.org/my_redirect/',
p_support_email => 'test@example.org',
p_support_uri => 'https://example.org/help/',
p_token_duration => 3600,
p_refresh_duration => 86400,
p_code_duration => 300
);
COMMIT;
END;
/親トピック: UPDATE_CLIENT
9.11 UPDATE_CLIENT_LOGO
形式
PROCEDURE update_client_logo(
p_schema IN VARCHAR2,
p_client_key IN ords_types.t_client_key,
p_content_type IN VARCHAR2,
p_logo IN BLOB
);
表9-11 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_client_key |
変更するクライアントのキー(id|name|client_id)。少なくとも1つのキーを指定する必要があります。 |
p_content_type |
ロゴのコンテンツ・タイプ。nullは指定できない。 |
p_logo |
ロゴのバイナリ。nullは指定できない。 |
9.12 UPDATE_CLIENT_LOGO
形式
PROCEDURE update_client_logo(
p_schema IN VARCHAR2,
p_name IN VARCHAR2,
p_content_type IN VARCHAR2,
p_logo IN BLOB
);
表9-12 パラメータ
| パラメータ | 説明 |
|---|---|
| p_schema | REST対応スキーマの名前。nullは指定できない。 |
| p_name | 変更するクライアントの名前。nullは指定できない。 |
| p_content_type | ロゴのコンテンツ・タイプ。nullは指定できない。 |
| p_logo | ロゴのバイナリ。nullは指定できない。 |
9.12.1 例
例9-15
次の例では、スキーマのOAuthクライアントのロゴを追加または更新します:DECLARE
l_image BLOB := ...;
BEGIN
ORDS_SECURITY.UPDATE_CLIENT_LOGO(
p_schema => 'HR',
p_client_key => ords_types.oauth_client_key(p_name=>'CLIENT_TEST'),
p_content_type => 'image/png',
p_logo => l_image
);
COMMIT;
END;
/例9-16
次の例では、スキーマのOAuthクライアントのロゴを追加または更新します:DECLARE
l_image BLOB := ...;
BEGIN
ORDS_SECURITY.UPDATE_CLIENT_LOGO(
p_schema => 'HR',
p_name => 'CLIENT_TEST',
p_content_type => 'image/png',
p_logo => l_image
);
COMMIT;
END;
/親トピック: UPDATE_CLIENT_LOGO
9.13 UPDATE_CLIENT_PRIVILEGES
形式
PROCEDURE update_client_privileges(
p_schema IN VARCHAR2,
p_client_key IN ords_types.t_client_key,
p_privilege_names IN VARCHAR2
);
表9-13 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_client_key |
変更するクライアントのキー(id|name|client_id)。少なくとも1つのキーを指定する必要があります。 |
p_privilege_names |
クライアントがアクセスする必要がある権限の名前。各権限名をカンマで区切る必要があります。 |
9.14 UPDATE_CLIENT_PRIVILEGES
形式
PROCEDURE update_client_privileges(
p_schema IN VARCHAR2,
p_name IN VARCHAR2,
p_privilege_names IN VARCHAR2
);
表9-14 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_name |
変更するクライアントの名前。nullは指定できない。 |
p_privilege_names |
クライアントがアクセスするカンマ区切りの権限のリストです。それらの権限がすでに存在している必要があります。「ORDS.DEFINE_PRIVILEGE」を参照してください。
|
9.14.1 例
例9-17
次の例では、スキーマのOAuthクライアントの権限を更新します:BEGIN
ORDS_SECURITY.UPDATE_CLIENT_PRIVILEGES(
p_schema => 'HR',
p_client_key => ords_types.oauth_client_key(p_name=>'CLIENT_TEST'),
p_privilege_names => 'oracle.dbtools.sqldev'
);
COMMIT;
END;
/例9-18
次の例では、スキーマのOAuthクライアントの権限を更新します:BEGIN
ORDS_SECURITY.UPDATE_CLIENT_PRIVILEGES(
p_schema => 'HR',
p_name => 'CLIENT_TEST',
p_privilege_names => 'oracle.dbtools.sqldev'
);
COMMIT;
END;
/親トピック: UPDATE_CLIENT_PRIVILEGES
9.15 UPDATE_CLIENT_TOKEN_DURATION
形式
PROCEDURE update_client_token_duration(
p_schema IN VARCHAR2,
p_client_key IN ords_types.t_client_key,
p_token_duration IN NUMBER,
p_refresh_duration IN NUMBER,
p_code_duration IN NUMBER
);
表9-15 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_client_key |
変更するクライアントのキー(id|name|client_id)。少なくとも1つのキーを指定する必要があります。 |
p_token_duration |
アクセス・トークンの期間(秒単位)。NULL期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、3600秒に設定されます。
|
p_refresh_duration |
リフレッシュ・トークンの期間(秒単位)。NULL期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、86400秒に設定されます。 |
| p_code_duration | 認可コードの場合のみ適用可能な、コード・トークンの期間(秒単位)。この値がNULLに設定されているかgrant_type値がauthorization_codeでない場合、この値は300になります。
|
9.16 UPDATE_CLIENT_TOKEN_DURATION
形式
PROCEDURE update_client_token_duration(
p_schema IN VARCHAR2,
p_name IN VARCHAR2,
p_token_duration IN NUMBER,
p_refresh_duration IN NUMBER,
p_code_duration IN NUMBER
);
END ords_security_admin;
表9-16 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_name |
変更するクライアントの名前。nullは指定できない。 |
p_token_duration |
アクセス・トークンの期間(秒単位)。NULL期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、3600秒に設定されます。 |
p_refresh_duration |
リフレッシュ・トークンの期間(秒単位)。NULL期間はORDSインスタンスの値にフォールバックします。デフォルトでは、プロパティを使用して設定されるか、86400秒に設定されます。 |
p_code_duration |
認可コードの場合のみ適用可能な、コード・トークンの期間(秒単位)。この値がNULLに設定されているか、grant_type値がauthorization_codeでない場合、この値は300になります。
|
9.16.1 例
例9-19
次の例では、スキーマのOAuthクライアントのトークン期間を更新します:BEGIN
ORDS_SECURITY.UPDATE_CLIENT_TOKEN_DURATION(
p_schema => 'HR',
p_client_key => ords_types.oauth_client_key(p_name=>'CLIENT_TEST'),
p_token_duration => 3600,
p_refresh_duration => 86400,
p_code_duration => 300
);
COMMIT;
END;
/例9-20
次の例では、スキーマのOAuthクライアントのトークン期間を更新します:BEGIN
ORDS_SECURITY.UPDATE_CLIENT_TOKEN_DURATION(
p_schema => 'HR',
p_name => 'CLIENT_TEST',
p_token_duration => 3600,
p_refresh_duration => 86400,
p_code_duration => 300
);
COMMIT;
END;
/親トピック: UPDATE_CLIENT_TOKEN_DURATION
9.17 RENAME_CLIENT
形式
PROCEDURE rename_client(
p_schema IN VARCHAR2,
p_client_key IN ords_types.t_client_key,
p_new_name IN VARCHAR2
);
表9-17 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_client_key |
名前変更するクライアントのキー(id|name|client_id)。少なくとも1つのキーを指定する必要があります。 |
p_new_name |
クライアントの新しい名前。nullは指定できない。 |
9.18 RENAME_CLIENT
形式
PROCEDURE rename_client(
p_schema IN VARCHAR2,
p_name IN VARCHAR2,
p_new_name IN VARCHAR2
);
表9-18 パラメータ
| パラメータ | 説明 |
|---|---|
| p_schema | REST対応スキーマの名前。*この値はnullにできません。 |
| p_name | 名前変更するクライアントの現在の名前。*この値はnullにできません。 |
| p_new_name | クライアントの新しい名前。*この値はnullにできません |
9.18.1 例
例9-21
次の例では、スキーマのOAuthクライアントの名前を変更します:BEGIN
ORDS_SECURITY.RENAME_CLIENT(
p_schema => 'HR',
p_client_key => ords_types.oauth_client_key(p_name=>'CLIENT_TEST'),
p_new_name => 'CLIENT_TEST_RENAMED'
);
COMMIT;
END;
/例9-22
次の例では、スキーマのOAuthクライアントの名前を変更します:BEGIN
ORDS_SECURITY.RENAME_CLIENT(
p_schema => 'HR',
p_name => 'CLIENT_TEST',
p_new_name => 'CLIENT_TEST_RENAMED'
);
COMMIT;
END;
/親トピック: RENAME_CLIENT
9.19 ROTATE_CLIENT_SECRET
形式
FUNCTION rotate_client_secret(
p_schema IN VARCHAR2,
p_client_key IN ords_types.t_client_key,
p_revoke_existing IN BOOLEAN DEFAULT FALSE,
p_revoke_sessions IN BOOLEAN DEFAULT FALSE
) RETURN ords_types.t_client_credentials;
- 説明
- 新しいOAuthクライアント・シークレットを生成し、必要な場合は、既存のクライアント・セッションをすべて削除します。すでに2つのクライアント・シークレットが登録されている場合は、最も古いものが上書きされます。また、既存のすべてのクライアント・シークレットは、
p_revoke_existingパラメータを使用して取り消されないかぎり有効なままになります。
ノート:
生成されたクライアント・シークレットは、このメソッドの使用では格納されないため、将来使用するために、コール元によって戻り値を保存する必要があります。ビューUSER_ORDS_CLIENTSでもこの値は返されません。ビューUSER_ORDS_CLIENTSでは、格納されていないシークレットは返せません。
表9-19 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_client_key |
スキーマ内のクライアントのキー(id|name|client_id)。少なくとも1つのキーを指定する必要があります。 |
p_revoke_existing |
既存のシークレットをすべて取り消します。デフォルト値はFALSEです。 |
p_revoke_sessions |
この値がTRUEの場合は、既存のすべてのクライアント・セッションを削除します。デフォルト値はFALSEです。 |
9.20 ROTATE_CLIENT_SECRET
形式
FUNCTION rotate_client_secret(
p_schema IN VARCHAR2,
p_name IN VARCHAR2,
p_revoke_existing IN BOOLEAN DEFAULT FALSE,
p_revoke_sessions IN BOOLEAN DEFAULT FALSE
) RETURN VARCHAR2;
- 説明
- 新しいOAuthクライアント・シークレットを生成し、必要な場合は、既存のクライアント・セッションをすべて削除します。すでに2つのクライアント・シークレットが登録されている場合は、最も古いものが上書きされます。また、既存のすべてのクライアント・シークレットは、
p_revoke_existingパラメータを使用して取り消されないかぎり有効なままになります。
ノート:
生成されたクライアント・シークレットは、このメソッドの使用では格納されないため、将来使用するために、コール元によって戻り値を保存する必要があります。ビューUSER_ORDS_CLIENTSでもこの値は返されません。ビューUSER_ORDS_CLIENTSでは、格納されていないシークレットは返せません。
表9-20 パラメータ
| パラメータ | 説明 |
|---|---|
| p_schema | REST対応スキーマの名前。nullは指定できない。 |
| p_name | 変更するクライアントの名前。nullは指定できない。 |
| p_revoke_existing | 既存のシークレットをすべて取り消します。デフォルト値はFALSEです。 |
| p_revoke_sessions | TRUEの場合は、既存のクライアント・セッションをすべて削除します。デフォルト値はFALSEです。 |
9.20.1 例
例9-23
DECLARE
l_client_cred ords_types.t_client_credentials;
BEGIN
l_client_cred.client_key.name := 'CLIENT_TEST';
l_client_cred := ORDS_SECURITY.ROTATE_CLIENT_SECRET(
p_schema => 'HR',
p_client_key => l_client_cred.client_key
);
-- No Commit Required
sys.dbms_output.put_line('SLOT:' || l_client_cred.client_secret.slot);
sys.dbms_output.put_line('SECRET:' || l_client_cred.client_secret.secret);
sys.dbms_output.put_line('ISSUED ON:' || l_client_cred.client_secret.issued_on);
END;
/
例9-24
次の例では、スキーマのOAuthクライアントをローテーションします。既存のクライアント・シークレットは、取り消されるまで機能し続けます:DECLARE
l_client_secret user_ords_clients.client_secret%TYPE;
BEGIN
l_client_secret := ORDS_SECURITY.ROTATE_CLIENT_SECRET(
p_schema => 'HR',
p_name => 'CLIENT_TEST'
);
-- No Commit Required
sys.dbms_output.put_line('SECRET:' || l_client_secret);
END;
/親トピック: ROTATE_CLIENT_SECRET
9.21 ROTATE_ALL_SECURITY_KEYS
形式
PROCEDURE rotate_all_security_keys();
9.21.1 例
例
次の例では、残りのすべてのスキーマの暗号化キーをローテーションします。
BEGIN
ORDS_SECURITY_ADMIN.rotate_all_security_keys;
COMMIT;
END;
/
親トピック: ROTATE_ALL_SECURITY_KEYS
9.22 ROTATE_SECURITY_KEYS
形式
PROCEDURE rotate_security_keys(
p_schema IN VARCHAR2,
);
9.22.1 例
BEGIN
ORDS_SECURITY_ADMIN.rotate_security_keys (p_schema => 'admin');;
COMMIT;
END;
/親トピック: ROTATE_SECURITY_KEYS
9.23 DELETE_CLIENT
形式
PROCEDURE delete_client(
p_schema IN VARCHAR2,
p_client_key IN ords_types.t_client_key
);
表9-22 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_client_key |
削除するクライアント登録のキー(id|name|client_id)。少なくとも1つのキーを指定する必要があります。 |
9.24 DELETE_CLIENT
形式
PROCEDURE delete_client(
p_schema IN VARCHAR2,
p_name IN VARCHAR2
);
表9-23 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_name |
削除するクライアント登録の名前。nullは指定できない。 |
9.24.1 例
例9-25
次の例では、スキーマの既存のJWTプロファイルを削除します。BEGIN
ORDS_SECURITY.DELETE_JWT_PROFILE(
p_schema => 'HR'
);
COMMIT;
END;
/
BEGIN
ORDS_SECURITY.DELETE_CLIENT(
p_schema => 'HR',
p_client_key => ords_types.oauth_client_key(p_name=>'CLIENT_TEST')
);
COMMIT;
END;
/
BEGIN
ORDS_SECURITY.DELETE_CLIENT(
p_schema => 'HR',
p_name => 'CLIENT_TEST'
);
COMMIT;
END;
/
親トピック: DELETE_CLIENT
9.25 REVOKE_CLIENT_ROLE
形式
PROCEDURE revoke_client_role(
p_schema IN VARCHAR2,
p_client_key IN ords_types.t_client_key,
p_role_name IN VARCHAR2
);
表9-24 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_client_key |
クライアント権限受領者のキー(id|name|client_id)。少なくとも1つのキーを指定する必要があります。 |
p_role_name |
以前に付与されたロールの名前。この値にnullは指定できません。 |
9.25.1 例
例9-26
次の例では、スキーマのOAuthクライアントへのロールの付与を取り消します:BEGIN
ORDS_SECURITY.REVOKE_CLIENT_ROLE(
p_schema => 'HR',
p_client_key => ords_types.oauth_client_key(p_name=>'CLIENT_TEST'),
p_role_name => 'CLIENT_TEST_ROLE'
);
COMMIT;
END;
/
例9-27
次の例では、スキーマのOAuthクライアントへのロールの付与を取り消します:BEGIN
ORDS_SECURITY.REVOKE_CLIENT_ROLE(
p_schema => 'HR',
p_client_name => 'CLIENT_TEST',
p_role_name => 'CLIENT_TEST_ROLE'
);
COMMIT;
END;
/親トピック: REVOKE_CLIENT_ROLE
9.26 REVOKE_CLIENT_SECRETS
形式
PROCEDURE revoke_client_secret(
p_schema IN VARCHAR2,
p_name IN VARCHAR2,
p_client_secret IN VARCHAR2 DEFAULT NULL,
p_revoke_sessions IN BOOLEAN DEFAULT FALSE
);
- 説明
- OAuthクライアント・シークレットを取り消し、必要な場合はすべてのセッションを取り消します。デフォルトでは、最も古いシークレットのみが取り消されますが、一方または両方のシークレットを取り消すこともできます(それがクライアント・シークレット値と一致する場合)。
表9-25 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_name |
変更するクライアントの名前。nullは指定できない。 |
p_client_secret |
クライアント・シークレットの値。この値がNULLの場合は、最も古いシークレットが取り消されます。 |
p_revoke_sessions |
TRUEの場合は、既存のクライアント・セッションをすべて削除します。デフォルト値はFALSEです。 |
9.27 REVOKE_CLIENT_SECRETS
形式
PROCEDURE revoke_client_secret(
p_schema IN VARCHAR2,
p_name IN VARCHAR2,
p_client_secret IN VARCHAR2 DEFAULT NULL,
p_revoke_sessions IN BOOLEAN DEFAULT FALSE
);
- 説明
- OAuthクライアント・シークレットを取り消し、必要な場合はすべてのセッションを取り消します。デフォルトでは、最も古いシークレットのみが取り消されますが、一方または両方のシークレットを取り消すこともできます(それがクライアント・シークレット値と一致する場合)。
表9-26 パラメータ
| パラメータ | 説明 |
|---|---|
p_schema |
REST対応スキーマの名前。nullは指定できない。 |
p_name |
変更するクライアントの名前。nullは指定できない。 |
p_client_secret |
クライアント・シークレットの値。この値がNULLの場合は、最も古いシークレットが取り消されます。 |
p_revoke_sessions |
TRUEの場合は、既存のクライアント・セッションをすべて削除します。デフォルト値はFALSEです。 |
9.27.1 例
例9-28
次の例では、値を指定してスキーマのOAuthクライアント・シークレットを取り消します:DECLARE
l_client_cred ords_types.t_client_credentials;
BEGIN
l_client_cred.client_key.name := 'CLIENT_TEST';
l_client_cred.client_secret.secret := 'RaFhM690PA6cN1ffpkNx3Q..';
l_client_cred := ORDS_SECURITY.REVOKE_CLIENT_SECRETS(
p_schema => 'HR',
p_client_key => l_client_cred.client_key,
p_filter => l_client_cred.client_secret
);
-- No Commit Required
sys.dbms_output.put_line('SLOT:' || l_client_cred.client_secret.slot);
END;
/例9-29
次の例では、スキーマで最も古いOAuthクライアント・シークレットを取り消し、1つのみ有効なままにします:BEGIN
ORDS_SECURITY.REVOKE_CLIENT_SECRET(
p_schema => 'HR',
p_name => 'CLIENT_TEST'
);
-- No Commit Required
END;
/親トピック: REVOKE_CLIENT_SECRETS