从Postman调用Graph API时禁止403,但在Graph Explorer中正常工作

plicqrtu  于 5个月前  发布在  Postman
关注(0)|答案(1)|浏览(81)

我的目标是让应用程序与Azure连接器交互。目前,我专注于在深入实际代码之前获得工作连接。
我正在尝试让GET https://graph.microsoft.com/v1.0/external/connections工作。(doc
在测试Azure租户上,我为单页应用程序设置了一个应用程序注册,允许我使用隐式OAuth 2.0身份验证流。(赠款访问令牌,而不是ID令牌,并且我允许公共客户端流以防万一)
请注意,简单的获取用户请求(不需要特殊权限)在Postman中可以正常工作。(GET https://graph.microsoft.com/v1.0/me
然而,当我到达实际的连接器请求时,事情停止了工作。我为ExternalConnection.Read.All设置了委托权限。此权限足以让请求在Graph Explorer上工作,但现在当请求发出时,我在Postman上收到403禁止响应(不是身份验证请求,它可以正常工作并返回访问令牌).

我尝试在委派权限之上添加应用程序权限,但没有效果。
如果可能的话,我想保持隐含的流动,我只是惊讶于这是多么困难。

zfciruhq

zfciruhq1#

如本MS文档所述,随着从浏览器中删除第三方Cookie的计划,隐式授权流不再是合适的身份验证方法
我注册了一个单页应用,并授予了相同的API权限,如下所示:


的数据
当我尝试通过使用implicitflow生成token来获取外部连接时,我也得到了相同的错误

GET https://graph.microsoft.com/v1.0/external/connections

字符串

回复:



为了解决错误,我使用了Authorization Code(With PKCE)flow通过Postman生成访问令牌,成功得到了响应

GET https://graph.microsoft.com/v1.0/external/connections

回复:


    • 单页应用生成带有 Authorization code(带PKCE) 流的token时,请确保包含Origin**header:
Origin: <your redirect URL>



您也可以通过授予Application类型的权限来使用客户端凭据流,并使用它来获取外部连接列表,如下所示:

GET https://graph.microsoft.com/v1.0/external/connections

回复:


相关问题