Как установить NameClaimType в приложении с помощью промежуточного программного обеспечения OWIN security
Я создал веб-приложение OWIN, которое использует OpenId Connect для аутентификации через Microsoft.Owin.Security.OpenIdConnect
.
пока аутентификация работает, я нахожу, что созданный ClaimsIdentity.Имя члена равно null. Похоже, ClaimsIdentity ожидает, что имя будет указано в претензии:
однако Thinktecture IdentityServer v3 предоставляет имя как просто:
имя
Я считаю, что это настраивается через NameClaimType
в старых ASP.Net приложения но неясно, как я это делаю с ОУИНОМ.
Как настроить, какое утверждение сопоставляется с ClaimsIdentity.Имя при использовании OWIN?
1 ответов
копание в коде, который я нахожу, это можно настроить на TokenValidationParameters
объект с помощью NameClaimType
или NameClaimTypeRetriever
(Если тип утверждения не является фиксированным).
TokenValidationParameters
живет на объекте options при настройке промежуточного ПО. Следующие изменения конфигурации работают в описанном случае,
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
<existing configuration snipped>,
TokenValidationParameters =
{
NameClaimType = Thinktecture.IdentityServer.Core.Constants.ClaimTypes.Name
}
} );
Thinktecture.IdentityServer.Core.Constants.ClaimTypes.Name
is name
. Для указания на необходимость использования другого требования может быть указано иное значение.