Oracle Cloud Infrastructureドキュメント

My Services APIを使用したアクセス・トークン認可の使用

このトピックでは、Oracle Cloud My Services APIを使用してアクセス・トークン認証を設定して使用する方法について説明します。 アクセス・トークンの認可により、開発者はプログラム上のエンドポイント(API)にアクセスして、クラウド・アカウントのいくつかの情報(たとえば、権限、インスタンス、メータリング・データなど)を取得できます。

アクセス・トークンについて

アクセス・トークンには、開発者がクラウド・アカウントの情報にアクセスするために必要な情報が含まれています。 開発者は、API呼び出しを行うときにトークンを提示します。 許可されたアクションとエンドポイントは、トークンを生成するときに選択したスコープ(権限)によって異なります。 アクセス・トークンは約1時間有効です。

リフレッシュ・トークンを使用すると、開発者は管理者に連絡することなく新しいアクセス・トークンを生成できます。 リフレッシュ・トークンは約1年間有効です。

プロセスの概要

管理者の設定ステップ:

  1. 開発者に付与する特定の権限を持つIdentity Cloud Serviceクライアント・アプリケーションを作成します。
  2. 目的の開発者に必要な権限を含むアクセス・トークンを生成します。
  3. 開発者にアクセス・トークンと必要な情報を提供します。
  4. アクセス・トークンの検証用にIdentity Cloud Serviceを構成します。

開発者がトークンを使用するステップ:

  1. My Services APIエンドポイントに対するリクエストを発行します。 承認パラメータのアクセス・トークンを含めます。
  2. アクセス・トークンが期限切れになると、特権が終了するまで管理者の介入なしにアクセス・トークンを更新します。

トークン検証を設定する管理者のタスク

アクセス・トークンを使用して開発者アクセスを有効にするには、次のタスクを実行します:

IDCSクライアント・アプリケーションを作成
アクセス・トークンを生成
開発者にアクセス情報を送信
アクセス・トークンの検証用にIdentity Cloud Serviceを構成

アクセス・トークンの使用

トークン・ファイルの拡張子は.tokです。 このファイルには、アクセス・トークンとリフレッシュ・トークンが含まれています。 コンテンツは次のようになります:

{"app_access_token":"eyJ4N...aabb...CpNwA","refresh_token":"AQID...9NCA="}

My Services APIでトークンを使用するには:

  1. トークン・ファイルを開きます。
  2. 有効なエンドポイントにリクエストを発行し、Authorizationパラメータのアクセス・トークンを挿入します。

    例えば:

    curl -X GET  https://itra.oraclecloud.com/itas/<tenant-IDCS-ID>/myservices/api/v1/serviceEntitlements   -H 'Authorization: Bearer eyJ4N...aabb...CpNwA'

リフレッシュ・トークンから新しいアクセス・トークンをリクエスト

アクセス・トークンは約1時間有効です。 トークンが有効でなくなると、401レスポンス・コードと、Expiredを含むエラー・メッセージ(errorMessage)値が取得されます。

リフレッシュ・トークンから新しい短命アクセス・トークンを生成することができます。 新しいトークンを生成するには、Client IDとClient Secretが必要です。 トークンは、元のトークンと同じかそれより小さいアクセス(スコープ)でしか生成できません。

curlコマンドを使用した例:

curl -i -H 'Authorization: Basic <base64Encoded clientid:secret>' -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST https://<tenant-IDCS-ID>/oauth2/v1/token -d 'grant_type=refresh_token&refresh_token=<refresh-token>'

前のセクションのサンプル・トークン・ファイルを使用すると、<refresh-token>の値はAQID...9NCA=になります。

サンプル・レスポンス:

{ "access_token": "eyJraWQiO....2nqA", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "AQIDBAUn…VkxNCB7djF9NCA=" }

ノート

開発者が新しいアクセス・トークンとリフレッシュ・トークンを生成すると、前のリフレッシュ・トークンは無効になります。

アクセス・トークンを更新する開発者の権限を取り消す

開発者がアクセス・トークンを更新する権限を取り消す必要がある場合は、トークンの新しいクライアント・シークレットを生成して既存の更新トークンを非アクティブにするか、アプリケーションを非アクティブにすることで一時的にアクセスを取り消すことができます。

重要

いずれかのアクションを実行すると、現在のクライアント・シークレットまたはアプリケーションを使用するすべての開発者の能力が終了または中断されます。
複数の開発者のトークンを生成する場合は、複数のIDCSアプリケーションを作成して、開発者をお互いから隔離することを検討してください。

開発者のアクセス・トークンを更新する機能を終了するには

  1. 管理者としてIdentity Cloud Servicesにサインインし、管理コンソールに移動します。 サインインに役立つ必要がある場合は「Oracle Identity Cloud Serviceへのアクセス方法」を参照してください。
  2. 「アプリケーション」タイルをクリックします。 アプリケーションのリストが表示されます。
  3. トークンを生成するために使用されたアプリケーションをクリックして、その詳細を表示します。
  4. 構成をクリックします。
  5. 「一般情報」の下で、「クライアント・シークレット」の横にある「再生成」をクリックして、新しいクライアント・シークレットを生成します。

開発者がリフレッシュ・トークンからアクセス・トークンを生成する能力をリストアするには、「新しいアクセス・トークンの生成」 その後、開発者に新しいクライアント・シークレットと一緒に「トークンを提供」

開発者のアクセス・トークンを更新する機能を一時的に停止するには

  1. 管理者としてIdentity Cloud Servicesにサインインし、管理コンソールに移動します。 サインインに役立つ必要がある場合は「Oracle Identity Cloud Serviceへのアクセス方法」を参照してください。
  2. 「アプリケーション」タイルをクリックします。 アプリケーションのリストが表示されます。
  3. トークンを生成するために使用されたアプリケーションをクリックして、その詳細を表示します。
  4. ページの右上にある「非アクティブ化」をクリックします。
  5. プロンプトで、「アプリケーションを非アクティブ化」をクリックします。

開発者が同じトークンを使用できるようにするには、「アクティブ化」をクリックします。