【发布时间】:2019-01-14 22:03:11
【问题描述】:
我想通过 GET 请求获取 Microsoft Graph 上的令牌。 如果我使用以下调用,我会看到一个登录屏幕,要求输入用户名和密码。
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
client_id=f3992025-4d4d-XXXXX-bb2d-XXXXXXXXX
&client_secret=XXXXXXXXXXXXXXXXXXXXXXXXXX
&response_type=code
&redirect_uri=https://10.100.XXX.XXX:5858/authorize
&response_mode=query
&scope=openid%20offline_access%20https%3A%2F%2Fgraph.microsoft.com%2Fmail.read
&state=12345
如果我这样做了,我会得到稍后获取令牌所需的代码,并且我可以毫无问题地使用它
我的问题是我不想进入那个登录屏幕。我希望请求返回代码无需用户交互。我认为 client_id 和 client_secret 会处理这个问题。
我正在遵循以下指示:https://developer.microsoft.com/en-us/graph/docs/concepts/auth_overview
谢谢。
【问题讨论】:
-
我认为您正在寻找的是客户端凭据授予流程 :) 它不涉及浏览器,只涉及一个 HTTP 请求。它确实依赖于应用程序权限,即授予您应用程序本身的权限,而不代表用户。
-
谢谢!我在执行 /authorize 请求时添加了 &grant_type=client_credentials 但是我仍然得到一个交互式登录屏幕。
-
@acanessa 您是否尝试过使用 Postman 或任何客户端工具?
标签: azure oauth-2.0 token microsoft-graph-api