В Identity Server 4, Быстрый старт, метод ExternalController.cs
- CallBack
, я обнаружил следующее:
// this allows us to collect any additonal claims or properties
// for the specific prtotocols used and store them in the local auth cookie.
// this is typically used to store data needed for signout from those protocols.
var additionalLocalClaims = new List<Claim>();
var localSignInProps = new AuthenticationProperties();
ProcessLoginCallbackForOidc(result, additionalLocalClaims, localSignInProps);
// issue authentication cookie for user
await HttpContext.SignInAsync(user.SubjectId, user.Username, provider, localSignInProps, additionalLocalClaims.ToArray());
Полный код можно посмотреть по этой ссылке - IdentityServer4 .Quickstart.UI
Я попытался добавить некоторые утверждения в этот список additionalLocalClaims
, выполнив следующее:
additionalLocalClaims.Add(new Claim("TestName", "TestValue"));
Но он никогда не появляется в UserClaims или AccessToken, даже если ClaimType «TestName» включен в ApiResource.
Я хотел бы добавить некоторые пользовательские утверждения / значения в AccessToken для аутентификации Google, и я подумал, что AdditionalLocalClaims - это то, что нужно для добавления дополнительных утверждений.
PS Я наконец-то реализовал IProfileService
и смог вернуть дополнительные претензии. Но я все еще хочу знать, каков вариант использования этого additionalLocalClaims
в HttpContext.SignInAsync
методе расширения.