C# 控制台应用程序的 ADAL OnBehalfOfToken 问题

问题描述

重现步骤

  1. 获取图谱令牌
  2. 使用此图令牌获取其他资源的 onbehalfoftoken,例如使用用户断言和客户端凭据的“b”。
  3. 它抛出以下错误: {“AADSTS50013:断言签名验证失败。[原因 - 提供的签名值与预期的签名值不匹配。,客户端使用的密钥指纹:'XXXXXXXXXXXXXXXXXXXX',找到的密钥'Start=12/21/2020 20:50: 17,End=12/20/2025 20:50:17']\r\n跟踪 ID: 74bcb05c-e716-40dd-9c1c-b7bbf4c1a600\r\n相关 ID: d1141819-1bf6-352a3r\n时间: 2021-06-02 12:48:37Z"}

解决方法

ms graph api不能作为中间层api,不能使用graph api调用其他api资源。

如果要使用中间层api调用其他api资源,可以在Azure中将受保护的api暴露作为中间层api,然后使用这个api调用其他api资源。

关于如何在Azure中配置api以及如何使用OBO flow获取token,可以参考我的previous answer