Microsoft Graph登录-个人帐户触发“租户中不存在用户帐户”

问题描述 投票:0回答:1

我的网络应用使用Microsoft Graph API登录用户并访问其日历。尝试使用Live / Hotmail帐户注册时,我目前遇到问题。选择该Live / Hotmail帐户后,Microsoft会将用户发送到带有以下消息的页面:

来自身份提供者live.com的用户帐户'[email protected]'在租户'MY_TENANT_NAME'中不存在,并且无法访问该租户中的应用程序'MY_APP_ID'(MY_APP_NAME)。首先需要将该帐户作为外部用户添加到租户中。注销并使用其他Azure Active Directory用户帐户再次登录。

我的Web应用程序已在Microsoft Azure中注册为“任何组织目录中的帐户(任何Azure AD目录-多租户)和个人Microsoft帐户(例如Skype,Xbox)”。由于这是我要注册的个人帐户,我希望它可以让我注册。我输入了重定向URI和注销URL,未选中“访问令牌”和“ ID令牌”,“实时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,但这并不能解决。非常感谢您的帮助!

azure microsoft-graph
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.