我怀疑“aud”无效错误是由于 api 入口点域与 aud 声明中提供的域不同所致

问题描述 投票:0回答:1

有人有幸提供与 api 端点域名不同的

aud
令牌吗?我的 Blazor 调用 asp.net 应用程序 (api) 并收到错误:

enter image description here

当我有 api app 应用程序 id 和 Jwt 的“aud”形式的

api://[GUID]/write.access

时,它工作得很好

将其更新为域名后(需要自定义声明,没有它就无法工作),它停止工作并抛出错误。

我在 Entra 中更新观众的位置

  1. Expose Api 页面上 api 应用程序的应用程序 ID URI ![enter image description here

  2. 我的 Blazor 应用程序的下游 Api 配置 enter image description here

我想这应该足够了。我想到的唯一可能的根本原因是不同的域名:api端点是https://someappname.azurewebsites.net/accounts,从所附的屏幕截图中可以看到它是不同的

oauth-2.0 azure-active-directory jwt authorization azure-entra-id
1个回答
0
投票

您可以在 JwtBearer 中设置预期的 aud 声明值,如下所示:

        .AddJwtBearer(opt =>
        {
            opt.Authority = _configuration["openid:authority"];
            opt.Audience = "paymentapi";
            ...

这应该是 API 期望在收到的访问令牌中看到的内容。

我确实在这里写了一篇关于此的博客文章:解决 ASP.NET Core 中的 JwtBearer 身份验证问题

© www.soinside.com 2019 - 2024. All rights reserved.