Я хочу проверять пользователей 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, но недостатком является то, что для нативных приложений это требует дополнительной работы и может не подойти.
Я рекомендую перенаправить пользователей на страницу входа в Azure AD.
Технически вы можете попытаться проверить пользователя с помощью гранта Credentials Password Resource Owner. Но это не будет работать всегда.
Это включает в себя отправку запроса POST к конечной точке токена OAuth с данными формы, подобными этой:
grant_type=password&[email protected]&password=Password&client_id=your-client-id&client_secret=your-client-secret&resource=resource-you-want-the-token-for
Ресурс может быть https://graph.windows.net
так как у вас есть доступ к этому по умолчанию. Если результат успешен, то да, пользователь существует и учетные данные действительны.
Но если это не удается, это может произойти, потому что:
Так что это просто не может работать в некоторых случаях.
Других решений пока нет …