【问题标题】:How to configure Hybrid mode for Exchange 2016 to have OAuth2 Client Credentials flow working with Microsoft Graph API如何为 Exchange 2016 配置混合模式以使 OAuth2 客户端凭据流与 Microsoft Graph API 一起使用
【发布时间】:2019-05-14 10:26:36
【问题描述】:

我在客户的 Exchange 2016 上配置了混合模式。现在用户的邮箱使用个人同意流(授权代码 Oauth2 流)在 Microsoft Graph API 上公开。

通过客户端凭据流程获得管理员同意似乎有效:在 Microsoft 端点上检索到令牌,有效负载是正确的(正确的范围),但在使用它获取邮箱内容时会触发“未知错误”通过 Microsoft Graph API。相同的令牌确实可以获取目录信息(意味着令牌在某些时候有效)。

混合模式是否与客户端凭据流兼容?是否需要在 Exchange 中配置任何参数来启用此流程?

【问题讨论】:

标签: oauth-2.0 microsoft-graph-api exchange-server azure-hybrid-connections


【解决方案1】:

前段时间我偶然发现了同样的问题。让它滑动,因为我认为这是 Exchange 端的一些错误配置。

如果您检查两个令牌,您会发现客户端凭据令牌上缺少 sid,我认为交换需要令牌内的某种本地用户 ID 才能工作。我不确定是否支持此流程,因为我在他们的文档网站上找不到有关此主题的任何内容。

我刚刚发现了一个完全相关的问题,请查看https://stackoverflow.com/a/56108226/639153 以获得完整答案。

问题实际上出在其他地方 - Exchange 似乎不支持 client_credentials 流。但是,您可以通过以下 PowerShell 强制执行(确保在应用后重新启动 IIS):

$apps = Get-PartnerApplication
# Microsoft Graph is 2nd item in the array, if you are unsure, list the items by calling $apps first
$apps[1] | Set-PartnerApplication -AppOnlyPermissions $apps[1].ActAsPermissions

完整的解释可以在这里找到:https://blog.thenetw.org/2019/05/13/using-client_credentials-with-microsoft-graph-in-hybrid-exchange-setup/

【讨论】:

    猜你喜欢
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2019-07-22
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多