У меня есть IdentityServer, настроенный только с одним клиентом гибридного потока, который устанавливает "all_claims" для AllowedScopes. На другом компьютере у меня есть приложение MVC, которое подключается к IdSvr для входа пользователя. Он также устанавливает привязку /admin
для IdMgr. Я могу войти в основное приложение и в IdMgr без проблем. Также в основном приложении после входа пользователя в систему я получаю все претензии, как и ожидалось, но не в IdMgr.
Я пытаюсь добавить пользовательскую логику в IdMgr на основе утверждений. Но когда я получаю Thread.CurrentPrincipal
в любом контроллере IdMgr, он пуст! Все, что я получаю, — это объект ClaimsPrincipal, содержащий только утверждения ролей. Он также имеет один объект ClaimsIdentity со следующими свойствами:
AuthenticationType: "Bearer"
IsAuthenticated: true
NameClaimType: "name"
RoleClaimType: "role"
а все остальное ноль. Для пользователя нет даже имени или идентификатора. Почему это так и как я могу получить все претензии в IdentityManager?
Чтобы воспроизвести это, просто проверьте System.Threading.Thread.CurrentPrincipal
в методе GetUsersAsync
в UsersController
.
Ссылка на эту проблему на GitHub