【问题标题】:Microsoft Identity Platform with web application (In Python)***带有 Web 应用程序的 Microsoft 身份平台(在 Python 中)***
【发布时间】:2020-05-12 17:03:48
【问题描述】:

我一直在使用“Microsoft Identity Platform 与 Python Web 应用程序的集成”(https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v2-python-webapp)。我正在尝试在 python Web 应用程序的帮助下访问 Microsoft 的图形 API。

为了快速,我的问题是:成功接受微软帐户的凭据后,它在网页上向我显示了这个问题:我们无法完成您的请求:invalid_request:输入参数的提供值“redirect_uri”无效。预期值是一个 URI,它与为此客户端应用程序注册的重定向 URI 匹配。

我尝试了很多解决方案,但都没有奏效。我也试过这个解决方案 - https://github.com/microsoftgraph/msgraph-training-uwp/issues/15

但这并不能解决 python 的问题。问题依旧。

我按照说明做了一切 -

  1. 从 microsoft graph api 文档 (https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v2-python-webapp) 下载 python 项目

  2. 已在 Azure App 注册中注册。

  3. 身份验证 - 重定向 Uri - http://localhost:5000/getAToken(文档建议的 url) -> 我在 azure 中添加了相同的 url,我也尝试将 'https' 和 'http' 都放在。

  4. 已获得密钥。 (根据证书和秘密)

  5. 添加了所需的权限。

  6. 我更改了 app.config 文件,从我的 azure 应用注册中获取了所有详细信息(我正在添加下面的代码) 7.我没有更改我的 app.py 文件中的任何内容。

  7. 启动了Flask server,终于打开了需要的localhost地址。

请帮助我在哪里出错以及我必须做出哪些更正。我会很感激的。 提前谢谢你。

App.config

import os

CLIENT_SECRET = "my key" 

AUTHORITY = "https://login.microsoftonline.com/common"  # For multi-tenant app

CLIENT_ID = "my id here"

REDIRECT_PATH = "/getAToken"    

ENDPOINT = 'https://graph.microsoft.com/v1.0/users'  

SCOPE = ["User.ReadBasic.All"]

SESSION_TYPE = "filesystem"  # So token cache will be stored in server-side session

【问题讨论】:

    标签: python azure-active-directory adal msal microsoft-graph-mail


    【解决方案1】:

    我刚刚尝试了您发布的示例,它对我来说效果很好。

    假设您确定烧瓶在端口 5000 上运行,

    请尝试将您的授权网址更改为https://login.microsoftonline.com/yourtenantid

    我尝试了 common 并且失败了。带有不同的信息。但类似。

    【讨论】:

    • 是的,我确定它在端口 5k 上运行,否则页面不会仅加载。
    • 我之前尝试使用带有我的tenenat-i​​d 的 url 运行,但它向我显示了这个错误 -" 租户“Microsoft 服务”中不存在所选用户帐户并且无法访问该应用程序,该帐户需要首先添加为租户中的外部用户。请使用不同的帐户。“我发现为我工作的唯一解决方案是使用'common'。那么如何纠正这个问题?
    • 啊...这改变了事情...当您创建应用注册时,您需要选择支持的帐户类型:任何组织目录中的帐户(任何 Azure AD Ddirectory-multitenant)和个人 Microsoft 帐户(例如 Skype、Xbox)
    • 在你告诉我之后我尝试了这个解决方案,但不幸的是这也不起作用。可能是因为我使用 Microsoft 帐户而不是工作/学校帐户登录。我在其他论坛问题上发现了这个。是这个问题吗?
    【解决方案2】:

    我的问题已经解决了,请经常检查这些:

    1. 创建应用注册时,您需要选择支持的帐户类型:任何组织目录中的帐户(任何 Azure AD Ddirectory-多租户)和个人 Microsoft 帐户。

    2. 在 Web 配置中输入您的重定向 URI,我在 SPA 中做错了。

    3. 不要在浏览器中输入http://127.0.0.1:5000/,而是输入“http://localhost:5000/”。我知道它是一样的,但它对我产生了影响。

    4. 您不能为 Azure Active Directory 使用免费的 Microsoft 帐户,您必须使用付费的高级版本。您可以提供卡详细信息并免费使用一个月。

    希望对您有所帮助。谢谢你

    【讨论】:

      猜你喜欢
      • 2021-02-06
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-24
      • 2020-11-07
      • 2018-11-07
      • 1970-01-01
      相关资源
      最近更新 更多