リフレッシュトークンの使用
リフレッシュトークンフローは、APIリクエストを認可するための、より安全な方法です。有効期間の長い単一の認証情報を直接使用する代わりに、リフレッシュトークンを有効期間の短いアクセストークンと交換します。アクセストークンの有効期限が切れたら、再度交換します。
リフレッシュトークン単体ではAPIリクエストを認可できないことに注意してください。必ず最初にリフレッシュトークンと交換する必要があります。
このフローを使用するには、Admin → Developerでトークンを作成する際にrefresh tokenオプションを選択します。作成時に、次の3つの値が発行されます。
-
Client ID – 連携を識別します
-
Client secret – 交換リクエストを認証します
-
Refresh token – アクセストークンの取得に使用します
リフレッシュトークンとアクセストークンの交換
Altium IdentityのトークンエンドポイントにPOSTリクエストを送信します。
Token Endpoint
レルム |
URL |
Altium 365 |
|
Altium 365 Gov Cloud |
|
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}"
アプリケーションへの組み込み
長時間実行する連携では、通常、次の手順を使用します。
-
リフレッシュトークン、クライアントID、クライアントシークレットを安全に保管します(環境変数やシークレットマネージャーなど)。
-
起動時にトークンエンドポイントを呼び出し、新しいアクセストークンを取得します。
-
APIリクエストにはアクセストークンを使用します。有効期限が切れるまでキャッシュしておきます。
-
有効期限が切れたら(HTTPステータス
401 Unauthorized、またはGraphQLレスポンス内のエラーコードAuthExpiredTokenを伴う200 OK)、リフレッシュトークンを再度交換して、新しいアクセストークンを取得します。
リフレッシュトークンは、作成時に設定した有効期間(最長1年)が経過すると失効します。リフレッシュトークンの有効期限が切れたら、管理 → 開発者で新しいトークンを作成する必要があります。
関連項目