OpenID Connectでは、アクセストークンには有効期限があります。認証コードフローの場合、これは通常短い(たとえば、20分)後、更新トークンを使用して新しいアクセストークンを要求します。
トークンIDもは有効期限の時間を持っています。私の質問は、これの意図は何ですか?
IDトークンの有効期限が更新トークンの有効期限よりも短い場合は、最終的にIDトークンの有効期限が切れますが、有効なアクセストークンがあることを意味します。
だからあなたはするつもりですか:
- IDトークンの有効期限を更新トークンの有効期限より長くするか、
- アクセストークンと同じ有効期限に設定し、有効期限が切れたときに何らかのアクション(何?)を実行するか、
- 受信時にクライアントでIDトークンを消費し、その後の有効期限を無視しますか?
OpenIDの接続仕様は、単に、IDトークンを検証する際と言います
"The current time MUST be before the time represented by the exp Claim."
これは(おそらく)上記の3番目のオプションをサポートします。
編集
OpenID ConnectはOAuth2に基づいて構築されているため、以下の補足質問に対する回答は、OAuth2仕様に記載されています。
expires_in
RECOMMENDED. The lifetime in seconds of the access token.
関連する質問は、トークンの認証コードを交換するときに、同じ仕様で次のような応答が返される可能性があることです。
{
"access_token": "SlAV32hkKG",
"token_type": "Bearer",
"refresh_token": "8xLOxBtZp8",
"expires_in": 3600,
"id_token": "eyJhbG[...]"
}
しかし、この場合、「expires_in」は何に関連していますか?アクセストークン、更新トークン、またはIDトークン?
(詳細については、IdentityServer3はこれをアクセストークンの有効期限に設定します)。