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に関連付けられます。
-
「構成」をクリックします「一般情報」で、「クライアントID」フィールドに表示されている値をコピーします。
これは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
}
サンプル・レスポンスでは、トークン文字列は切り捨てられます。レスポンスに示すように、トークン文字列全体(引用符内)をコピーします。
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 -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"