Заявления Danamic в IdentityServer

Я смотрю образец AspNetIdentity_2fa и пытаюсь его изменить включить некоторые динамические претензии для пользователей. Назовем его calculated_value утверждение, которое создается динамически при аутентификации пользователя, а затем включается в список утверждений пользователя и передается с токеном аутентификации. Я знаю, что могу создать отдельный веб-API, чтобы получить это значение, но поскольку это небольшие данные и они необходимы сразу после аутентификации пользователя, я подумал, что просто передам его как требование. В примерах я вижу, что утверждения всегда исходят из статических или жестко закодированных данных. Как я могу создавать заявки с динамической / поздней привязкой?

Спасибо!


person orad    schedule 15.04.2015    source источник


Ответы (1)


Некоторое время назад я потратил некоторое время на попытки интегрировать Identity Server v3 с Active Directory. Я хотел аутентифицировать пользователей через AD и читать «заявки» из AD. Для этого я предоставил индивидуальную реализацию IUserService. Это было более или менее основано на реализации этого интерфейса в памяти, то есть InMemoryUserService.

Когда ваша индивидуальная реализация будет готова, вы должны ее зарегистрировать. Однако пример проекта AspNetIdentity_2fa уже регистрирует пользовательскую реализацию IUserService, то есть UserService (просто найдите проект для этого класса). Он происходит от AspNetIdentityUserService, который реализует IUserService.

Итак, вместо того, чтобы предоставлять совершенно новую реализацию, попробуйте ее изменить. Я думаю, что вам следует взглянуть на методы AuthenticateLocalAsync, AuthenticateExternalAsync и GetProfileDataAsync (см. InMemoryUserService для справки) и переопределить их. Первые 2 используются для аутентификации пользователей, а последний - для чтения запрошенных утверждений для пользователей.

person Michał Komorowski    schedule 15.04.2015
comment
Отлично, ваше руководство привело меня к решению. Я получил это, переопределив GetClaimsFromAccount. Спасибо! - person orad; 16.04.2015