почему я получаю заявки на роль иногда в пространстве имен, а иногда без пространства имен - PullRequest
0 голосов
/ 13 июня 2018

Я использую IdentityServer4 для аутентификации.Некоторые клиенты используют эталонные токены, некоторые клиенты используют самодостаточные токены.

  • Для эталонных токенов я использую IntrospectionClient для обмена токенами доступа для утверждений.
  • Для самосодержащих токенов я использую "JwtSecurityTokenHandler.ValidateToken "для обмена токена доступа для утверждений.

Для первого я получаю заявки на роль с ключом" role ", для второго я получаю заявки на роль с ключом" http://schemas.microsoft.com/ws/2008/06/identity/claims/role"

Есть идеи, как выстроить это в одну клавишу для обоих сценариев?

1 Ответ

0 голосов
/ 13 июня 2018

Вы не говорите, какую технологию используют ваши «автономные» клиенты, но я предполагаю, что это некий .NET.

Вот решения для:

.NET Core:

В вашем Startup.cs (клиентского проекта) добавьте эту строку:

JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();

Документация для .NET Core.

.NET Framework:

Снова в Startup.cs добавьте следующее:

AntiForgeryConfig.UniqueClaimTypeIdentifier = Constants.ClaimTypes.Subject;
JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary<string, string>();

Документация для .NET Framework.

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

...