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
- 許可されるスコープ
-
アイデンティティ・ドメインのMy Servicesダッシュボードにサイン・インします。
ノート
この手順のステップに従うには、アイデンティティ・ドメイン管理者ロールまたはPaaS管理者ロールが必要です。 -
サービスのリストで、アイデンティティ・ドメインのエントリを検索し、「Identity Cloud」を選択します。
-
「概要」タブで、サービス・インスタンスセクションを見つけて、サービス・インスタンスURLフィールドに表示されている値をコピーします。
たとえば:
https://<domainURL>.identity.oraclecloud.com/ui/v1/adminconsoleここで、
<domainURL>は、アイデンティティ・ドメインURL (アクセス・トークンをリクエストするためのエンドポイントURLの一部を形成する)のRESTサーバー部分です。 -
「サービス・コンソールを開く」を選択し、「ナビゲーション・ドロワー」を展開して、「アプリケーション」を選択します。
-
検索フィールドに
PSMと入力し、検索アイコンを選択します。結果で、「PSM App for API OAuthサポート」というタイトルのエントリを検索します。ノート
18.1.4より前に作成されたOracle Cloudアカウントでは、Platform Service Managerアプリケーション(PSMApp)を使用することはできません。 -
「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に関連付けられます。
-
Select Configuration. Under General Information, copy the value shown in the Client ID field.
これはPSMAppクライアントIDです。例:
PSMApp-cacct-9z8x7c6v5b4n3m_APPID -
「シークレットの表示」を選択し、値をコピーします。
これはPSMAppクライアント・シークレットです。例:
c53b437-1768-4cb6-911e-1e6eg2g3543 -
「リソース」を展開します。「プライマリ・オーディエンス」フィールドに表示されている値をコピーします。
これは、PSMAppのプライマリ・オーディエンスURLです。例:
https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.com -
「許可されるスコープ」セクションで、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 -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"