0

在我们的 python 应用程序中,我们使用 Exchange 命令行管理程序 cmdlet 来执行一些任务。(事实上​​,python 应用程序运行 .Net 应用程序,它调用 Exchange 命令行管理程序 cmdlet。)目前我们使用 New-PSSession cmdlet 的基本身份验证。另一方面,我们已经为不同的 API 和资源获取了 OAuth2 访问令牌。现在我们想将 OAuth2 身份验证与 Exchange 命令行管理程序 cmdlet 一起使用。

我们看过这篇文章[1]。

但是我们有几个问题:

  1. 有没有办法在不使用 ADAL 和 MSAL 的情况下获取访问令牌?
  2. 有没有办法使用刷新令牌获取新的访问令牌?
  3. 似乎没有机会使用外部(系统)浏览器,不是吗?先感谢您。

[1] https://developermessaging.azurewebsites.net/2018/09/07/acquiring-oauth2-access-tokens-for-automating-exchange-management-shell-cmdlets/?unapproved=96&moderation-hash=9250fbdda0e11fd8af9bafd4c3576139#review- 96

4

2 回答 2

0
  1. MSAL 和 ADAL 是专为通过 OAuth 进行身份验证而设计的库,是的,您可以在不使用 MSAL 或 ADAL 的情况下直接使用 OAuth 获取令牌。您可以直接使用Oauth 和 OpenID Connect。通过管理来自 URL 的 Get 和 Post 请求来编写代码非常容易。
  2. 当您当前的访问令牌过期时,刷新令牌用于获取新的访问令牌。有关详细信息,请参阅文档
  3. 浏览器的使用取决于您使用的身份验证流程。例如设备代码流不需要浏览器。
于 2020-05-28T19:01:14.827 回答
0

哦,其实一切都很简单:

  1. 请求授权码:https://login.microsoftonline.com/common/oauth2/authorize?redirect_uri=http%3A%2F%2Flocalhost%3A55555&client_id=a0c73c16-a7e3-4564-9a95-2bdf47383716&response_type=code
  2. 请求访问令牌:

    • 网址:https://login.microsoftonline.com/common/oauth2/token
    • 身体:resource=https%3A%2F%2Foutlook.office365.com&client_id=a0c73c16-a7e3-4564-9a95-2bdf47383716&redirect_uri=http%3A%2F%2Flocalhost%3A9999&code=YOUR_AUTHORIZATION_CODE&client_secret=&grant_type=authorization_code
于 2020-05-30T22:56:30.010 回答