【问题标题】:Swashbuckle issue with OpenIDOpenID 的 Swashbuckle 问题
【发布时间】:2019-10-01 11:30:07
【问题描述】:

我已在 ASP.NET Core 上配置 Swashbuckle (5.0.0-rc2) 以与我的 OpenID 服务器 (Openiddict) 一起使用,但 Swagger 未显示任何可用授权。 只有一个空的模态。

这是我在 swagger 上设置 OpenID 的 sn-p

services.AddSwaggerGen(c =>
{
    //... omitted for brevity
    //baseAccountsUrl is "https://localhost:5401"

    c.AddSecurityDefinition("AccountsOpenID", new OpenApiSecurityScheme
    {
        Type = SecuritySchemeType.OpenIdConnect,
        OpenIdConnectUrl = new Uri($"{baseAccountsUrl}/.well-known/openid-configuration")
    });
}

如果我在到达这里之前登录,每个操作都可以正常工作,否则每个方法都将被重定向到登录并显示在服务器响应中。

如果我使用 OAuth2 而不是 OpenID 和密码流(在 Openiddict 上以这种方式配置)并且没有在浏览器中登录,它也不成功。

我做错了什么?

【问题讨论】:

  • 不确定 (5.0.0-rc2) 上的情况是否发生了变化,但在旧版本上,您需要实现自定义 IDocumentFilter 和/或 IOperationFilter 来设置安全属性:github.com/domaindrivendev/Swashbuckle/blob/master/…跨度>
  • 我必须将 OpenID 服务器移动到另一个项目,在此拆分之前一切正常,之后 Swagger 使用 OAuth 2 进行了正确的身份验证,所以我尝试更新到具有 OpenID 支持的 5.0.0-rc2 版本,但是OpenID 似乎不起作用,它在主锁定按钮上显示一个空的可用授权。 OAuth 继续不像 4.x 版那样进行身份验证。

标签: c# .net asp.net-core openid-connect swashbuckle


【解决方案1】:

在 Swagger UI v. 3.38.0 中添加了对 OpenID Connect Discovery 的支持。 Swashbuckle 需要将捆绑的 Swagger UI 更新到最新版本:
https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/1241

【讨论】:

    猜你喜欢
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多