简体   繁体   English

OpenID 的 Swashbuckle 问题

[英]Swashbuckle issue with OpenID

I've configured Swashbuckle (5.0.0-rc2) on ASP.NET Core to work with my OpenID server (Openiddict) but Swagger doesn't show any available authorization.我已经在 ASP.NET Core 上配置了 Swashbuckle (5.0.0-rc2) 以与我的 OpenID 服务器 (Openiddict) 一起使用,但 Swagger 没有显示任何可用的授权。 Only an empty modal.只有一个空的模态。

This is the snippet where I set OpenID on swagger这是我在 swagger 上设置 OpenID 的片段

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")
    });
}

If I login before getting here every action works fine, otherwise every method will be redirected to login and shown in server response.如果我在到达这里之前登录每个操作都可以正常工作,否则每个方法都将被重定向到登录并显示在服务器响应中。

If I use OAuth2 instead of OpenID with password flow (it's configured this way on Openiddict) and not logged-in in browser it's not successful either.如果我使用 OAuth2 而不是 OpenID 和密码流(它在 Openiddict 上以这种方式配置)并且没有登录浏览器,它也不会成功。

What am I doing wrong?我究竟做错了什么?

Support for OpenID Connect Discovery was added in Swagger UI v. 3.38.0. Swagger UI v. 3.38.0 中添加了对 OpenID Connect Discovery 的支持。 Swashbuckle needs to update the bundled Swagger UI to the latest version: Swashbuckle 需要将捆绑的 Swagger UI 更新到最新版本:
https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/1241 https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/1241

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM