有人可以向我解释如何实现单点登录吗?我有一个MVC ASP.NET核心Web应用程序(比如说www.internalsite.com),应用程序如何自动获取用户凭据并进行身份验证等?我需要一个非常明确的解释如何做到这一点。
答案 0 :(得分:2)
使用www.internalsite.com我想你在谈论内联网上的网站,对吗?你是怎么主持的?在Kestrel面前的IIS?如果是这样,那么它非常简单,您只需要通过在web.config中设置正确的值来配置IIS以获取Windows身份(通常来自Kerberos令牌):forwardWindowsAuthToken="true"
,如此处所述:Asp.net Core Web API - Current user & Windows Authentication并确保您拥有受[Authorize]
标记保护的控制器/操作,以便对IIS中间件提出质疑并设置请求的标识,如下所述:NTLM authentication on specific route in ASP.NET Core没有太多代码写你的项目。如果您正在使用其他托管设置WebListener,它几乎是一样的。
另一种解决方案是通过客户端证书进行SSO,这种证书具有跨域工作的优势,但Kerberos的SSO更容易,通常在内部网上做得很好。