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

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

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

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

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

问题是现在每个尝试登录的实时帐户都会收到一个 Azure 错误页面,其中包含以下错误消息:

A​​ADSTS50020:身份提供商 'live.com' 的用户帐户 'xxx@outlook.com' 在租户 'XXX' 中不存在,无法访问该租户中的应用程序 'xxx'。需要先在租户中将账号添加为外部用户。注销并使用不同的 Azure Active Directory 用户帐户重新登录。

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

仅 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 中找到更多信息。