Переопределить имена ключей заявок, используемые в JWT в ASP.NET Core - PullRequest
0 голосов
/ 13 мая 2019

Лучшей практикой считается не передавать детали реализации клиентам системы. Например, не отвечать заголовками «Powered by foo» и т. Д.

System.Security.Claims.ClaimTypes содержит все виды Microsoft-ориентированных схем, которые являются подсказкой того, что используется ASP.NET Core.

например, Role заявка: "http://schemas.microsoft.com/ws/2008/06/identity/claims/role".

Итак:

  • Существует ли альтернативный подход к кодированию JWT, чтобы избежать этой проблемы? (без необходимости настраивать весь слой авторизации).
  • Специально для заявки на роль можно переименовать ее ключ? Среда выполнения предоставляет полезное автоопределение и использование в Identity. Я хотел бы продолжить использовать эту функциональность, просто переименуйте ключ заявки.

1 Ответ

1 голос
/ 13 мая 2019

Я думаю, что это немного надумано, поскольку эти типы принадлежат более старым WIF .Поэтому они не указывают на ядро ​​asp.net.

Вы можете использовать альтернативные имена.В полномочии добавьте заявки (вместо ролей), чтобы задать тип заявки.Где тип заявки для роли может быть «роль».

Чтобы отобразить заявку, настройте ресурс:

services
    .AddAuthentication()
    .AddJwtBearer(c =>
    {
        c.TokenValidationParameters.RoleClaimType = "role";
        c.TokenValidationParameters.NameClaimType = "name";
    })

Но остается проблема, заключающаяся в том, что JWT является открытым токеном.,Единственный способ действительно скрыть такую ​​информацию - не помещать ее в маркер и выбирать другой дизайн.

...