メイン コンテンツをスキップする 補完的コンテンツへスキップ

サービスアカウントトークンを生成

/security/oauth/tokenエンドポイントをコールし、サービスアカウント用のトークンを生成します。

始める前に

  • トークンを生成するサービスアカウントが既に存在すること。
  • このサービスアカウントのIDとシークレットをID:secretという形式で組み合わせ、お好みのBase64エンコードアプリケーションでこのペアをエンコードしていること。

    Talend API Testerでは、Base64エンコーディングを行うネイティブツールを利用できます。Talend API Testerを使ってこのユースケースをテストする場合は、認証ヘッダーを追加に従ってID:secretというペアをエンコードします。

このタスクについて

このセクションでは次のAPIコールが発行されます。
method: POST
endpoint: https://api.<env>.cloud.talend.com/security/oauth/token
headers: {
 "Content-Type": "application/json",
 "Authorization": "Basic <encoded_Base64_value_of_id-secret_pair>"
}
payload: {
  "audience":"https://api.<env>.cloud.talend.com",
  "grant_type":"client_credentials"
}
デモンストレーションのため、Talend API Testerに実装されています。

手順

  1. トークンを生成するには、[Method] (メソッド)リストでPOSTを選択し、横にあるフィールドに、使用するトークンエンドポイントとしてhttps://api.<env>.cloud.talend.com/security/oauth/tokenと入力します。
  2. [Add header] (ヘッダーを追加)をダブルクリックして2行追加し、次のkey:valueのペアを入力します。
    • Content-Type: application/json
    • Authorization : Basic <encoded_Base64_value_of_id-secret_pair>
  3. [Body] (ボディ)エリアに、このコールのコンテンツを入力します。

    {
      "audience":"https://api.<env>.cloud.talend.com",
      "grant_type":"client_credentials"
    }
    • トークンでコード200が返されます。この場合に限り、トークンが表示されます。秘密の場所にこのトークンを保持します。APIコールを正しく発行するには、サービスアカウントはこのトークンが必要です。
    • Authorizationヘッダーでこのトークンを使ってAPIコールを発行する場合は、Bearerにホワイトスペースを付けて追加し、その後に実際のトークン値を追加します。たとえば、Bearer your_service_account_tokenとなります。Using a service account to get usersという例には、APIリクエストでサービスアカウントトークンがどのように使われるかが示されています。
    • このトークンは30分後に期限切れになります。

      トークンをキャッシュまたは保存し、有効期限が切れるまで再利用します。このbase64 ID:secretの組み合わせは、新しいトークンを取得する場合に再び使います。

  4. トークンを更新する際に再利用できるよう、このAPIリクエストに名前(Renew the SATなど)を付けて保存します。

タスクの結果

Talendサービスのコールにサービスアカウントを使用できるようになります。

次のタスク

トークンが期限切れになる際に、リアクティブな方法かプロアクティブな方法で監視する必要があります。
  • リアクティブな方法: トークンがすべてのリクエストで有効であると仮定し、401 unauthorizedという応答を受け取った際に対応します。
  • プロアクティブな方法: 生成されたトークンは30分後に期限切れになります。有効期限に注意しながらトークンを適切に更新します。

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。