IdentityServer4 Обновление значения заявки из проекта API - PullRequest
0 голосов
/ 05 сентября 2018

У меня довольно простой, простой вопрос, и я был бы признателен, если бы вы могли предложить решение.

У меня есть два проекта:

  • Проект IdentityServer4.
  • Проект API.

Проект API защищен с помощью IdentityServer4, как показано ниже:

services.AddAuthentication("Bearer")
    .AddIdentityServerAuthentication(options =>
    {
        options.Authority = "http://localhost:5000";
        options.RequireHttpsMetadata = false;

        options.ApiName = "TestAPI";
        options.ApiSecret = "Password"
    });

До этого момента все работало как положено.

Мой вопрос из проекта API: как я могу выполнить операции обновления на IdentityServer4, например, обновление значения претензии пользователя?

1 Ответ

0 голосов
/ 06 сентября 2018

Если я правильно понял ваш вопрос - вы хотите изменить утверждения внутри API, который защищен IDS, выдавшим требования.

В общем - это невозможно и не правильно.

Почему невозможно?

Класс ClaimsPrincipal и его свойство Claims доступны только для чтения (у него есть только метод получения, но нет установки):

public virtual IEnumerable<Claim> Claims { get; }

Почему это не правильно?

Обычно заявки содержат некоторую информацию об аутентификации (роли, имя пользователя, некоторую информацию о профиле пользователя и т. Д.). Эти данные должны быть выданы authentication provider (в вашем случае IDS), и они не должны быть изменены кем-то / чем-то, чья авторизация зависит от этих данных аутентификации.

PS: Из любопытства - какие именно претензии вы хотите изменить, или это был просто общий вопрос?

...