You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ASP.NET Core 2.0的OpenIdConnectMiddleware中设置Auth0受众参数?

解决ASP.NET Core 2.0中OpenIdConnectMiddleware添加Auth0 Audience参数的问题

嘿,这个场景我太熟悉了!ASP.NET Core 2.0的OpenIdConnectOptions确实没有直接提供Audience的配置项,但我们可以通过拦截授权请求的方式手动注入这个参数,具体步骤如下:

核心思路

利用OpenIdConnectEvents中的OnRedirectToIdentityProvider事件——这个事件会在应用重定向到Auth0的/authorize端点之前触发,我们可以在这里给授权请求添加额外的audience参数。

具体代码实现

在你的Startup.cs的ConfigureServices方法中,配置OpenIdConnect认证时添加这个事件处理:

using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;

// ...

services.AddAuthentication(options =>
{
    options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect(options =>
{
    // 基础Auth0配置
    options.Authority = "https://your-auth0-domain.auth0.com/";
    options.ClientId = "your-auth0-client-id";
    options.ClientSecret = "your-auth0-client-secret";
    options.ResponseType = "code"; // 使用授权码模式

    // 清理默认Scope,添加你需要的权限
    options.Scope.Clear();
    options.Scope.Add("openid");
    options.Scope.Add("profile");
    options.Scope.Add("read:your-api-data"); // 替换成你的API所需的具体权限

    // 关键操作:添加Audience参数
    options.Events = new OpenIdConnectEvents
    {
        OnRedirectToIdentityProvider = context =>
        {
            // 填入你在Auth0中创建的API的Identifier(即目标Audience)
            context.ProtocolMessage.SetParameter("audience", "https://your-api-identifier/");
            return Task.CompletedTask;
        }
    };
});

额外注意事项

  • 确保你在Auth0的应用设置里,已经将目标API授权给当前客户端(在Auth0控制台的应用页面,找到"APIs"标签,添加对应的API权限)。
  • 拿到访问令牌后,你可以通过context.HttpContext.GetTokenAsync("access_token")获取它,调用API时将其放在Authorization头中(格式:Bearer {access_token})。

内容的提问来源于stack exchange,提问作者Geir Sagberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:00:13