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

IBM Analytics EngineAPIの使用を開始します。そのとき、IBM Cloud®Identity and Access Management (IAM)アクセス・トークンを使用してサービスに対する要求を認証します。

アクセス・トークンは、1 時間後に有効期限が切れる一時的な資格情報です。 取得したトークンの有効期限が切れた後、IBM Analytics EngineAPIの呼び出しを続行するには、新しいトークンを生成する必要があります。 サービスへのアクセス権限を維持するには、定期的に API 鍵のアクセス・トークンを再生成してください。

トークンをプログラマチックに取得するために推奨される方法は、IBM Cloud®ID用のAPIキーを作成し、IAMトークンAPIを使用してそのキーをトークンと交換することです。

以下の 2 つの方法でトークンを作成できます。

IBM Cloud REST API を使用したトークンの作成

IBM Cloud でトークンを作成するには、以下のようにします。

  1. IBM Cloudにサインインします。 次に、 管理>セキュリティー>プラットフォームAPIキーを選択します。

  2. 独自の個人 ID の API キーを作成し、キー値をコピーして、安全な場所に保存します。 ページを終了した後は、この値にアクセスできなくなります。

  3. 作成した API キーを IAM ID トークン API で使用して、IAM トークンを生成します。 以下に例を示します。

    curl -X POST \
    'https://iam.cloud.ibm.com/identity/token' \
    -H 'Content-Type: application/x-www-form-urlencoded' \
    -d 'grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=<your iam api key>'
    

    API 構文について詳しくは、IAM ID トークン API を参照してください。

    以下に、返される応答の例を示します。

    {
       "access_token": "eyJraWQiOiIyMDE3MDgwOS0wMDowMDowMCIsImFsZyI6…",
       "refresh_token": "zmRTQFKhASUdF76Av6IUzi9dtB7ip8F2XV5fNgoRQ0mbQgD5XCeWkQhjlJ1dZi8K…",
       "token_type": "Bearer",
       "expires_in": 3600,
       "expiration": 1505865282
    }
    
  4. IBM Analytics Engine API 呼び出しに access_token プロパティーの値を使用します。 IBM Analytics Engine API への要求の許可ヘッダー・パラメーターとして access_token 値を設定します。 形式はAuthorization: Bearer <access_token_value>です。

    以下に例を示します。

    Authorization: Bearer eyJraWQiOiIyMDE3MDgwOS0wMDowMDowMCIsImFsZyI6IlJTMjU2In0...
    

IBM Cloud CLI を使用したトークンの作成

IBM Cloud CLI を使用してトークンを作成する前に、以下の前提条件を満たしていることを確認してください。

  1. 有効な IBMid を持っています。
  2. IBM Cloud CLI をダウンロードして、インストールしています。

IBM Cloud CLI を使用してトークンを作成するには、以下のようにします。

  1. IBM Cloud CLI にログインします。

    ibmcloud api https://cloud.ibm.com
    ibmcloud login <enter your credentials>
    

    複数の IBM Cloud アカウントがある場合は、現行セッション用のアカウントを選択するよう求められます。 また、IBM Cloud 内の組織とスペースを選択する必要があります。

  2. IAM アクセス・トークンを取り出します。

    ibmcloud iam oauth-tokens
    

    出力は IAM トークンを返します。

    トークンを使用する場合は、API呼び出しで渡すトークンの値からBearerを削除します。