Oauth 2.0 如何为Exchange 2016配置混合模式,使OAuth2客户端凭据流与Microsoft Graph API一起工作

Oauth 2.0 如何为Exchange 2016配置混合模式,使OAuth2客户端凭据流与Microsoft Graph API一起工作,oauth-2.0,microsoft-graph-api,exchange-server,azure-hybrid-connections,Oauth 2.0,Microsoft Graph Api,Exchange Server,Azure Hybrid Connections,我在客户的Exchange 2016上配置了混合模式。现在,用户的邮箱使用个人同意流(授权代码Oauth2流)在Microsoft Graph API上公开 通过客户端凭据流获得管理员同意似乎是可行的:在Microsoft端点上检索令牌,有效负载是正确的(范围正确),但在使用令牌通过Microsoft Graph API获取邮箱内容时会触发“未知错误”。相同的令牌用于获取目录信息(意味着令牌在某个点上是有效的) 混合模式是否与客户端凭据流兼容?Exchange中是否有任何参数可以配置以启用此流?

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

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


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

我不久前偶然发现了相同的问题。随它去吧,因为我认为这是Exchange端的一些错误配置

如果检查这两个令牌,您将看到客户端凭据令牌上缺少sid,我认为exchange需要令牌中的某种内部用户id才能工作。我不确定是否支持此流,因为我在他们的文档网站上找不到有关此主题的任何内容

我刚刚发现了一个完全相关的问题,请查看完整的答案

问题实际上在其他地方-Exchange似乎不支持客户端\u凭据流。但是,您可以通过以下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