Как добавить утверждения в контекст для GetProfileDataAsync и IsActiveAsync для пользовательской службы пользователя?
Я реализую пользовательский сервис, который хранит информацию о пользователе в хранилище таблиц Azure. Я хотел бы использовать значение идентификатора клиента как часть моего ключа раздела, но утверждения, доступные в GetProfileDataAsync и IsActiveAsync, представляют собой всего 5 встроенных утверждений (sub, name, amr, idp, auth_time).
Я получаю ID арендатора от моего провайдера идентификации, и он включается в качестве требования в мой токен доступа и токен идентификации. Как я могу сделать это доступным для этих методов?
1 ответ
Когда AuthenticateLocal
это вызов, вы возвращаете AuthenticateResult
указать результат аутентификации. Если это успешно, вы используете перегрузку ctor, которая принимает subject
а также name
ценности. Там также необязательно claims
коллекция. Если вы передаете значения для claims
затем вы добавляете свои собственные пользовательские утверждения в файл cookie аутентификации на IdentityServer. Эти претензии затем являются частью Subject
для GetProfile
API (при условии, что запросы в эти API выполняются через браузер, например, из запроса на авторизацию). Затем вы можете проверить эти претензии и использовать их по своему усмотрению.
Если запрос не через браузер, то единственное требование, которое у вас есть на Subject
это уникальный идентификатор пользователя (который является sub
претензии).