gpt4 book ai didi

azure - Microsoft Graph OAuth 问题

转载 作者:行者123 更新时间:2023-12-02 06:32:16 25 4
gpt4 key购买 nike

我有一个后台 JS 应用程序,不会有任何用户输入,所以我正在考虑在没有用户输入的情况下使用应用程序身份验证。我已在 Azure AD 门户和 apps.dev.microsoft.com 中设置了一个应用。

我正在使用以下端点:

login.microsoftonline.com/{Tenant}/oauth2/token

具有以下正文:

client_id: application_id  
client_secret: generated key
grant_type: client_credentials
scope: "https://graph.microsoft.com/.default"

这会生成一个access_token,但是当我尝试使用图形API使用它时,出现以下错误

Access token validation failure

在调查该 token 与具有用户输入的普通 OAuth token 相比时,我注意到它传递的是角色而不是 scp,受众是我的应用程序而不是 graph.microsoft.com。

我做错了什么?

最佳答案

在 Azure AD 门户中注册的应用程序可与 Azure AD V1.0 端点配合使用,在 apps.dev.microsoft.com 中注册的应用程序可与 v2.0 端点配合使用,请首先引用 this document了解 v2.0 端点的不同之处。

要使用 Azure AD v2.0 访问安全资源而无需用户交互(客户端凭据流),您应该向/token v2.0 端点发送 POST 请求:

POST /common/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=535fb089-9ff3-47b6-9bfb-4f1264799865&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&client_secret=qWgdYAmab0YSkuL1qKv5bPX&grant_type=client_credentials

您可以引用 this document 了解如何通过 Azure AD V2.0 端点使用 OAuth 2.0 客户端凭据授予。

如果您想将azure ad v1.0(在azure门户中注册的应用程序)与客户端凭据流程一起使用,您可以引用 this document 。在 azure ad v1.0 中,您应指明客户端应用请求授权的 resource 参数,在您的场景中,资源应为 https://graph.microsoft.com/ 如果您想获取 token 来调用 microsoft graph api 。

关于azure - Microsoft Graph OAuth 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46725175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com