【发布时间】:2017-03-09 04:35:17
【问题描述】:
有人可以向我解释如何实现单点登录吗?我有一个 MVC ASP.NET 核心 Web 应用程序(比如说 www.internalsite.com),该应用程序如何自动获取用户凭据并进行身份验证等?我需要一个非常清楚的解释来说明如何去做。
【问题讨论】:
标签: asp.net-mvc security asp.net-core single-sign-on asp.net-core-mvc
有人可以向我解释如何实现单点登录吗?我有一个 MVC ASP.NET 核心 Web 应用程序(比如说 www.internalsite.com),该应用程序如何自动获取用户凭据并进行身份验证等?我需要一个非常清楚的解释来说明如何去做。
【问题讨论】:
标签: asp.net-mvc security asp.net-core single-sign-on asp.net-core-mvc
通过使用 www.internalsite.com,我猜您是在谈论 Intranet 上的网站,对吗?你是如何托管的? IIS 在 Kestrel 前面?如果是这样,那么它非常简单,您只需要通过在 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 更容易并且通常在内联网上做得很好。
【讨论】: