У меня есть образец сервера Auth, настроенного с использованием Thinktecure.IdentityServer.v3, к которому также подключен Thinktecture.IdentityManager. Я также использую asp.net Identity и Entity Framework, поэтому у меня подключены связанные плагины от Thinktecture. Соответствующие пакеты NuGet ниже
<package id="Thinktecture.IdentityManager" version="1.0.0-beta3" targetFramework="net451" />
<package id="Thinktecture.IdentityManager.AspNetIdentity" version="1.0.0-beta3" targetFramework="net451" />
<package id="Thinktecture.IdentityModel.Core" version="1.3.0" targetFramework="net451" />
<package id="Thinktecture.IdentityServer.v3" version="1.0.0-rc" targetFramework="net451" />
<package id="Thinktecture.IdentityServer.v3.AspNetIdentity" version="1.0.0-rc" targetFramework="net451" />
<package id="Thinktecture.IdentityServer.v3.EntityFramework" version="1.0.0-rc" targetFramework="net451" />
Я зарегистрировал IdentityManager и IdentityServer в соответствии с примерами проектов, включенными в репозиторий образцов IdentityServer.
Я успешно создал пользователя с помощью IdentityManager и создал утверждение роли с именем «Admin». Я добавил пользователя в эту роль / заявку.
Используя «Неявный клиент JavaScript» из примера «Клиенты», я вхожу в систему через свой сервер аутентификации с правильными учетными данными. Я получил вызов, как и следовало ожидать, а затем успешно вернулся в клиентское приложение с токеном идентификации.
Неявный клиент JavaScript позволяет вам просматривать содержимое вашего токена идентификации. В токене нет списка утверждений «роли» ... что я понимаю, поскольку эти утверждения специфичны для asp.net Identity.
Мой вопрос на самом деле ... как включить эти утверждения ролей в токен удостоверения?
Нужно ли мне создавать настраиваемую область с именем «роли», применять ClaimsRule для возврата утверждений типа «роль», а затем пытаться реализовать это ClaimsRule в настраиваемом ClaimsProvider? Если да, то я не видел, как правильно реализовать ClaimsRule в какой-либо документации.
Тот факт, что asp.net Identity, кажется, предназначен для поддержки сразу после окончательной первоначальной версии ... может быть, есть более простой способ?
Если потребуется дополнительная информация или образцы конфига, я могу их предоставить :)