Я пытаюсь добавить некоторые пользовательские утверждения в свой поток IdentityServer4, но не могу их отобразить в конечной точке /userinfo
.
Сейчас я использую только конфигурацию "в памяти", поэтому в этом я создал новую IdentityResource
со своей настраиваемой областью действия:
new IdentityResource {
DisplayName = "My Custom Resource",
Name = "mycustom",
UserClaims = new List<string> {
"mycustom.myvalue"
}
}
И я установил, чтобы мой клиент мог использовать это:
new Client {
AllowedScopes = {
IdentityServerConstants.StandardScopes.OpenId,
"mycustom"
}
}
Затем, при успешном входе в систему, я делаю следующее, чтобы войти в систему, прежде чем перенаправить обратно на /authorize/callback
await _events.RaiseAsync(new UserLoginSuccessEvent(
"provider",
"providerUserID",
"subjectID",
"name"));
await HttpContext.SignInAsync(
"subject",
"name",
new AuthenticationProperties(),
new Claim("mycustom.myvalue", "987654321"));
Теперь я могу выполнить полный поток authorize
с ?scope=openid+mycustom
, но когда я выполняю вызов к конечной точке userinfo
, он не возвращает mycustom.myvalue
Я, вероятно, только упускаю некоторые мелкие детали, но я не могу понять, что ... так чего мне не хватает, чтобы заставить это работать?