RESTfulなWebサービスのセキュリティ
ロール、権限およびOAuthクライアントを定義して、RESTful Webサービスへのアクセスで認証および認可が要求されるようにします。
RESTful Webサービスを保護するには、次の操作を実行する必要があります。
-
ロールを作成する
-
権限を作成し、ロールと保護するモジュールまたはリソースを選択する
OAUTH2ワークフローを使用して保護されたRESTfulサービスへのアクセスを有効にするには、RESTfulサービスを保護するために作成されたロールおよび権限を使用してOAuthクライアントを作成します。
次の各項では、ロール、権限およびOAuthクライアントの作成方法について説明します。
ロールの管理
「ロール」ページで、RESTfulサービスのロールを作成、編集および削除できます。
「ロール」ページにナビゲートするには、RESTの「概要」ページで「オブジェクト」の「ロール」をクリックするか、ヘッダーのメニューで「セキュリティ」、「ロール」の順に選択します。
コンテキスト・メニューで使用できるアクションは次のとおりです。
権限の管理
「権限」ページで、RESTfulサービスの権限を作成、編集および削除できます。
権限はロールのセットを定義し、認証済のユーザーのうちの少なくとも1人は、権限によって保護されたRESTfulサービスへのアクセス権を持っている必要があります。
「権限」ページにナビゲートするには、RESTの「概要」ページで「オブジェクト」の「権限」をクリックするか、ヘッダーのメニューで「セキュリティ」、「権限」の順に選択します。
次の図に、カード・ビューにデフォルトで表示される権限属性を示します。
コンテキスト・メニューで使用できるアクションは次のとおりです。
OAuthクライアントの管理
OAuth 2.0ベースの認証を使用すると、特定のユーザーまたはクライアントのみがRESTful Webサービスにアクセスできるようにすることができます。
OAuth 2.0は、RESTful APIへの条件付きおよび制限付きのアクセスを提供するフローを定義する、標準のインターネット・プロトコルです。詳細は、OAuthベースの認証 を参照してください。
「OAuthクライアント」ページで、OAuthクライアントを作成、編集および削除できます。
「OAuthクライアント」ページにナビゲートするには、RESTの「概要」ページで「オブジェクト」の「クライアント」をクリックするか、ヘッダーのメニューで「セキュリティ」、「OAuthクライアント」の順に選択します。
次の図に、カード・ビューにデフォルトで表示されるOAuthクライアント属性を示します。
OAuthクライアントを作成するには、「OAuthクライアントの作成」を参照してください。
コンテキスト・メニューで使用できるアクションは次のとおりです。
-
編集: 「OAuthクライアントの編集」を参照してください
-
エクスポート: 「OAuthクライアントのエクスポート」を参照してください
-
削除: 「OAuthクライアントの削除」を参照してください
-
Bearerトークンの取得: このオプションは、クライアントが暗号化されていないクライアント・シークレットを使用して作成されている場合にのみ表示されます。クライアント資格証明および暗黙的OAuth権限付与タイプのRESTfulサービスをコールするためのアクセス・トークンを提供します。クライアント資格証明権限タイプを使用したOAuthクライアントの作成を参照してください
-
シークレットの管理: クライアント資格証明および認証コード権限付与タイプに適用されます。「シークレットの管理」を参照してください
- ローテーション: 既存のクライアント・シークレットを削除し、OAuthクライアント用に新しいクライアント・シークレットを生成します。
- 取消: OAuthクライアントに関連付けられたクライアント・シークレットを削除します。
-
Authの詳細: 認証コードOAuth権限タイプの一意の値および認可URIが表示されます。認証コード権限タイプを使用したOAuthクライアントの作成を参照してください
OAuthクライアントの削除
この項では、OAuthクライアントの削除方法について説明します。
- 「OAuthクライアント」ページで、特定のクライアントの「アクション」
をクリックし、「削除」を選択します。 - 確認を求めるプロンプトが表示されます。「はい」をクリックします。
OAuthクライアントのエクスポート
この項では、OAuthクライアントのエクスポート方法について説明します。
- 「OAuthクライアント」ページで、特定のクライアントの「アクション」
をクリックし、「エクスポート」を選択します。 - 「OAuthクライアント」パネルで、「コピー」アイコンまたは「ダウンロード」をクリックして、OAuthクライアント情報をコピーまたはダウンロードします。
シークレットの管理
OAuthクライアントに対してクライアント・シークレットが生成されると、必要に応じてシークレットをローテーションまたは取り消すことができます。「ローテーション」および「取消」オプションは、特定のOAuthクライアントのコンテキスト・メニューで使用できます。
ノート:
OAUTHおよびOAUTH_ADMIN PL/SQLパッケージの非推奨(「ORDS_SECURITY PL/SQLパッケージのリファレンス」を参照)に伴い、OAuthクライアント・シークレットの作成プロセスがクライアント資格証明および認証コード権限付与タイプについて変更されました。
暗号化されていないシークレットを使用して作成されたOAuthクライアントの場合、Legacyというラベルがカードに表示されます。
クライアント・シークレットのローテーション
既存のシークレットを削除し、新しいシークレットを作成します。これは、既存のクライアント・シークレット値を思い出せない場合に役立ちます。
-
OAuthクライアントにクライアント・シークレットが存在する場合は、「ローテーション」をクリックして既存のクライアント・シークレットを削除し、新しいクライアント・シークレットを生成します。
-
クライアント・シークレットが取り消され、シークレット値が割り当てられていない場合は、「登録」をクリックして、OAuthクライアントのクライアント・シークレットを生成します。
クライアント・シークレットの取消
既存のクライアント・シークレットを削除します。
既存のクライアント・セッションをすべて削除するには、「セッションの取消」を選択します。
例
この項では、異なる権限タイプを持つOAuthクライアントの作成の例をいくつか示します。
クライアント資格証明権限タイプを使用したOAuthクライアントの作成
この項では、クライアント資格証明権限タイプを使用したOAuthクライアントの作成方法について説明します。
例: POSTハンドラを使用したレコードの挿入で作成したモジュールexampleのOAuthクライアントを作成します。RESTfulサービスのエンドポイントはhttp://xyz.us.comp.com:1234/ords/pdbdba/example/emp/です。




