Почему вход в приложения через поток OAuth ROPC не регистрируется в журналах входа AAD? - PullRequest
1 голос
/ 26 апреля 2019

Когда я использую поток ROPC (Resource Owner Password Credential) в своем приложении, чтобы разрешить пользователям входить в мое приложение, почему я не вижу в нем никаких журналов входа в AAD?

1 Ответ

1 голос
/ 26 апреля 2019

ROPC определен в протоколе OAuth2: https://tools.ietf.org/html/rfc6749#section-1.3.3 и не включен в OpenID Connect. Ему просто нравятся другие потоки в OAuth2, они предназначены для защиты ресурсов API, а не для аутентификации пользователей.

Поведение ROPC в AAD :

Для потока ROPC пользователь вводит свое имя пользователя и пароль AAD на стороне клиентского приложения. Затем клиент отправляет учетные данные пользователя в AAD. Это показывает, как это ниже картина: enter image description here

Такое поведение может вызвать основной риск: клиент может сохранить и загрузить учетные данные AAD пользователя и использовать их для других целей. Он может играть как фишинговое приложение для получения учетных данных AAD пользователя.

Как правило, при аутентификации на основе утверждений клиенты должны просто получать атрибуты пользователя (например, утверждения в OIDC id_token, токен SAML), выданные доверенным IDP, для идентификации пользователя. Клиент не должен получать учетные данные пользователя для других поставщиков удостоверений.

Почему он все еще поддерживается в AAD?

Мы видим, что многие наши клиенты хотят использовать поток ROPC для делегирования полномочий пользователя для автоматического запуска задания. Некоторые из наших клиентов используют ROPC для собственного настраиваемого входа в систему. Со стороны Microsoft, AAD поддерживает поток ROPC, поскольку мы действительно понимаем, что это необходимо в некоторых особых сценариях.

Итак, какое приложение мы можем использовать в нем ROPC?

  1. Сначала все клиентские приложения должны быть публичными (Native App).
  2. В однопользовательских приложениях Microsoft, таких как Powershell.
  3. В пользовательских / доверенных приложениях.

Как можно избежать фишинга сторонним приложением, которое запрашивает вход AAD?

  • Убедитесь, что на странице запрашивается ввод учетных данных пользователя AAD на странице входа в систему AAD. Вы также можете проверить домен в URL. Начать следует с «https://login.microsoftonline.com/”.

  • Как правило, мы не должны вводить имя пользователя и пароль вместе в одной форме. Если стороннее приложение попросит вас ввести имя пользователя и пароль AAD в одной форме, вам нужно быть осторожным и не пытаться войти в систему с помощью учетных данных AAD здесь. Поскольку AAD не предоставляет никакой страницы входа, чтобы позволить вам ввести свои учетные данные пользователя в одной форме в настоящее время.

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

...