1

我们有一个 powershell 脚本,它将从 Outlook Office 365 中的共享邮箱中获取附件。现在邮件 api v1 不再支持基本身份验证,这个脚本昨晚停止工作,现在我需要使用 oAuth?

老实说,我不知道如何进行此切换并且已经阅读了几次文档,但我认为我现在更加迷失了。从我一直阅读的所有内容来看,它说我现在需要构建一个应用程序,注册该应用程序,然后通过命中该应用程序的端点生成承载或访问令牌?这是真的吗,我真的需要做这一切吗?

没有地方我可以用微软帐户生成一个 api 令牌吗?

这基本上是我们使用的脚本:https ://gallery.technet.microsoft.com/office/O365-Email-Attachments-to-6a45e84c

4

1 回答 1

0

我们处于同样的境地。可能是因为outlook.office365.com REST Api 关闭并且Graph API 从现在开始成为默认值: 如何通过Microsoft Graph API https://docs.microsoft.com/nl-be/检索itemAttachment 的内容 图/api/attachment-get?view=graph-rest-1.0#request-2

现在,我编写了一个脚本来正确执行此操作并且它可以正常工作。但是(1)每次脚本启动(例如在电源故障后)并且一旦登录(2)访问令牌不断过期时,它都需要密码的GUI输入......

Invoke-RestMethod : {
  "error": {
    "code": "InvalidAuthenticationToken",
    "message": "Access token has expired.",
    "innerError": {
      "request-id": "1c991403-ab46-4aec-a7a1-316dbdfb4eb8",
      "date": "2019-01-16T12:29:50"
    }
  }
}

现在,当您进入文档并开始阅读诸如刷新令牌之类的内容时……简直是疯了!https://docs.microsoft.com/nl-be/graph/auth-v2-user

我已经为 MailChimp 开发了 API 接口,我在一小时内完成了......(1)在 MailChimp 中生成 API 密钥,(2)在您的脚本中使用该 API 密钥,如果需要(3)在 MailChimp 中撤销密钥以防万一紧急情况(完成)。

这个代币 M$ BS 真的很令人兴奋。据我了解,您要么必须使用管理员 PowerShell 工具将令牌更改为 90 天的默认持续时间(但据我所知,服务器范围而不是应用范围?),或者在脚本中每 5 分钟自动刷新一次访问令牌。

这就是为什么我现在正在研究使用 PSMSGraph 显然可以为您完成所有这些工作:https ://psmsgraph.readthedocs.io/en/latest/

如果你能在我做之前让它正常工作,请分享你的代码。由于我当前的解决方案需要手动输入密码(顺便说一句,我不知道如何使这个无头)并且由于令牌过期而在一小时后停止工作。

我确信有一个很好的(安全)理由来使用这种访​​问令牌的方式做事,但是如果 MailChimp 生成生命周期令牌的方式只是工作......比我看不出为什么 Microsoft Graph 的这种访问令牌复杂性首先需要API。

于 2019-01-16T12:43:13.723 回答