OpenIDDictによる認証サーバの設定-パート6 -リフレッシュトークン
5809 ワード
This article is part of a series called Setting up an Authorization Server with OpenIddict. The articles in this series will guide you through the process of setting up an OAuth2 + OpenID Connect authorization server on the the ASPNET Core platform using OpenIddict.
ロビンソン / 認証サーバ
OpenIDDictで実装された認証サーバ。
アクセストークンは通常、セキュリティ上の理由で短い寿命を持っています.この部分では、リフレッシュトークンの使用を可能にします.リフレッシュトークンは、アプリケーションがユーザーを促すことなく新しいアクセストークンを取得することができます.
リフレッシュトークンを有効にする
まず、リフレッシュトークンフローを有効にする必要があります
Startup.cs
:options
.AllowAuthorizationCodeFlow()
.RequireProofKeyForCodeExchange()
.AllowClientCredentialsFlow()
.AllowRefreshTokenFlow();
中でトークン端点でAuthorizationController
クライアントの資格情報リクエストを処理したり、アクセストークンの認証コードを交換したりするように、リフレッシュトークンリクエストを処理する必要があります.[HttpPost("~/connect/token")]
public async Task<IActionResult> Exchange()
{
...
else if (request.IsAuthorizationCodeGrantType())
{
...
}
else if (request.IsRefreshTokenGrantType())
{
// Retrieve the claims principal stored in the refresh token.
claimsPrincipal = (await HttpContext.AuthenticateAsync(OpenIddictServerAspNetCoreDefaults.AuthenticationScheme)).Principal;
}
...
}
基本的に、我々はRequestTokenCityをリフレッシュトークンから取得するだけで、再度署名して、新しいアクセストークンを返す必要があります.最後に、クライアントがリフレッシュトークンを使用できるようにする必要があります.
Permissions =
{
OpenIddictConstants.Permissions.Endpoints.Authorization,
OpenIddictConstants.Permissions.Endpoints.Token,
OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode,
OpenIddictConstants.Permissions.GrantTypes.ClientCredentials,
OpenIddictConstants.Permissions.GrantTypes.RefreshToken,
OpenIddictConstants.Permissions.Prefixes.Scope + "api",
OpenIddictConstants.Permissions.ResponseTypes.Code
}
クライアントがリフレッシュトークンを使用したい場合は、offline_access
スコープ.我々が要求したようにopenid
IDトークンのスコープ.さて、Postmanで新しいアクセストークンを要求すると、アクセストークンと共にリフレッシュトークンを受け取ります.その後、リフレッシュトークンを使用してPostmanで新しいアクセストークンを要求できます.ポストリクエストを送る
/connect/token
クライアント資格情報、グラントタイプともちろん、リフレッシュトークンを含む体で.応答では、新しいアクセストークンと新しいリフレッシュトークンを見つけるでしょう.したがって、リフレッシュトークンは自動的に回転します.そして、それは同じリフレッシュトークンを再利用するより安全です.
Reference
この問題について(OpenIDDictによる認証サーバの設定-パート6 -リフレッシュトークン), 我々は、より多くの情報をここで見つけました https://dev.to/robinvanderknaap/setting-up-an-authorization-server-with-openiddict-part-vi-refresh-tokens-5669テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol