MS OAuth-аутентификация - только рабочая учетная запись - PullRequest
0 голосов
/ 08 апреля 2020

Для моего приложения я использую аутентификацию OAuth. Я знаю электронную почту пользователя, поэтому я передаю параметр login_hint конечной точке авторизации: https://login.microsoftonline.com/TID/oauth2/v2.0/authorize?login_hint=XXX@domain.com. Существует вероятность, что у пользователя есть обе учетные записи personal и work для электронной почты, например:

enter image description here Есть ли какой-либо параметр или способ, как «настроить» конечную точку предложить только work аккаунт? Я не хочу, чтобы пользователь входил в личный кабинет.

1 Ответ

1 голос
/ 09 апреля 2020

(Непонятно, как этот вопрос связан с командами Microsoft - пожалуйста, подтвердите, есть или нет, поэтому я могу изменить тег при необходимости.)

У пользователей также может быть несколько «рабочих» учетных записей. и "работа" относится к конкретному c Azure AD / Office 365 арендатору. У вас может быть рабочий адрес электронной почты для пользователя, компания которого не использует Azure AD или Google GSuite, и хотя это «рабочий» адрес электронной почты, он также не будет работать.

В общем случае нет никакого способа сказать, что такое «рабочая» электронная почта; реальный вопрос в том, является ли это действительной учетной записью внутри Azure AD / Office 365 арендатора? И единственный способ узнать это наверняка - заставить их войти в систему этого арендатора (TID в URL); если это работает, то это действительная учетная запись. Если нет, то это не действительный аккаунт. login_hint на самом деле поможет с этим, потому что он попробует «тихий вход», при котором пользователь будет входить без необходимости повторного ввода его учетных данных (что-то вроде SSO, но на самом деле это не SSO; на короткое время появится диалоговое окно входа в систему). ). Если пользователь еще не вошел в систему на этом устройстве для этого арендатора, он увидит опыт входа в систему. Я думаю, это то, что вы хотите.

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