認証および認可
Oracle Access Governance REST APIは、認可フレームワークとしてOAuth 2.0プロトコルを利用します。 Oracle Access Governance APIの認証および認可は、OCI IAM認可REST APIによって管理されます。
OCI IAM (旧称はOracle Identity Cloud Service IDCS)トークンREST API (oauth2/v1/token)を適切なパラメータとともに使用して、認可用のアクセス・トークンを生成する必要があります。
- 構成の主な前提条件を構成し、アプリケーションの詳細を保存します。 詳細は、「構成の前提条件」を参照してください
- Oracle Access Governance SIの詳細を取得します。
- OCI IAM URLの取得
- 次の権限付与タイプを使用してアクセス・トークンを生成して許可します:
ステップ1: Oracle Access Governanceサービス・インスタンスの詳細の取得
Oracle Access Governanceサービス・インスタンスの詳細をフェッチします:
- Oracleクラウド・アカウントで、「アイデンティティ&セキュリティ」に移動し、「アクセス・ガバナンス」をクリックします。
- Oracle Access Governanceサービス・インスタンスがあるコンパートメントを選択し、サービス・インスタンスを選択します。
- サービス・インスタンス・リンクを選択して詳細を表示します。
- URLをコピーして、
https://<service-instance-url>.com
まで保存します。 APIリクエストを送信するにはホストの詳細が必要です。
ステップ2: 認可用の機密OAuthアプリケーション詳細のフェッチ
「構成の前提条件」のトピックで説明するように、機密OAuthアプリケーションを作成し、Oracle Access Governanceアプリケーション・ロールを割り当てる必要があります。
- 作成した機密OAuth統合アプリケーションを開きます。
- 「OAuth構成」タブを選択します。
- 「リソース」セクションで、アプリケーション・スコープをコピーして保存します。 たとえば、
<oracle-access-governance-service-instance>/urn:opc:agcs:all
です。 - 「一般情報」セクションで、「クライアントID」および「クライアント・シークレット」をコピーして保存します。
- 認可のためにクライアントIDおよびクライアント・シークレットを「Base64エンコード形式」にエンコードし、
client_id:client_secret
の形式にします。ノート:
REST APIクライアント・ツールを使用している場合は、Authorization-itハンドルのエンコーディングの下に値を自動的に追加します。 - 後で使用するために、このエンコードされた値を保存します。
Authorization: Basic <base64Encoded (client_id:client_secret)>
ステップ3: 認可用のOCI IAMドメインURLの取得
OCI IAM URLをフェッチして認可ベアラー・トークンをフェッチするには:
- 「アイデンティティ&セキュリティ」に移動し、「ドメイン」をクリックします。
- コンパートメント・フィルタを適用し、ドメインを選択します。
- 「詳細」タブで、ポート番号なしで「ドメインURL」フィールドの認証ホストをコピーします。 たとえば、
https://idcs-<unique identifier>.identity.example.com
です。認証URLが作成されます:
https://<oci-iam-identifier>.identity.example.com/oauth2/v1/token
ステップ4a: クライアント資格証明を使用した認可用のBearerトークンの取得
このメソッドは、付与タイプとして「クライアント資格証明」を選択した場合に使用します。 Authorization Bearerトークンを取得するには、OCI IAM REST APIをコールする必要があります。 ここでは、アクセス・トークンの生成にクライアント資格証明のみを使用します。
REST APIでは、HTTPメソッドを使用してコンテンツを送受信します。 HTTPメッセージの送受信をサポートする任意のプログラミング言語またはツールを使用して、REST APIをテストできます。 たとえば、cURLコマンドライン・ユーティリティまたはスタンドアロン・クライアント(PostmanやAdvanced REST Clientなど)です。
次のcURLコマンドを使用して、アクセス・トークンを生成
形式
curl -i -X POST \
-H "Content-Type:application/x-www-form-urlencoded" \
-H "Authorization:Basic <base64Of(client_id:client_secret)>" \
-d "scope=${service-instance-url}/<application scope>" \
-d "grant_type=client_credentials" \
'${OCIIAMurl}/oauth2/v1/token'
たとえば:
curl -i -X POST \
-H "Content-Type:application/x-www-form-urlencoded"\
-H "Authorization:Basic
eynsjMTE0NDBlN2M="\
-d "scope=https://myaccess-governance.com/urn:opc:agcs:all"\
-d "grant_type=client_credentials"\
'${OCIIAMurl}/oauth2/v1/token'
スタンドアロン・クライアント、サード・パーティのブラウザ拡張機能またはアドオン(Advanced REST Clientなど)を使用して、HTTPリクエストを送信できます。
図形 - アクセス・トークン生成: REST APIクライアント・ツールを使用した認可リクエスト

操作 | 値 |
---|---|
メソッド | POST |
リクエストURL | https://<oci iam-identifier>.identity.example.com/oauth2/v1/token |
ヘッダー |
|
本文 | 「本文」でx-www-form-urlencoded書式タイプを選択し、次のキー値を入力します:
|
ステップ4b: パスワード資格証明を使用した認可用のBearerトークンの取得
「リソース所有者」を選択した場合は、アクセス・トークンを生成するための権限タイプとしてパスワードを使用します。 ただし、このメソッドはお薦めしません。クラウド・アカウントでマルチ・ファクタ認証(MFA)が有効になっている場合は機能しません。
形式
curl -i -X \
POST \
-H \
"Authorization:Basic <base64Of(ClientID:ClientSecret)>" \
-H \
"Content-Type:application/x-www-form-urlencoded" \
-d "grant_type=password" \
-d "username=${username}" \
-d "password=${password}" \
-d "scope=${service-instance-url}/application scope" \
'${OCIIAMurl}/oauth2/v1/token'
RESTクライアントを使用したアクセス・トークンの生成
図形 - アクセス・トークン生成: REST APIクライアント・ツールを使用したパスワード付与タイプ許可トークン

リフレッシュ・トークン
ノート:
リフレッシュ・トークンは使用しないため、トークンの有効期限が切れたら、APIを再度実行して新しいトークンを生成する必要があります。ステップ4c: OAuth 2.0認可コードを使用したBearerアクセス・トークンの取得
「認証コード」権限付与タイプを選択した場合。 プロセスに従って、認可トークンをフェッチし、アクセス・トークンを生成します。
curl -X GET "${OCIIAMurl}/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&scope=${service-instance-url}/<application scope>"
認可コードは、「リダイレクトURI」で問合せパラメータとして受信されます。 認可コードを取得したら、トークン・エンドポイントにPOSTリクエストを行います。
curl -X POST "${OCIIAMurl}/oauth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=authorization_code" \
-d "code=YOUR_AUTHORIZATION_CODE" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET" \
-d "redirect_uri=YOUR_REDIRECT_URI" \
-d "scope=${service-instance-url}/<application scope>"
ノート:
説明とデモンストレーションでは、Postman RESTクライアント・ツールを使用して認可コードを生成しました。 詳細については、OAuth 2.0を参照してください。 クライアント・ツールに基づいて、ステップは異なる場合がありますが、概念情報は変わりません。- Postmanを開き、リクエストの「認証」タブに移動します。
- 「認証タイプ」フィールドでOAuth 2.0を選択します。
- フィールドに次の情報を入力します:
フィールド 説明またはアクション ヘッダー・プレフィックス Bearer
と入力トークン名 わかりやすい認可トークン名を入力 権限付与タイプ 「承認コード」を選択 コールバックURL 機密アプリケーション設定で構成されたクライアントのリダイレクトURLを入力します。 たとえば、Postmanの場合、次のものを使用できます: https://oauth.pstmn.io/v1/callback
認証URL OCI IAMドメインURLを次の形式で入力します: ${OCIIAMurl}/oauth2/v1/authorize
アクセス・トークンURL OCI IAMドメインURLを次の形式で入力します: ${OCIIAMurl}/oauth2/v1/token
クライアントID アプリケーションのクライアントIDを追加します。 クライアント・シークレット アプリケーションのクライアント・シークレットを入力します。 有効範囲 アプリケーションのスコープを次の形式で入力します: ${service-instance-url}/<application scope>
たとえば:
https://myaccess-governance.com/urn:opc:agcs:all
- 「新規アクセス・トークンの取得」を選択します。
- ブラウザで、Oracle Access Governanceのユーザー名とパスワードを入力します。
トークンをリクエストすると、認証コードとしてクライアント資格証明とともに検証のために認可サーバーに送信されます。 サーバーがコードと資格証明を検証すると、新しい「アクセス・トークン」が発行されます。
- このトークンを使用してREST APIリクエストを起動するには、「トークンを使用」を選択します。