Предоставляет ли Azure AD метод API для программной проверки пользователя?

Я хочу проверять пользователей Azure AD как через веб-приложение, так и через собственное мобильное приложение, хотя Azure AD — не единственный IdP, который я использую.

Я прочитал Статья OAuth2 но у меня возникают проблемы с поиском метода API для проверки пользователя. Один ответ заметки, которые вы можете передать username а также password параметры при извлечении токена, но, похоже, он не проверяется.

Есть пример решения DotNet, но я не знаком с .NET — попытался запустить его и столкнулся с исключением System.TypeLoad (Could not load type of field 'Microsoft.Owin.Security.ActiveDirectory.WsFedMetadataRetriever:CS$<>9__CachedAnonymousMethodDelegate5')

Ранее я пытался настроить решение SimpleSAML, но недостатком является то, что для нативных приложений это требует дополнительной работы и может не подойти.

0

Решение

Я рекомендую перенаправить пользователей на страницу входа в Azure AD.

Технически вы можете попытаться проверить пользователя с помощью гранта Credentials Password Resource Owner. Но это не будет работать всегда.

Это включает в себя отправку запроса POST к конечной точке токена OAuth с данными формы, подобными этой:

grant_type=password&username=user@example.com&password=Password&client_id=your-client-id&client_secret=your-client-secret&resource=resource-you-want-the-token-for

Ресурс может быть https://graph.windows.net так как у вас есть доступ к этому по умолчанию. Если результат успешен, то да, пользователь существует и учетные данные действительны.

Но если это не удается, это может произойти, потому что:

  • Пользователь не существует
  • Пароль неверный
  • У пользователя включена многофакторная аутентификация
  • Пользователь является федеративным пользователем (из предварительной AD), и аутентификация должна выполняться через ADFS.

Так что это просто не может работать в некоторых случаях.

2

Другие решения

Других решений пока нет …