【问题标题】:On behalf of flow returns AADSTS50013: Assertion failed signature validation代表流返回 AADSTS50013: Assertion failed signature validation
【发布时间】:2021-02-24 09:50:27
【问题描述】:

我正在使用 this package 从 react 本机移动应用程序对用户进行身份验证。获取访问令牌后,我将其发送到我的 .net WebAPI,它尝试调用 ConfidentialClientApplication.AcquireTokenOnBehalfOf。 react native 移动应用和 webapi 都使用来自 azure 应用注册和范围的相同客户端 ID。

    public async Task<AuthenticationResult> AquireTokenOnBehalfOf(IEnumerable<string> scopes, string jwt)
    {
        var userAssertion = new UserAssertion(jwt);

        var res = await ConfidentialClientApplication.AcquireTokenOnBehalfOf(scopes, userAssertion).ExecuteAsync();

        return res;
    }

它返回以下错误:

Microsoft.Identity.Client.MsalUiRequiredException: 'AADSTS50013: 断言签名验证失败。 [原因 - 提供的签名值与预期的签名值不匹配。,客户端使用的密钥指纹:'9CEA37643ACE0D710AD63296857B251D1FCA5C48',找到密钥'Start=12/21/2020 20:50:17,End=12/20/2025 20:50:17'] 跟踪 ID:a03a5cf8-8d05-4bd2-a47a-ce3a1ce70e00 相关 ID:8b42b1c2-21bc-4d63-9b90-bafb81f83d32 时间戳:2021-02-23 14:13:26Z'

Github issue

我已经按照这个设置了 Azure AD 应用程序。我没有使用 JWT 承载中间件,而是从客户端接收访问令牌并使用它创建一个 UserAssertion 并调用 ConfidentialClientApplication.AcquireTokenOnBehalfOf

我是不是配置错误?

谢谢

【问题讨论】:

  • 您是如何获得第一个访问令牌的?可以展示一下吗?

标签: .net oauth-2.0 azure-active-directory msal


【解决方案1】:

我通过仔细遵循示例here 来完成这项工作。我没有在应用注册的“公开 API”刀片中配置所需的内容,因此没有添加新的 api 权限。

【讨论】:

    猜你喜欢
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 2017-08-04
    • 2021-04-09
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多