Microsoft Graph API:如何在没有浏览器的情况下获取访问令牌
Microsoft Graph API: how to get access token without browser
我想将指定文件上传到 Sharepoint。我正在使用 Microsoft Graph API.
documentation 遵循以下工作流程:
1. If no token, redirect the user to the Microsoft signin page.
2. The user is then redirected to the application, with an access token
3. Use access token to have an authorization bearer
4. Do what you gotta do...
我的问题是登录部分。我不希望我的用户被重定向到 Microsoft 登录页面。我希望我的应用程序在后台连接并获取访问令牌(使用 cURL 或其他)。
我该怎么做?为什么需要 "open in browser"?
我试图复制登录过程,但我得到的只是来自登录页面的 HTML 响应。
提前致谢。
您的应用程序充当 single-tenant 服务或守护程序应用程序。
关于这个场景的文档在这里:https://developer.microsoft.com/en-us/graph/docs/authorization/app_only
- 应用必须注册到Office365租户对应的AzureAD目录下
- 第一个请求是通过传递在目录中注册的应用程序唯一标识符和密钥来发出的。此请求 returns 一个访问令牌
现在可以在对 Microsoft Graph API.
的以下请求的 授权 header 中使用访问令牌
这种方法(使用 Client ID 和 Secret)效果很好,但还有其他方法可能更适合类似情况。
以这种方式生成的访问令牌中缺少的一个主要内容是 用户,这意味着该令牌仅包含 OAuth 应用程序[=的身份27=](客户端)调用它但未与请求的任何用户相关联。
这可能会产生一些影响:
- 由于令牌未与特定用户相关联,您将不知道是谁执行了该操作。在您的示例中,您不知道是谁上传了文件(并且可能缺少其他类似信息)。
- 没有用户的访问令牌对于某些方法根本不起作用。对于那些,您需要一个 委托代币 。
创建委托令牌需要一些努力,如果您有兴趣可以在我的文章中找到详细信息:
Getting Access Token for Microsoft Graph Using OAuth REST API
我想将指定文件上传到 Sharepoint。我正在使用 Microsoft Graph API.
documentation 遵循以下工作流程:
1. If no token, redirect the user to the Microsoft signin page.
2. The user is then redirected to the application, with an access token
3. Use access token to have an authorization bearer
4. Do what you gotta do...
我的问题是登录部分。我不希望我的用户被重定向到 Microsoft 登录页面。我希望我的应用程序在后台连接并获取访问令牌(使用 cURL 或其他)。
我该怎么做?为什么需要 "open in browser"?
我试图复制登录过程,但我得到的只是来自登录页面的 HTML 响应。
提前致谢。
您的应用程序充当 single-tenant 服务或守护程序应用程序。
关于这个场景的文档在这里:https://developer.microsoft.com/en-us/graph/docs/authorization/app_only
- 应用必须注册到Office365租户对应的AzureAD目录下
- 第一个请求是通过传递在目录中注册的应用程序唯一标识符和密钥来发出的。此请求 returns 一个访问令牌
现在可以在对 Microsoft Graph API.
的以下请求的 授权 header 中使用访问令牌这种方法(使用 Client ID 和 Secret)效果很好,但还有其他方法可能更适合类似情况。
以这种方式生成的访问令牌中缺少的一个主要内容是 用户,这意味着该令牌仅包含 OAuth 应用程序[=的身份27=](客户端)调用它但未与请求的任何用户相关联。
这可能会产生一些影响:
- 由于令牌未与特定用户相关联,您将不知道是谁执行了该操作。在您的示例中,您不知道是谁上传了文件(并且可能缺少其他类似信息)。
- 没有用户的访问令牌对于某些方法根本不起作用。对于那些,您需要一个 委托代币 。
创建委托令牌需要一些努力,如果您有兴趣可以在我的文章中找到详细信息:
Getting Access Token for Microsoft Graph Using OAuth REST API