首页 > 解决方案 > Azure 客户端凭据授予誓言在 Graph Mail API 访问的混合设置中不起作用

问题描述

在混合设置中,如果客户端凭据授予类型用于获取令牌并且该令牌用于获取本地用户消息 ( https://graph.microsoft.com/v1.0/users ('onpremuser@onpremdomain.com' )/messages/) 使用图形 api 它通过提供 UnknownError 失败。

在 IIS 日志上调试时显示的错误是“此令牌配置文件 'V1S2SAppOnly' 不适用于当前协议。” error_category="invalid_token"。

但是,如果授权码授权或资源所有者密码凭证 (ROPC) 授权用于获取令牌,我们能够使用图形 API 获取本地用户的消息。已附上两者的令牌屏幕截图。如何使用图形 API(在混合设置中)使客户端凭据授予对本地用户消息访问起作用?

客户凭证宣誓流程

ROPC誓约流程

更新

更新我在 Exchange 服务器中编辑了其余的 web.config 以在配置文件中包含 V1S2SAppOnly。在之前的错误消失之后,会看到新的错误。

BEARER+客户端=“ 00000002-0000-0F1-CE00-00000000000000000000000000000000000000000000000000000000000000000000来+error="invalid_token" 2000008;reason=" +token+should+have+valid+permissions+or+linked+account+associated+with+partner+application+'00000003-0000-0000-c000-000000000000 '."; error_category="invalid_grant"

标签: azure-active-directorymicrosoft-graph-api

解决方案


我认为问题aud在于声明,即令牌的受众。

对于您共享的第一个令牌

  • aud值为00000002-0000-0000-c000-000000000000。这是 Azure AD Graph API 而不是 Microsoft Graph API 的资源 ID。对于 Microsoft Graph API,您应该使用https://graph.microsoft.comor Id00000003-0000-0000-c000-000000000000
  • 此令牌可能是您使用客户端凭据授予的令牌,因为没有任何用户声明

对于您共享的第二个令牌

  • audhttps://graph.microsoft.com是正确的
  • 这个令牌是在用户名的上下文中获取的,anoop所以我想这是为你工作的那个。

推荐阅读