【发布时间】:2020-06-27 09:15:41
【问题描述】:
我正在按照快速入门和指南运行 asp.net core 3.1 和 IdentityServer4。
在同一个项目中实现 IS 端点和 api 端点时,我有点迷茫。我希望服务器托管 IS 身份验证/登录 url、api 和 mvc 客户端。我想发行将由 IS 主机/mvc 客户端和客户端凭据客户端使用的不记名令牌。
我已经完成了快速入门并让 MVC 客户端和控制台客户端向我的身份服务器主机进行身份验证,但是当我尝试使用我的身份服务器主机进行身份验证然后转到其中一个视图控制器时,我只需通过身份验证即可获得循环工作流程。
我相信这是因为我的帐户控制器登录发布方法没有发出不记名令牌。我在想我需要在登录过程中调用身份服务器以设置承载 cookie。 (也有可能我只是在我的视图控制器上遗漏了一些东西来告诉它它是允许访问的组的一部分?)
我有这个允许来自控制台应用程序的客户端凭据工作:
services.AddAuthentication("Bearer")
.AddJwtBearer("Bearer", options =>
{
options.Authority = Constants.HostUrl;
options.RequireHttpsMetadata = false;
options.Audience = "api";
});
但如果我删除它,那么通过主机身份服务器的登录工作流程就可以工作,我可以访问我的视图和 api 控制器。
是否有我缺少的快速入门显示身份服务器也是 mvc 客户端?
谢谢
【问题讨论】:
-
代码
services.AddAuthentication("Bearer")为服务添加身份验证。这定义了传入请求必须在标头请求中具有 json Web 令牌。如果您删除AddAuthentication和AddJwtBearer调用,则不会进行令牌检查。这意味着您正在访问视图和 api 控制器,但没有进行令牌检查。不幸的是,我不能很好地理解你的情况。能否请您查看IdentityServer samples 并帮助我了解与您的情况相似的情况?
标签: c# asp.net-core oauth identityserver4