86

作为我们下一个版本的一部分,我的任务是为我们的客户实施单点登录。流程存在如下:

  1. 用户使用学校提供给他/她的学生ID/密码登录他们学校的主要门户系统。
  2. 用户点击我公司产品的链接。
  3. 用户会被自动带到仪表板页面,就像他们刚刚通过我们网站上的登录表单登录一样。

因此,有两种机制可以让用户通过我们的网站进行身份验证:

  1. 来到我们产品的主页,并使用我们存储在本地系统中的电子邮件/密码登录。
  2. 使用学生已经使用学生 ID 和密码登录学校主系统的单点登录。

如果我们的产品实现是在 ASP.NET 中(而不是 Java/Ruby),我们应该使用 CAS、JOSSO 还是其他第三方单点登录产品?或者,对于我们作为 .NET 公司的我们来说,是否有一些可用于 .NET 环境的东西?

4

5 回答 5

56

为 .NET 应用程序实现 SSO 有多种选择。

在线查看以下教程:

单点登录基础2012 年 7 月

http://www.codeproject.com/Articles/429166/Basics-of-Single-Sign-on-SSO

GaryMcAllisterOnline:ASP.NET MVC 4、ADFS 2.0 和第 3 方 STS 集成 (IdentityServer2)2013 年 1 月

http://garymcallisteronline.blogspot.com/2013/01/aspnet-mvc-4-adfs-20-and-3rd-party-sts.html

第一个使用 ASP.NET Web 窗体,而第二个使用 ASP.NET MVC4。

如果您的要求允许您使用第三方解决方案,也可以考虑使用 OpenID。有一个名为DotNetOpenAuth的开源库。

有关详细信息,请阅读 MSDN 博客文章使用 Universal Providers 将 OpenAuth/OpenID 与您现有的 ASP.NET 应用程序集成

希望这可以帮助!

于 2013-01-13T23:13:47.320 回答
14

我迟到了,但对于选项 #1,我会选择 IdentityServer3 (.NET 4.6 或更低版本) 或IdentityServer4 (与Core兼容)。

您可以在应用程序中重用现有的用户存储并将其插入 IdentityServer 的用户存储。然后客户端必须指向您的 IdentityServer 作为开放 id 提供者。

于 2016-10-19T15:02:08.433 回答
12

有几个开箱即用的 SSO 支持的身份提供程序,还有一些第三方**服务。

** 第三方服务的唯一问题是他们可能会按用户/月收费,这可能非常昂贵。

一些可用的工具和用于 .NET 的 API 包括:

如果您决定使用您的实现,您可以使用以下按编程语言分类的框架。

C#:

  • IdentityServer3(OAuth/OpenID 协议,OWIN/Katana
  • IdentityServer4(OAuth/OpenID 协议,ASP.NET Core
  • Okta 的 OAuth 2.0

JavaScript:

  • 护照-openidconnect (node.js)
  • oidc 提供程序 (node.js)
  • openid 客户端(node.js)

Python:

  • pyoidc
  • Django OIDC 提供者

我会使用Auth0作为服务,因为它对前 7000 名用户免费,支持多种语言,而且不需要做太多事情。但是,如果您需要更健壮、管理自己和更便宜的解决方案,我会配置 IdentityServer4 和 ASP.NET Core 应用程序,并根据需要添加身份验证提供程序。

Auth0 和 IdentityServer4 解决方案都使用OAuth/OpenID协议,还支持 WS-Federation 和 SAML 2.0 集成。

于 2017-01-23T17:17:14.047 回答
5

[免责声明:我是贡献者之一]

我们构建了一个非常简单的免费/开源组件,为 ASP.NET 应用程序添加了 SAML 支持https://github.com/jitbit/AspNetSaml

基本上它只是一个简短的 C# 文件,您可以将其放入项目中(或通过 Nuget 安装)并将其与您的应用程序一起使用

于 2020-04-16T18:18:57.867 回答
3

UltimateSAML SSO 是符合 OASIS SAML v1.x 和 v2.0 规范的 .NET 工具包。它提供了一种优雅而简单的方法,可以为您的 ASP.NET、ASP.NET MVC、ASP.NET Core、桌面和服务应用程序添加对单点登录和单点注销 SAML 的支持。轻量级库可帮助您使用单个凭据条目提供对云和 Intranet 网站的 SSO 访问。

详细的 UltimateSAML SSO 审查可以在这里找到

于 2018-07-01T08:59:27.147 回答