Выпуск JWT-токена на предъявителя с использованием Identity Core
У меня есть мобильное приложение, которое использует вызовы RESTful для API ASP.NET Core и приложение Angular 2, которое также выполняет вызовы RESTful. Я также использую Identity Core для аутентификации пользователей (Identity 3.0).
Я хочу выпустить токен-носитель на основе платформы Identity и аутентифицировать пользователей, используя Предоставление полномочий для пароля владельца ресурса (это просто дает моему веб-сайту имя пользователя и пароль, и он выдаст токен, поскольку это доверенная среда).
- Существует ли простая настройка в ASP.NET CORE 1.0 RTM для этого?
- https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server Я смотрю на этот, и он выглядит как уменьшенная версия OpenIdDict, но автор упоминает, что это для Оуин / Катана, я не использую любой.
- OpenIdDict - это фреймворк, который делает это, но сначала это альфа-версия, а во-вторых, требуется отдельный веб-сайт, который потребует дополнительного обслуживания и снижения производительности для связи через HTTP с другим сервером.
- IdentityServer4, который выглядит слишком большим для того, чего я хочу достичь, и я не уверен, что он интегрируется с Identity Core, и меня интересует только предоставление пароля. И, похоже, для этого нужен отдельный сайт.
Буду признателен, если вы проясните картину пунктов выше и дадите мне знать, если это мои единственные варианты или я что-то упустил.
Я не хочу быть публичным провайдером идентификации, я просто хочу выпускать токены для своих собственных пользователей.
1 ответ
AspNet.Security.OpenIdConnect.Server Я смотрю на этот, и он выглядит как уменьшенная версия OpenIdDict, но автор упоминает, что это для Оуин / Катана, я не использую любой.
AspNet.Security.OpenIdConnect.Server (под кодовым названием ASOS) на самом деле является не "уменьшенной версией OpenIddict", а низкоуровневой средой сервера OAuth2/OpenID Connect, которую можно использовать для создания собственного сервера авторизации / провайдера идентификации.
Он не зависит от стека членства (например, ASP.NET Core Identity) и может быть виртуально добавлен в любую существующую среду.
Обратите внимание, что пока есть версия OWIN/Katana (названная Owin.Security.OpenIdConnect.Server
), основные биты предназначены для ASP.NET Core и, конечно, совместимы как с.NET Desktop, так и с.NET Core.
Если вы хотите узнать больше об этом проекте, я бы рекомендовал прочитать эту серию публикаций в блоге: http://kevinchalet.com/2016/07/13/creating-your-own-openid-connect-server-with-asos-introduction
OpenIdDict - это фреймворк, который делает это, но сначала это альфа-версия, а во-вторых, требуется отдельный веб-сайт, который потребует дополнительного обслуживания и снижения производительности для связи через HTTP с другим сервером.
Хотя это правда, что OpenIddict доступен только в виде предварительных альфа-сборок, использование его в отдельном проекте не является обязательным (и даже не рекомендуется): вы, конечно, можете добавить его в свой основной проект.
Так как вы пытаетесь реализовать грант ROPC, я рекомендую прочитать эти записи в блоге:
- Настройка ASP.NET v5 (vNext) для использования токенов JWT (с использованием OpenIddict)
- Авторизация ваших запросов.NET Core MVC6 API с помощью OpenIddict и Identity
IdentityServer4, который выглядит слишком большим для того, чего я хочу достичь, и я не уверен, что он интегрируется с Identity Core, и меня интересует только предоставление пароля. И, похоже, для этого нужен отдельный сайт.
AFAIK, IdentityServer4 не предлагает никакой официальной интеграции IdSrv/Identity (пока?), Но я уверен, что сообщество уже разработало несколько мостов.