C#ASP.NET单点登录实现
作为下一版本的一部分,我的任务是为我们的客户实施单点登录。流程存在如下所示:C#ASP.NET单点登录实现,c#,asp.net,single-sign-on,C#,Asp.net,Single Sign On,作为下一版本的一部分,我的任务是为我们的客户实施单点登录。流程存在如下所示: 用户使用学校提供的学生id/密码登录学校的主门户系统 用户单击指向我公司产品的链接 用户会自动进入仪表板页面,就好像他们刚刚通过我们网站上的登录表单登录一样 因此,有两种机制可以让用户通过身份验证进入我们的站点: 访问我们产品的主页,并使用我们存储在本地系统中的电子邮件/密码登录 在学生已使用学生id和密码登录学校主系统的情况下使用单一登录 如果我们的产品是在ASP.NET中实现的(与Java/Ruby相反),那么我们
如果我们的产品是在ASP.NET中实现的(与Java/Ruby相反),那么我们应该使用CAS、JOSSO还是其他第三方单点登录产品?或者,对于.NET公司来说,.NET环境是否有更简单的功能?对于.NET应用程序,有多种选项可以实现SSO 在线查看以下教程: 单点登录的基础知识,2012年7月 GaryMcAllisterOnline:ASP.NET MVC 4、ADFS 2.0和第三方STS集成(IdentityServer2),2013年1月 第一个使用ASP.NET Web表单,而第二个使用ASP.NET MVC4
如果您的需求允许使用第三方解决方案,也考虑OpenID。有一个名为DotNetOpenAuth的开源库
有关更多信息,请阅读MSDN博客文章希望这有帮助 我参加聚会迟到了,但如果没有第1种选择,我会和你一起去 (.NET 4.6或以下)或(与兼容)
您可以在应用程序中重用现有的用户存储,并将其插入IdentityServer的用户存储。然后,必须将客户端指向您的IdentityServer作为开放id提供商。有多个具有现成SSO支持的身份提供商,还有第三方**产品 **第三方产品的唯一问题是每个用户/月收费,而且可能相当昂贵 可用于.NET的API的一些工具包括:
- (使用管理UI)通过IdentityServer
- C#
- IdentityServer3(OAuth/OpenID协议,OWIN/Katana)
- IdentityServer4(OAuth/OpenID协议,ASP.NET核心)
- Okta编写的OAuth 2.0
- Javascript
- passport openidconnect(node.js)
- oidc提供程序(node.js)
- openid客户端(node.js)
- 蟒蛇
- 化脓性
- Django OIDC提供程序
UltimateSAML SSO是一个符合OASIS SAML v1.x和v2.0规范的.NET工具包。它提供了一种优雅而简单的方法,可以将对单点登录和单点注销SAML的支持添加到ASP.NET、ASP.NET MVC、ASP.NET核心、桌面和服务应用程序中。轻量级库帮助您使用单个凭据条目提供对云和intranet网站的SSO访问
[免责声明:我是贡献者之一] 我们构建了一个非常简单的免费/开源组件,添加了对ASP.NET应用程序的SAML支持
基本上,它只是一个简短的C#文件,您可以将其放入您的项目(或通过Nuget安装),并与您的应用程序一起使用谢谢您的帮助!但是我想知道,是否已经有了预先存在的单点登录服务器,我可以用它来完成这项工作,而不是编写自己的实现?像耶鲁大学的CAS之类的?也许我遗漏了什么,但第一个链接似乎毫无用处。你可以直接破解查询字符串以绕过身份验证?@johnopeinto这也是我的想法。。对我来说不是很安全吗?我也这么想。不可能,SSO应该是这样工作的!第一个环节相当粗糙。首先,只要他说“实时”,就用“真实世界”取代它。最后,他暗示查询字符串中神奇的“IsAuthenticatedBySSO”应该用SAML标记替换,这将在后续文章中描述。不幸的是(?)该用户的帐户被关闭,因为他“滥用或是一个恶棍”。如果这是标识符提供者发起的模型,本文可能会有所帮助: