Необходима простая программная аутентификация на Azure AD - PullRequest
0 голосов
/ 20 мая 2019

У нас есть приложение Angular, работающее с серверной частью ASP.NET Core. Мы хотим предоставить нашим пользователям экран входа в приложение Angular, которое собирает имя пользователя и пароль и отправляет его в метод контроллера на нашем внутреннем сервере.

Этот метод контроллера затем должен программно аутентифицировать пользователя в Azure AD на внутреннем сервере. Если они успешно проходят аутентификацию, мы будем читать из нашей собственной базы данных, чтобы получить их роли, и программно добавлять заявки. Наконец, мы создадим токен JWT, чтобы сохранить их идентификационные данные и вернуть их клиенту.

Затем приложение Angular добавит токен в свои заголовки, а основное приложение аутентифицирует запрос API с этим токеном.

Короче говоря, мы хотим пройти аутентификацию в Azure AD и авторизоваться в нашей собственной базе данных. Мы не хотим пересылать их на веб-страницу Azure для входа в систему, а затем пересылаем их обратно в наше приложение. Мы хотим, чтобы все, что было сделано на нашем бэкэнде, сделало UX максимально бесшовным.

Я думал, что это будет супер просто. Существует тонна документации от Microsoft с различными примерами использования ADAL.NET с Azure AD, но ни один из них не делает то, что нам нужно.

Спасибо.

Ответы [ 2 ]

1 голос
/ 21 мая 2019

Кажется, вы хотите собрать учетные данные пользователя в приложении Angular и опубликовать его в ядре ядра .net, а затем завершить аутентификацию в фоновом приложении.

Вы можете использовать Предоставление учетных данных пароля владельца ресурса . Но это не рекомендуется , поскольку поток ROPC требует высокой степени доверия и воздействия на пользователя, и вы должны использовать этот поток только тогда, когда другие, более безопасные потоки не могут быть использованы.

Также:

  • Конечная точка платформы удостоверений Microsoft поддерживает ROPC только для клиентов Azure AD, но не для личных учетных записей. Это означает, что вы должны использовать конкретную конечную точку арендатора (https://login.microsoftonline.com/{TenantId_or_Name}) или конечную точку organizations.
  • Личные учетные записи, приглашенные для клиента Azure AD, не могут использовать ROPC.
  • Учетные записи, не имеющие паролей, не могут войти через ROPC. Для этого сценария мы рекомендуем использовать для вашего приложения другой поток.
  • Если пользователям необходимо использовать многофакторную аутентификацию (MFA) для входа в приложение, они будут заблокированы.

Ссылка: https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc

0 голосов
/ 27 июня 2019

Я не уверен, что вы проданы на 100% из-за необходимости в .NET.Но вы можете вырезать среднего человека в этой ситуации с msaljs .У них есть стартовые шаблоны и документация специально для Angular

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...