我的目标是让应用程序与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禁止响应(不是身份验证请求,它可以正常工作并返回访问令牌).
我尝试在委派权限之上添加应用程序权限,但没有效果。
如果可能的话,我想保持隐含的流动,我只是惊讶于这是多么困难。
1条答案
按热度按时间zfciruhq1#
如本MS文档所述,随着从浏览器中删除第三方Cookie的计划,隐式授权流不再是合适的身份验证方法。
我注册了一个单页应用,并授予了相同的API权限,如下所示:
的数据
当我尝试通过使用implicitflow生成token来获取外部连接时,我也得到了相同的错误:
字符串
回复:
的
为了解决错误,我使用了Authorization Code(With PKCE)flow通过Postman生成访问令牌,成功得到了响应:
型
回复:
的
Origin
**header:型
的
您也可以通过授予
Application
类型的权限来使用客户端凭据流,并使用它来获取外部连接列表,如下所示:型
回复:
的