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. 「構成」をクリックします「一般情報」で、「クライアントID」フィールドに表示されている値をコピーします。

    これは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
}
ノート

サンプル・レスポンスでは、トークン文字列は切り捨てられます。レスポンスに示すように、トークン文字列全体(引用符内)をコピーします。

Cloud Platform Service 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"