はじめに
既存の認可サーバーシステム(旧システム)を Authlete に移行する場合、旧システムが過去に発行したアクセストークンをどのように取り扱うかを検討する必要があります。 もしリソースサーバーが、旧システムが発行したか、Authlete が発行したかによらず、クライアントから受け取ったアクセストークンの検証(イントロスペクション)を全て Authlete に依頼するのであれば、Authlete は旧システムのアクセストークンの情報も管理しなくてはなりません。 本記事では、Authlete 以外が発行したアクセストークン情報を Authlete に移行する方法を紹介します。移行方法

実行例
トークン生成
発行済みのトークン情報を用いて /auth/token/create API を呼び出し、Authlete のトークンデータベースに同一の値のトークンを生成します。(見やすさのために折り返しています)- リクエスト
- レスポンス
イントロスペクション
「発行済みのアクセストークン」を含む API リクエストを受け取ったリソースサーバーは、そのトークンの有効性の確認と関連情報の取得を行います。以下は Authlete の /auth/introspection API を用いて確認・取得する例です。(見やすさのために折り返しています)JWT 形式のアクセストークン を用いる場合には、リソースサーバーがそのトークンの検証を行い、含まれている情報を抽出します。
- リクエスト
- レスポンス
トークンの更新
「発行済みのリフレッシュトークン」を用いたトークン更新リクエストを受け取った認可サーバーは、Authlete の /auth/token API を呼び出してそのトークンリクエストを処理します。(見やすさのために折り返しています)- リクエスト
- レスポンス
大量のアクセストークンを移行する場合
大量に存在するアクセストークンの移行に際しては、旧システムからダンプしたアクセストークン情報を Authlete のトークン形式に変換し、Authlete のトークンデータベースに投入する方法が適している場合があります。詳細は弊社サポートにお問い合わせください。参考情報
- OAuth 2.0 / OIDC 実装の新アーキテクチャー
**パラメーター名: **accessToken
**要否: **任意
**説明: **通常、アクセストークンの値は Authlete が自動生成するが(256 ビットのランダム値を base64url で表現したもので 43 文字)、他のシステムで過去に発行されたアクセストークンをそのまま利用したい場合等、アクセストークンの値を指定したい場合にこのリクエストパラメーターを用いる。 Authlete のデータベースはアクセストークンの値そのものは保存せず、ハッシュ値を保存しているので、アクセストークンの値がなんであれ、データベース上は固定長となる。 そのため、このリクエストパラメーターに指定するアクセストークンの値の自由度は高いが、そのかわりに、アクセストークンの値が重複しないよう API 呼び出し側で配慮する必要がある(同じアクセストークンの値が来た場合は Authlete 側で拒否はする)。