Azure AD OAuth2 - 跳过帐户选择

时间:2017-11-22 05:06:02

标签: azure oauth oauth-2.0 azure-active-directory

我使用Microsoft Azure AD和OAuth2使用授权代码获取访问令牌:

  1. 构建登录网址并重定向到它
  2. https://login.microsoftonline.com/common/oauth2/authorize?client_id=xxx&response_type=code&redirect_uri=yyyy&response_mode=query&scope=zzzz&state=1111

    1. 从登录页面返回并获取代码

    2. 获取访问令牌(POST)

    3. https://login.microsoftonline.com/common/oauth2/token?client_id=xxxx&redirect_uri=yyyy&code=zzzz&grant_type=authorization_code&client_secret=1111

      一切正常,但在第1步和第2步之间,最终用户必须选择使用哪个帐户(请参阅最后的登录屏幕图片)。

      此时用户始终已登录login.microsoftonline.com ,管理员已授予整个组织同意使用该应用程序。

      问题:

      有没有办法跳过这个,例如使用可选参数指示自动使用@ company.com后缀的帐号?是common租户还是特定租户?

      目标:

      我有一个组策略在启动时打开一些网页,我希望用户自动登录到这个网站。即使只点击一下就会破坏这如果重要的话,我正在使用PHP。

      • 旧登录界面:

      enter image description here

      • 新登录界面:

      enter image description here

1 个答案:

答案 0 :(得分:3)

您可以使用domain_hint参数(domain_hint=company.com):

https://login.microsoftonline.com/common/oauth2/authorize?domain_hint=company.com&client_id=xxx&response_type=code&redirect_uri=yyyy&response_mode=query&scope=zzzz&state=1111

更多信息:

http://www.cloudidentity.com/blog/2014/11/17/skipping-the-home-realm-discovery-page-in-azure-ad/

这适用于v1和v2端点,与文档说的不同。