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

如何在Ocelot API网关的Swagger中添加Authorize授权按钮

配置未生效的核心原因是 AddSwaggerForOcelot 会默认覆盖 AddSwaggerGen 中的安全相关配置,你单独在 AddSwaggerGen 中添加的授权规则不会同步到Ocelot聚合的下游API Swagger文档中。按以下步骤修改即可:

1. 调整服务注册逻辑

将安全定义同步配置到 AddSwaggerForOcelot 节点中,代码示例如下:

s.AddSwaggerForOcelot(configuration, options =>
{
    // 配置Bearer安全定义
    options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
    {
        In = ParameterLocation.Header,
        Description = "请输入格式为 `Bearer 你的JWT令牌` 的授权信息",
        Name = "Authorization",
        Type = SecuritySchemeType.ApiKey,
        Scheme = "Bearer"
    });

    // 全局添加安全要求
    options.AddSecurityRequirement(new OpenApiSecurityRequirement
    {
        {
            new OpenApiSecurityScheme
            {
                Reference = new OpenApiReference
                {
                    Type = ReferenceType.SecurityScheme,
                    Id = "Bearer"
                }
            },
            Array.Empty<string>()
        }
    });
});

s.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new OpenApiInfo { Title = "ApiGateway", Version = "v1" });
    c.ExampleFilters();
});

如果你使用标准JWT认证,也可以将SecuritySchemeType改为SecuritySchemeType.Http,此时Swagger会自动在令牌前添加Bearer 前缀,无需用户手动输入。

2. 修改Ocelot配置文件

在ocelot.json的SwaggerEndPoints节点下,给每个下游服务配置添加安全规则绑定,示例如下:

"SwaggerEndPoints": [
  {
    "Key": "your-service-key",
    "Config": [
      {
        "Name": "你的下游服务名称",
        "Version": "v1",
        "Url": "下游服务Swagger文档地址"
      }
    ],
    // 新增安全绑定,继承网关的Bearer授权配置
    "Security": [
      {
        "Bearer": []
      }
    ]
  },
  // 其余下游服务按相同格式添加Security节点即可
]

3. 校验中间件配置顺序

确保中间件注册顺序符合以下规则,顺序错误会导致配置不生效:

app.UseStaticFiles();

app.UseSwagger();

// 配置SwaggerForOcelot UI
app.UseSwaggerForOcelotUI(opt =>
{
    opt.PathToSwaggerGenerator = "/swagger/docs";
});

// 最后注册Ocelot中间件
app.UseOcelot().Wait();

常见问题排查

  • 配置修改后清空浏览器缓存、重启服务再验证
  • 下游服务无需单独配置Swagger授权规则,避免和网关配置冲突
  • 若使用旧版本SwaggerForOcelot,升级到最新稳定版即可解决参数不兼容问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 19:54:02