Аутентификация пользователя в Azure AD (проверка имени пользователя и пароля) с помощью функций Azure - PullRequest
0 голосов
/ 16 января 2019

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

1 Ответ

0 голосов
/ 16 января 2019

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

Обходной путь - ROPC - Предоставление учетных данных пароля владельца ресурса (не рекомендуется, несколько проблем)

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

Это нарушает рекомендации по безопасности, а также не работает с пользователями MFA и федеративной аутентификации . Использование этого гранта крайне нежелательно, так как оно потенциально опасно для атаки, поэтому не рекомендуется.

Если имя пользователя или пароль неверны, вы получите исключение, в противном случае вы получите верный токен, который означает, что учетные данные хороши.

Вот несколько ссылок, которые охватывают детали ROPC (и рекомендуем не использовать его одновременно ..):

Например, код будет выглядеть так для нативного приложения.

result = await context.AcquireTokenAsync(resource, clientId, new UserPasswordCredential("john@contoso.com", johnsPassword));

Другие ссылки

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