【发布时间】: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'
我已经按照这个设置了 Azure AD 应用程序。我没有使用 JWT 承载中间件,而是从客户端接收访问令牌并使用它创建一个 UserAssertion 并调用 ConfidentialClientApplication.AcquireTokenOnBehalfOf
我是不是配置错误?
谢谢
【问题讨论】:
-
您是如何获得第一个访问令牌的?可以展示一下吗?
标签: .net oauth-2.0 azure-active-directory msal