Я могу пройти аутентификацию с моим JWT, но моя заявка на имя не распознается в моем приложении ASP.NET Core - PullRequest
1 голос
/ 02 июля 2019

Я могу пройти проверку подлинности на моем веб-API ASP.NET Core 2.2 с помощью JWT, но свойство Name Identity равно нулю.

Правда, претензия есть.

Вот JWT, который разлагается:

{
  "id": "1-A",
  "name": "Pure Krome",
  "email": "<snip>",
  "picture": "https://<snip>",
  "locale": "en-au",
  "permissions": [
    <snip>
  ],
  "iss": "<snip>",
  "sub": "google-oauth2|<snip>",
  "aud": "<snip>",
  "exp": 1597609078,
  "iat": 1496325742
}

и вот что видит сервер:

enter image description here

также .. кажется, что он "распознает" мою заявку по электронной почте, хотя? (примечание: я только что запутал реальное значение электронной почты)

enter image description here

Поэтому я подумал, что name не является признанной заявкой ... поэтому я попытался проверить, есть ли для этого какие-то стандартные правила, и обнаружил У IANA есть список зарезервированных и настраиваемых заявок . name является первым для пользовательских требований.

Есть ли какой-то трюк, который мне нужно сделать, чтобы система безопасности ASP.NET Core распознала мою name претензию как NameClaimType?

Почему email претензия признается?

1 Ответ

1 голос
/ 02 июля 2019

Ожидается, что тип заявки отличается от того, что у вас есть.Вы можете установить как:

.AddJwtBearer(o => o.TokenValidationParameters = new TokenValidationParameters
{
    NameClaimType = "name"
})

Это изменит то, какое утверждение он использует для заполнения имени.

...