2

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

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

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

4

1 回答 1

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/

于 2019-05-14T13:43:28.360 回答