带有 Web 应用程序的 Microsoft Identity Platform(在 Python 中)***
Microsoft Identity Platform with web application (In Python)***
我一直在与 'Integration of Microsoft Identity Platform with a Python web application' ( https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v2-python-webapp) 合作。我试图在 python 网络应用程序的帮助下访问 Microsoft 的图表 API。
快速地说,我的问题是:成功接受微软帐户的凭据后,它在网页上向我显示此问题:我们无法完成您的 request:invalid_request:为输入参数 'redirect_uri' 提供的值无效。预期值是与为此客户端应用程序注册的重定向 URI 相匹配的 URI。
我尝试查看许多解决方案,但其中 none 有效。我也试过这个解决方案 -
https://github.com/microsoftgraph/msgraph-training-uwp/issues/15
但这并没有解决 python 的问题。问题还是一样。
我按照说明做了一切 -
从 Microsoft Graph api 文档下载 python 项目 (https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v2-python-webapp)
在Azure App注册中注册。
身份验证 - 重定向 URI - http://localhost:5000/getAToken(文档建议 url)
-> 我在 azure 中添加了相同的 url,我也尝试将 'https' 和 'http' 都放入。
获得秘钥。 (根据证书和秘密)
添加了所需的权限。
我更改了 app.config 文件,从我的 azure 应用程序注册中获取所有详细信息(我正在添加下面的代码)
7.I 没有更改我的 app.py 文件中的任何内容。
启动Flask服务器,终于打开了需要的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
我刚刚尝试了您发布的示例,对我来说效果很好。
假设您确定 flask 在端口 5000 上 运行,
请尝试将您的权限URL更改为https://login.microsoftonline.com/yourtenantid
我尝试使用 common 但失败了。与不同的消息。但相似。
我的问题已解决,请经常检查这些:
创建应用程序注册时,您需要select支持的帐户类型:任何组织目录中的帐户(任何 Azure AD Ddirectory-multitenant)和个人 Microsoft 帐户。
在 Web 配置中输入您的重定向 URI,我在 SPA 中做错了。
而不是在浏览器中键入 http://127.0.0.1:5000/ type 'http://localhost:5000/'。我知道它是一样的,但它对我产生了影响。
您不能为 Azure 活动目录使用免费的 Microsoft 帐户,您必须使用付费高级版本。您可以提供卡的详细信息并免费使用一个月。
希望对您有所帮助。谢谢
我一直在与 'Integration of Microsoft Identity Platform with a Python web application' ( https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v2-python-webapp) 合作。我试图在 python 网络应用程序的帮助下访问 Microsoft 的图表 API。
快速地说,我的问题是:成功接受微软帐户的凭据后,它在网页上向我显示此问题:我们无法完成您的 request:invalid_request:为输入参数 'redirect_uri' 提供的值无效。预期值是与为此客户端应用程序注册的重定向 URI 相匹配的 URI。
我尝试查看许多解决方案,但其中 none 有效。我也试过这个解决方案 - https://github.com/microsoftgraph/msgraph-training-uwp/issues/15
但这并没有解决 python 的问题。问题还是一样。
我按照说明做了一切 -
从 Microsoft Graph api 文档下载 python 项目 (https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v2-python-webapp)
在Azure App注册中注册。
身份验证 - 重定向 URI - http://localhost:5000/getAToken(文档建议 url) -> 我在 azure 中添加了相同的 url,我也尝试将 'https' 和 'http' 都放入。
获得秘钥。 (根据证书和秘密)
添加了所需的权限。
我更改了 app.config 文件,从我的 azure 应用程序注册中获取所有详细信息(我正在添加下面的代码) 7.I 没有更改我的 app.py 文件中的任何内容。
启动Flask服务器,终于打开了需要的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
我刚刚尝试了您发布的示例,对我来说效果很好。
假设您确定 flask 在端口 5000 上 运行,
请尝试将您的权限URL更改为https://login.microsoftonline.com/yourtenantid
我尝试使用 common 但失败了。与不同的消息。但相似。
我的问题已解决,请经常检查这些:
创建应用程序注册时,您需要select支持的帐户类型:任何组织目录中的帐户(任何 Azure AD Ddirectory-multitenant)和个人 Microsoft 帐户。
在 Web 配置中输入您的重定向 URI,我在 SPA 中做错了。
而不是在浏览器中键入 http://127.0.0.1:5000/ type 'http://localhost:5000/'。我知道它是一样的,但它对我产生了影响。
您不能为 Azure 活动目录使用免费的 Microsoft 帐户,您必须使用付费高级版本。您可以提供卡的详细信息并免费使用一个月。
希望对您有所帮助。谢谢