Я использую API Azure Graph для получения всей информации о пользователе от Azure AD. После этого я добавляю этих пользователей в свое приложение. На странице входа я хочу, чтобы они вводили свое имя пользователя и пароль, который они используют в AD. Я не хочу хранить свой пароль в своей таблице, но я хочу выполнить проверку подлинности. Есть ли услуга отдыха в Graph API, которая делает это?Аутентификация импортированного пользователя Azure AD с использованием Graph API
ответ
На странице входа я хочу, чтобы они вводили свое имя пользователя и пароль, которые они используют в AD. Я не хочу хранить свой пароль в своей таблице, но я хочу выполнить проверку подлинности. Есть ли услуга отдыха в Graph API, которая делает это?
Это не относится к остальной услуге о Graph API. Он определяется тем, как вы защищаете свое обслуживание.
Например, Microsoft предоставляет API Azure Graph, который защищен Azure AD. И Azure AD поддерживает OAuth 2.0, чтобы получить токен доступа для доступа к защищенному ресурсу.
В описанном вами сценарии вы можете использовать OAuth 2.0 поток предоставления кода. Пожалуйста, смотрите рисунок ниже шаги подробно для этого потока:
Вот пример кода для использования этого потока для справки:
Мой логин-портал запрашивает имя пользователя и пароль. После предоставления имени пользователя я могу получить идентификатор клиента, идентификатор арендатора и секретный ключ (который я использую для создания токена доступа). Теперь я могу подключиться к Azure AD с помощью этого токена доступа, это означает, что эти три поля, которые я предоставил правильно во время конфигурации, являются действительным Oauth. Я хочу, чтобы аутентифицировать пользователя, который пытается войти в мое приложение, используя их учетные данные ADU AD – Jerry
@Jerry У вас есть проблема в настоящее время. Я не могу следить за тем вопросом, с которым вы обращались. –
Да. Я могу импортировать пользователей из Azure Directory, используя токен OAuth. Теперь, когда импортированный пользователь пытается войти в мое приложение, я хочу проверить, вводят ли они правильные учетные данные для их азбуки AD. В настоящее время я звоню в эту службу, чтобы получить профиль пароля пользователя и сравнить пароль с введенным паролем. https://graph.windows.net/%s/users/"+userName+"/?api-version=2013-04-05. Это не похоже на правильный путь, и более того, я получаю пароль как null в этой службе. – Jerry
Это плохая идея хранить имя пользователя/пароли в вашей базе данных. Общий подход заключается в том, чтобы приложение перенаправляло их на Azure AD для аутентификации и возвращало Azure AD претензии, содержащие некоторую информацию о пользователе. Вы можете сохранить эту информацию в своей базе данных, чтобы идентифицировать их, когда они снова войдут в ваше приложение. –
Я не храню их пароль в своем db. Я предоставляю аутентификацию на основе SAML. Кроме того, я хочу разрешить им войти в систему через мою обычную страницу входа, предоставляя свои учетные данные. Я его не буду хранить. Я просто хочу их аутентифицировать, используя API Azure AD. – Jerry