Microsoft Graph登录-个人帐户触发器&用户帐户在租户中不存在 [英] Microsoft Graph Login - Personal accounts trigger "User account does not exist in tenant"

查看:12
本文介绍了Microsoft Graph登录-个人帐户触发器&用户帐户在租户中不存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Web应用使用Microsoft Graph API登录用户并访问他们的日历。我当前在尝试注册Live/Hotmail帐户时遇到问题。选择该Live/Hotmail帐户后,Microsoft会将用户发送到一个页面,并显示以下消息:

来自身份提供程序‘live.com’的用户帐户‘xxxxx@yyyy.com’在租户‘My_Tenant_Name’中不存在,无法访问该租户中的应用程序‘My_APP_ID’(My_APP_NAME)。首先需要将该帐户添加为租户中的外部用户。注销,然后使用其他Azure Active Directory用户帐户重新登录。

我的Web应用程序在Microsoft Azure中注册为"任何组织目录(任何Azure AD目录-多租户)中的帐户和个人Microsoft帐户(如Skype、Xbox)"。由于这是我试图注册的个人帐户,我以为它会让我注册。我已输入重定向URI&A注销URL,未选中"访问令牌"和"ID令牌","Live SDK支持"为"是","默认客户端类型"为"否"。

我正在使用Python MSAL将用户发送到MS:

def _build_msal_app(cache=None):
    return msal.ConfidentialClientApplication(
        MY_CLIENT_ID, authority=MY_AUTHORITY,
        client_credential=MY_CLIENT_SECRET, token_cache=cache)

# Send user to MS Login
session["state"] = str(uuid.uuid4())
auth_url = _build_msal_app().get_authorization_request_url(
            MY_SCOPES,
            state=session["state"],
            redirect_uri=MY_REDIRECT_URI)

return flask.redirect(auth_url)

我怀疑我的应用程序注册不知何故损坏了,所以我注册了第二个应用程序并更新了代码中的ID,但这并没有修复它。如有任何帮助,我们不胜感激!

推荐答案

如评论中所述,为了同时支持"个人微软"帐户和"工作/学校"帐户,您的授权请求必须发送到common终结点,即https://login.microsoftonline.com/common

您可能会发现此链接有助于了解不同的终结点:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols#endpoints

这篇关于Microsoft Graph登录-个人帐户触发器&用户帐户在租户中不存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆