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" },
        });

questionAnswers(2)

yourAnswerToTheQuestion