Я подхожу к серверу удостоверений 4 недавно, и после того, как прочитал документацию и попробовал проект примеров, у меня возникли некоторые трудности в этом сценарии:
1 - вход в систему с провайдером (например, Google) 2- Я прошу свой IS4 токен, передающий code_token от Google 3 - я получаю новый действительный токен от моего IS4 4 - Сохраняйте новый токен и используйте его для аутентификации с этого момента
Моя проблема в точке 4потому что я не знаю, как сохранить в приложении MVC новый токен
HttpContext.GetTokenAsync("access_token")
Этот вызов i каждый раз обнуляется.
AuthenticationProperties authProp = new AuthenticationProperties();
authProp.StoreTokens(new List<AuthenticationToken>
{
new AuthenticationToken { Name = OpenIdConnectParameterNames.IdToken, Value = newIdToken },
new AuthenticationToken { Name = OpenIdConnectParameterNames.AccessToken, Value = newAccessToken },
new AuthenticationToken { Name = OpenIdConnectParameterNames.RefreshToken, Value = newRefreshToken },
new AuthenticationToken { Name = OpenIdConnectParameterNames.AcrValues, Value = string.Format("idp:{0} email:{1}", model.Provider, model.Email) }
});
SignIn(new ClaimsPrincipal(identity), authProp, "oidc");
После этого сохраняем новые токены и добавляем провайдера.в значения AcrValues Если я захожу на страницу с [Авторизовать] вызов, сделанный на IS4, без AcrValues и не возвращает зарегистрированного пользователя.
Что я пропустил в пути?
Спасибо