Platform ServicesのためのOAuthトークンの使用

アイデンティティ・ドメインが提供するOAuth 2.0トークン・サービスは、保護されたトークンを使用してOracle Cloud Platform Services (PaaS)のRESTエンドポイントにアクセスできるようにするメカニズムです。

ノート

  • アイデンティティ・ドメインと統合されているクラウド・プラットフォーム・サービスにアクセスするには、アイデンティティ・ドメインURLが必要です。アイデンティティ・ドメインのURLがわからない場合は、アイデンティティ・ドメインURLの検出を参照してください。

  • cURLの例は、アイデンティティ・ドメインからアクセス・トークンを取得し、そのトークンを使用してクラウド・プラットフォーム・サービスのRESTエンドポイントにアクセスする手順で使用されます。

OAuthアクセス・トークンの有効期限値は86,400秒(24時間)です。アクセス・トークンを取得してから24時間後にREST APIリクエストを行う場合は、新しいトークンを取得する必要があります。

前提条件

開始する前に、アイデンティティ・ドメインから次の情報を取得します。

  • アイデンティティ・ドメインURL
  • クライアントID
  • クライアント・シークレット
  • プライマリ・オーディエンスURL
  • 許可されるスコープ
  1. アイデンティティ・ドメインのMy Servicesダッシュボードにサイン・インします。

    ノート

    この手順のステップに従うには、アイデンティティ・ドメイン管理者ロールまたはPaaS管理者ロールが必要です。
  2. サービスのリストで、アイデンティティ・ドメインのエントリを検索し、「Identity Cloud」を選択します。

  3. 「概要」タブで、サービス・インスタンスセクションを見つけて、サービス・インスタンスURLフィールドに表示されている値をコピーします。

    たとえば: https://<domainURL>.identity.oraclecloud.com/ui/v1/adminconsole

    ここで、<domainURL>は、アイデンティティ・ドメインURL (アクセス・トークンをリクエストするためのエンドポイントURLの一部を形成する)のRESTサーバー部分です。

  4. 「サービス・コンソールを開く」を選択し、「ナビゲーション・ドロワー」を展開して、「アプリケーション」を選択します。

  5. 検索フィールドにPSMと入力し、検索アイコンを選択します。結果で、「PSM App for API OAuthサポート」というタイトルのエントリを検索します。

    ノート

    18.1.4より前に作成されたOracle Cloudアカウントでは、Platform Service Managerアプリケーション(PSMApp)を使用することはできません。
  6. 「PSM App for API OAuthサポート」というタイトルのアプリケーションの名前を選択します。名前の形式はPSMApp-cacct-string-of-letters-and-numbers.です。

    例:

    PSMApp-cacct-9z8x7c6v5b4n3m

    これは、アイデンティティ・ドメインで信頼できるPSMクライアント・アプリケーションで、Oracle Cloudアカウント用に自動的に作成され(18.1.4以降)、Oracle Cloud Platform Serviceに関連付けられます。

  7. Select Configuration. Under General Information, copy the value shown in the Client ID field.

    これはPSMAppクライアントIDです。例:

    PSMApp-cacct-9z8x7c6v5b4n3m_APPID

  8. 「シークレットの表示」を選択し、値をコピーします。

    これはPSMAppクライアント・シークレットです。例:

    c53b437-1768-4cb6-911e-1e6eg2g3543

  9. 「リソース」を展開します。「プライマリ・オーディエンス」フィールドに表示されている値をコピーします。

    これは、PSMAppのプライマリ・オーディエンスURLです。例:

    https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.com

  10. 「許可されるスコープ」セクションで、1PaaS権限「スコープ」値をコピーします。

    urn:opc:resource:consumer::all

OAuthアクセス・トークンの取得

収集した情報を使用し、アイデンティティ・ドメインREST APIエンドポイント/oauth2/v1/tokenを使用してトークンを取得します。

   curl -k 
   -X POST -u "client-id:client-secret" 
   -d "grant_type=password&username=yourusername&password=yourpassword&scope=https://primary-audience-and-scope" "https://identity-cloud-service-instance-url/oauth2/v1/token"

説明:

  • client-idは、PSMAppクライアントID

  • client-secretは、PSMAppクライアント・シークレット

  • yourusernameは、管理者ロールを持つクラウド・プラットフォーム・サービスのユーザー名です

  • yourpasswordはユーザー名のパスワードです。

  • primary-audience-and-scopeは、PSMAppプライマリ・オーディエンスURLと1PaaS権限スコープの連結です。

  • identity-cloud-service-instance-urlは、アイデンティティ・ドメインURLのRESTサーバー部分です

例:

   curl -k 
-X POST -u "PSMApp-cacct-9z8x7c6v5b4n3m_APPID:c53b437-1768-4cb6-911e-1e6eg2g3543" 
-d "grant_type=password&username=yourusername&password=yourpassword&scope=https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.comurn:opc:resource:consumer::all" "https://<domainURL>.identity.oraclecloud.com/oauth2/v1/token"

次に、返されたレスポンスの例を示します。

{
    "access_token": "eyJ7NXQ...fMf46Q0yKopDxQ",
    "token_type": "Bearer",
    "expires_in": 86400
}
ノート

トークン文字列は、レスポンスの例では切り捨てられます。レスポンスに示されているように、トークン文字列全体(引用符で囲まれている部分)をコピーします。

クラウド・プラットフォーム・サービスREST APIリクエストでのOAuthアクセス・トークンの使用

OAuth 2.0アクセス・トークンを取得した後、クラウド・プラットフォーム・サービスRESTリクエストのBearerトークン・ヘッダーに、トークンを指定します。

   curl -i 
   -X GET 
   -H "Authorization: Bearer token-string" "https://primary-audience/rest-endpoint-path"

説明:

  • token-stringは、取得したOAuthアクセス・トークン

  • primary-audienceは、PSMAppのプライマリ・オーディエンスURL

  • rest-endpoint-pathは、クラウド・プラットフォーム・サービスRESTリソースを定義する相対パス。アイデンティティ・ドメインIDはパスで使用される場合があることに注意してください。

たとえば、次のcURLコマンドでは、すべてのOracle Java Cloud Serviceインスタンスを取得します。
   curl -i -X GET 
   -H "Authorization: Bearer eyJ7NXQ...fMf46Q0yKopDxQ" "https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.com/paas/api/v1.1/instancemgmt/idcs-9a888b7e6ebb44b4b65/services/jaas/instances"