我的 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/