機械翻訳について

認証および認可

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)を適切なパラメータとともに使用して、認可用のアクセス・トークンを生成する必要があります。

大まかに言うと、次を実行します:

ステップ1: Oracle Access Governanceサービス・インスタンスの詳細の取得

Oracle Access Governanceサービス・インスタンスの詳細をフェッチします:

  1. Oracleクラウド・アカウントで、「アイデンティティ&セキュリティ」に移動し、「アクセス・ガバナンス」をクリックします。
  2. Oracle Access Governanceサービス・インスタンスがあるコンパートメントを選択し、サービス・インスタンスを選択します。
  3. サービス・インスタンス・リンクを選択して詳細を表示します。
  4. URLをコピーして、https://<service-instance-url>.comまで保存します。 APIリクエストを送信するにはホストの詳細が必要です。

ステップ2: 認可用の機密OAuthアプリケーション詳細のフェッチ

「構成の前提条件」のトピックで説明するように、機密OAuthアプリケーションを作成し、Oracle Access Governanceアプリケーション・ロールを割り当てる必要があります。

  1. 作成した機密OAuth統合アプリケーションを開きます。
  2. 「OAuth構成」タブを選択します。
  3. 「リソース」セクションで、アプリケーション・スコープをコピーして保存します。 たとえば、<oracle-access-governance-service-instance>/urn:opc:agcs:allです。
  4. 「一般情報」セクションで、「クライアントID」および「クライアント・シークレット」をコピーして保存します。
  5. 認可のためにクライアントIDおよびクライアント・シークレットを「Base64エンコード形式」にエンコードし、client_id:client_secretの形式にします。

    ノート:

    REST APIクライアント・ツールを使用している場合は、Authorization-itハンドルのエンコーディングの下に値を自動的に追加します。
  6. 後で使用するために、このエンコードされた値を保存します。
    Authorization: Basic <base64Encoded (client_id:client_secret)>

ステップ3: 認可用のOCI IAMドメインURLの取得

OCI IAM URLをフェッチして認可ベアラー・トークンをフェッチするには:

  1. 「アイデンティティ&セキュリティ」に移動し、「ドメイン」をクリックします。
  2. コンパートメント・フィルタを適用し、ドメインを選択します。
  3. 「詳細」タブで、ポート番号なしで「ドメイン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をコールする必要があります。 ここでは、アクセス・トークンの生成にクライアント資格証明のみを使用します。

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
ヘッダー
  • Content-Type: application/x-www-form-urlencoded
  • 認証: Basic <Base 64 encoded (client_id:client_secret)>
本文 「本文」でx-www-form-urlencoded書式タイプを選択し、次のキー値を入力します:
{
     scope = ${service-instance-url}/<application scope>
     grant_type = client_credentials
}

ステップ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
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のOAuth 2.0認可コードを使用したアクセス・トークンの取得
RESTクライアント・ツールを使用すると、このプロセスが簡略化されます。

ノート:

説明とデモンストレーションでは、Postman RESTクライアント・ツールを使用して認可コードを生成しました。 詳細については、OAuth 2.0を参照してください。 クライアント・ツールに基づいて、ステップは異なる場合がありますが、概念情報は変わりません。
  1. Postmanを開き、リクエストの「認証」タブに移動します。
  2. 「認証タイプ」フィールドでOAuth 2.0を選択します。
  3. フィールドに次の情報を入力します:
    フィールド 説明またはアクション
    ヘッダー・プレフィックス 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
  4. 「新規アクセス・トークンの取得」を選択します。
  5. ブラウザで、Oracle Access Governanceのユーザー名とパスワードを入力します。

    トークンをリクエストすると、認証コードとしてクライアント資格証明とともに検証のために認可サーバーに送信されます。 サーバーがコードと資格証明を検証すると、新しい「アクセス・トークン」が発行されます。

  6. このトークンを使用してREST APIリクエストを起動するには、「トークンを使用」を選択します。