Azure SSO错误:当提示=同意且用户是真实帐户时,AADSTS50020

时间:2016-06-06 17:06:29

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

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

重定向用户时,我们没有使用'prompt'参数。我们不喜欢这样,因为如果用户已经登录azure然后他点击链接:被重定向到azure然后自动重定向到我的网站而不接受任何东西。

现在,我们希望用户接受权限。所以我们在重定向用户时添加'prompt = consent'参数。

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

AADSTS50020:来自身份提供商'live.com'的用户帐户'xxx@outlook.com'在租户'XXX'中不存在,并且无法访问该租户中的应用程序'xxx'。该帐户需要首先作为外部用户添加到租户中。注销并使用其他Azure Active Directory用户帐户重新登录。

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

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

1 个答案:

答案 0 :(得分:3)

仅对v2端点提供对LiveID的支持。

根据您发布的内容,您即可访问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找到更多信息。