リフレッシュトークンの使用

リフレッシュトークンフローは、APIリクエストを認可するための、より安全な方法です。有効期間の長い単一の認証情報を直接使用する代わりに、リフレッシュトークンを有効期間の短いアクセストークンと交換します。アクセストークンの有効期限が切れたら、再度交換します。

リフレッシュトークン単体ではAPIリクエストを認可できないことに注意してください。必ず最初にリフレッシュトークンと交換する必要があります。

このフローを使用するには、Admin → Developerでトークンを作成する際にrefresh tokenオプションを選択します。作成時に、次の3つの値が発行されます。

  • Client ID – 連携を識別します

  • Client secret – 交換リクエストを認証します

  • Refresh token – アクセストークンの取得に使用します

These credentials are shown once. 3つすべてをコピーし、安全に保管してください。Altiumはこれらの値を保存しないため、作成ページを離れると再表示できません。リフレッシュトークンとクライアントシークレットは、パスワードと同様に扱ってください。

リフレッシュトークンとアクセストークンの交換

Altium IdentityのトークンエンドポイントにPOSTリクエストを送信します。

Token Endpoint

レルム

URL

Altium 365

https://auth.altium.com/connect/token

Altium 365 Gov Cloud

https://auth.365-gov.altium.com/connect/token

Request Body (application/x-www-form-urlencoded)

grant_type=refresh_token
refresh_token={refresh-token}
client_id={client-id}
client_secret={client-secret}

Response

{
  "access_token": "...",
  "expires_in": 14400,
  "token_type": "Bearer",
  "refresh_token": "...",
  "scope": "..."
}

レスポンスのaccess_tokenを使用して、APIリクエストを認可します。expires_inは秒単位で、アクセストークンの有効期間を示します。

curl Example:

curl -X POST https://auth.altium.com/connect/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "grant_type=refresh_token" \
  --data-urlencode "refresh_token={refresh-token}" \
  --data-urlencode "client_id={client-id}" \
  --data-urlencode "client_secret={client-secret}"

アプリケーションへの組み込み

長時間実行する連携では、通常、次の手順を使用します。

  1. リフレッシュトークン、クライアントID、クライアントシークレットを安全に保管します(環境変数やシークレットマネージャーなど)。

  2. 起動時にトークンエンドポイントを呼び出し、新しいアクセストークンを取得します。

  3. APIリクエストにはアクセストークンを使用します。有効期限が切れるまでキャッシュしておきます。

  4. 有効期限が切れたら(HTTPステータス 401 Unauthorized、またはGraphQLレスポンス内のエラーコードAuthExpiredTokenを伴う200 OK)、リフレッシュトークンを再度交換して、新しいアクセストークンを取得します。

リフレッシュトークンは、作成時に設定した有効期間(最長1年)が経過すると失効します。リフレッシュトークンの有効期限が切れたら、管理 → 開発者で新しいトークンを作成する必要があります。

関連項目

 

AI-LocalizedAI で翻訳
問題が見つかった場合、文字/画像を選択し、Ctrl + Enter キーを押してフィードバックをお送りください。
Contents
Contents