Azure SSO 错误 : AADSTS50020 when prompt=consent and user is a live account

标签 azure oauth-2.0 single-sign-on azure-active-directory

我的 Azure ActiveDirectory 上有一个 MUTITENAT 应用程序。我用它来登录我网站上的用户。

重定向用户时,我们没有使用“提示”参数。我们不喜欢这样,因为如果用户已经登录 azure,然后单击链接:将重定向到 azure,然后自动重定向到我的网站而不接受任何内容。

现在,我们希望用户接受权限。因此,我们在重定向用户时添加“prompt=consent”参数。

问题是,现在每个尝试登录的真实帐户都会收到带有以下错误消息的 Azure 错误页面:

AADSTS50020:用户帐户'[email protected]来自身份提供商“live.com”的“身份提供商”在租户“XXX”中不存在,并且无法访问该租户中的应用程序“xxx”。需要先将该帐户添加为租户中的外部用户。注销并使用不同的 Azure Active Directory 用户帐户重新登录。

有关错误和我的实际配置的更多详细信息:

  • 我使用通用端点来调用 api(/common/oauth2/authorize 和/common/oauth2/token)
  • 即使使用我的租户上的真实帐户,我也尝试过登录。也失败了
  • 此外,当我尝试使用 Azure 帐户(无论是在我的租户还是其他租户上)登录时,它工作正常(使用代码参数将用户重定向到我的网站)。

最佳答案

对 LiveID 的支持仅在 v2 端点中可用。

根据您发布的内容,您正在访问 v1 端点。 为了转移到 v2,您需要调用

/common/oauth2/v2.0/authorize
/common/oauth2/v2.0/token

或者,如果您使用元数据端点来发现身份验证端点:

https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration

作为使用 v2 端点的一部分,您还需要调整一些其他内容,例如使用范围而不是资源。此外,v2 端点尚不支持所有流。

您可以在 Azure AD App Model V2 documentation 中找到更多信息.

关于Azure SSO 错误 : AADSTS50020 when prompt=consent and user is a live account,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37663124/

相关文章:

php - 如何使用 Check_MK 实现单点登录功能?

authentication - kerberos:客户端如何知道要请求票证的服务名称?

azure - Azure 上 'Work pace based Application Insight' 的 Terraform 部署

javascript - Github oauth 过滤掉有问题的仓库

Azure 前门忽略错误 403 : Webapp is stopped(for azure functions not for webapp)

javascript - WinRT Javascript 应用程序中的 Google API OAuth 2.0

rest - OAuth REST access_token 和 instance_url 到期时间?

single-sign-on - SAML 2.0 是否允许将 SP 数据发送到 IdP?

azure - 是否可以通过 azure databricks 连接到无服务器 SQL 池?

Azure 应用程序网关返回 502 错误网关 - 运行状况检查和网络正常