我的任务是为我们的客户实施单点登录,作为我们下一版本的一部分。流程如下:
因此,有两种机制可以将用户身份验证到我们的网站中:
如果我们的产品实现在ASP.NET中(而不是Java / Ruby),我们应该使用CAS,JOSSO还是其他一些第三方单点登录产品?或者.NET环境中是否有可用的东西,对于我们作为.NET公司来说更简单?
答案 0 :(得分:53)
为.NET应用程序实现SSO有多种选择。
在线查看以下教程:
单点登录的基础知识, 2012年7月
http://www.codeproject.com/Articles/429166/Basics-of-Single-Sign-on-SSO
GaryMcAllisterOnline:ASP.NET MVC 4,ADFS 2.0和第三方STS集成(IdentityServer2), 2013年1月
http://garymcallisteronline.blogspot.com/2013/01/aspnet-mvc-4-adfs-20-and-3rd-party-sts.html
第一个使用ASP.NET Web Forms,而第二个使用ASP.NET MVC4。
如果您的要求允许您使用第三方解决方案,请考虑使用OpenID。有一个名为 DotNetOpenAuth 的开源库。
有关详细信息,请参阅MSDN博客文章Integrate OpenAuth/OpenID with your existing ASP.NET application using Universal Providers。
希望这有帮助!
答案 1 :(得分:9)
我迟到了,但是对于选项#1,我会选择 IdentityServer3(。NET 4.6或更低版本)或IdentityServer4(与Core兼容)。
您可以在应用中重复使用现有的用户存储,并将其插入IdentityServer的用户存储。然后必须将客户端指向您的IdentityServer作为开放ID提供程序。
答案 2 :(得分:6)
有几个提供SSO支持的身份提供商,也包括第三方**产品。
**第三方产品的唯一问题是它们按用户/月收费,而且价格相当昂贵。
可用的一些工具和.NET的API是:
如果您决定使用自己的实现,可以使用以下按编程语言分类的框架。
C#
的Javascript
的Python
我会使用IdentityServer4和ASP.NET Core应用程序,它易于配置,您还可以添加自己的身份验证提供程序。它使用比SAML 2.0和WS-Federation更新的 OAuth / OpenID 协议。
答案 3 :(得分:1)
UltimateSAML SSO是符合OASIS SAML v1.x和v2.0规范的.NET工具包。它提供了一种优雅,简便的方法,可将对单点登录和单次登录SAML的支持添加到ASP.NET,ASP.NET MVC,ASP.NET Core,桌面和服务应用程序。轻量级库可帮助您使用单个凭据条目提供对云和Intranet网站的SSO访问。
答案 4 :(得分:1)
[免责声明:我是贡献者之一]
我们构建了一个非常简单的免费/开源组件,该组件添加了对ASP.NET应用https://github.com/jitbit/AspNetSaml的SAML支持
基本上,这只是一个简短的C#文件,您可以将其放入项目(或通过Nuget安装)并与您的应用程序一起使用