Como manipular o token de acesso expirado no núcleo do asp.net usando o token de atualização com o OpenId Connect
Eu configurei um servidor ASOS OpenIdConnect usando e um aplicativo mvc principal do asp.net que usa o "Microsoft.AspNetCore.Authentication.OpenIdConnect": "1.0.0 e" Microsoft.AspNetCore.Authentication.Cookies ":" 1.0.0 ". Eu testei o fluxo de trabalho "Código de autorização" e tudo funciona.
O aplicativo Web cliente processa a autenticação conforme o esperado e cria um cookie armazenando o id_token, access_token e refresh_token.
Como forço o Microsoft.AspNetCore.Authentication.OpenIdConnect a solicitar um novo access_token quando ele expira?
O aplicativo asp.net core mvc ignora o access_token expirado.
Gostaria que o openidconnect veja o access_token expirado e faça uma chamada usando o token de atualização para obter um novo access_token. Também deve atualizar os valores do cookie. Se a solicitação do token de atualização falhar, eu esperaria que o openidconnect "desconecte" o cookie (remova-o ou algo assim).
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
AuthenticationScheme = "Cookies"
});
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
ClientId = "myClient",
ClientSecret = "secret_secret_secret",
PostLogoutRedirectUri = "http://localhost:27933/",
RequireHttpsMetadata = false,
GetClaimsFromUserInfoEndpoint = true,
SaveTokens = true,
ResponseType = OpenIdConnectResponseType.Code,
AuthenticationMethod = OpenIdConnectRedirectBehavior.RedirectGet,
Authority = http://localhost:27933,
MetadataAddress = "http://localhost:27933/connect/config",
Scope = { "email", "roles", "offline_access" },
});