Azure AD OAuth2 - 跳过帐户选择

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

我正在使用 Microsoft Azure AD 和 OAuth2 使用授权代码获取访问 token :

  1. 构建登录网址并重定向至该网址

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

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

  • 获取访问 token (POST)

  • 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后缀的帐户?是否可以使用普通租户甚至特定租户?

    目标:

    我有一个组策略可以在启动时打开一些网页,并且我希望用户自动登录到该网站。即使单击一下也会毁掉这一点。如果重要的话我会使用 PHP。

    • 旧登录屏幕:

    enter image description here

    • 新的登录屏幕:

    enter image description here

    最佳答案

    您可以使用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 端点,与文档所述不同。

    关于Azure AD OAuth2 - 跳过帐户选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47427177/

    相关文章:

    c# - 如何以编程方式从 Azure DevOps 下载最新的构建工件?

    azure - 尝试使用 Microsoft Graph API 获取 Outlook 日历事件时出现权限问题 - 访问被拒绝。检查凭据并重试

    java - 谷歌日历API : How to create/edit/delete events without Google password?

    flutter - 多个设备(android、ios 和 web)使用相同的 google clientId 和 clientSecret

    javascript - Google Javascript API 401 Fusion Table 凭证无效

    php - 如何在 php 中使用 Google 我的商家 API

    azure - 基于 Linux JNA 的亲和性因加载失败而无法使用

    python - Azure 表存储 Python SDK,语法无效

    sharepoint - 为 SharePoint Online O365 构建 Multi-Tenancy 应用程序

    oauth-2.0 - 为什么使用 Oauth2 时需要指定两次重定向 uri