Аутентификация и авторизация как центральный MicroService ASP.NET - PullRequest
0 голосов
/ 08 апреля 2019

Я планирую изменить ASP.NET Web API 2.0, который включает в себя аутентификацию и авторизацию и все сервисы, на архитектуру микросервисов.

Мой вопрос, если я создам центральный микросервис для обработки аутентификации и авторизации. Как авторизовать пользователей, отправляющих запрос со своими токенами другим сервисам?

Для уточнения вопроса:

Скажем, у меня есть три микросервиса. 1) ASP NET Framework обрабатывает аутентификацию и авторизацию, которая аутентифицирует пользователя и отправляет токен. 2) Сервис заказов, который будет получать запросы с токеном в своих заголовках. (Ядро ASP NET) 3) Бухгалтерский сервис, который будет получать запросы с токеном в своих заголовках. (Ядро ASP NET)

Как мы авторизуем пользователей, когда они вызывают услугу 2 или 3? И это идеальный подход?

1 Ответ

0 голосов
/ 10 апреля 2019

На основе комментариев выше

Внешний провайдер идентификации

Вам может понадобиться использовать внешний провайдер идентификации, например, identiyserver4, Azure Ad или Auth0 и т. Д. Так как токен может бытьгенерируется токен JWT, вам нужно будет проверить токен.

Проверка токена

Необходимо проверить токен в промежуточном программном обеспечении ядра .Net.Каждый выданный токен имеет полезную нагрузку, и промежуточное ПО вашего приложения проверит каждый входящий токен и отклонит его, если оно не сможет выполнить проверку.Ваше промежуточное программное обеспечение будет заполнять принцип утверждений, который может использоваться в вашем приложении для проверки авторизации, например, роли (если у пользователя есть авторизация для доступа к определенному API).Вы поместите атрибут «authorize» поверх контроллера, и он сделает эту работу.

Вы можете проверить токен вручную, или какой-то поставщик удостоверений даст автоматическую проверку, например, Azure Ad проверит токен и выполнит принцип утверждений, не прилагая особых усилий, просто добавив пакет Azure Ad Nuget.

Есть множество примеров, если вы просто гуглите.Токены могут сбивать с толку, поэтому я предлагаю вам понять токены, например id_token, access_token, обновить токен.Аутентификация потоков и претензий.Было бы легче, если бы вы понимали типы токенов и потоки.Я прилагаю очень простой пример, чтобы дать вам идею.

Пример

...