asp.net – 如何将AD身份验证SSO与现有的Forms身份验证的Saas We
我们在IIS 7.5公共服务器上使用Forms身份验证运行Saas ASP.NET 3.5 Web应用程序,该服务器具有受保护内容,适用于数千名用户.我们还有一些运行ASP.NET MVC 2的子应用程序.
用户名和密码存储在我们的数据库中,每个用户都附加了角色和组,并定义了权限和访问权限. 现在我们已经被要求通过Active Directory进行简单的SSO登录,以便用户无需输入两次用户名和密码即可登录.这些用户将来自不同的网络和域. 从我们的服务器到LDAP服务器不应该发生用户“同步”.我们不确定是否需要与LDAP进行任何通信,因为所有用户都将在我们的系统中创建并在那里进行维护.表单身份验证将用于大多数用户. 从这里开始,我们不确定哪条路是最佳选择.对于我们的场景,什么是“最佳实践”方式? 解决方法
简单的答案是SAML.它被认为是“最佳实践”,许多大型SAAS提供商都支持它.
SAML协议定义了多个系统之间的单点登录流程.它使用证书在系统之间建立信任.您的应用程序接受包含来自其他系统的属性(用户ID,名称,电子邮件地址等)的断言.您的应用会将用户映射到您的用户商店. 在.NET世界中有几种选择.您可以找到一个实现SAML的库(ComponentSpace有一个)并将其挂钩到ASP.NET身份验证中.您可以使用Windows Identify Framework(WIF)创建自己的.这是WIF视频http://www.cloudidentity.com/blog/2010/06/23/ALL-WILL-BE-REVEALED-7-HOURS-RECORDINGS-FROM-THE-WIF-WORKSHOPS/的大量载荷.您可以尝试使用IdentityServer http://thinktecture.github.io/ 根据应用程序的安全性,您可以选择使用简化方法从可信网络传递用户ID的简单选项.我见过允许用户ID通过URL参数或表单字段发送的应用程序.当然,这是非常不安全的,并且您承担更多风险,因为两个网络之间的信任不是以加密方式强制执行的.您可以通过检查引用者字符串或IP地址来缓解它(例如,如果您可以隔离公司网络的IP范围).但您仍然可以欺骗,因为任何用户都可以通过简单地替换HTTP请求中的用户ID来冒充他人. 它可能没有完全回答你的问题,但希望能指出你正确的方向. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- .net – 回发数据和视图状态数据之间的区别是什么
- Asp.net core 使用log4net作为日志组件,记录日志到本地。
- ASP.NET Core 2.0 本地文件操作问题及解决方案
- asp.net-mvc – 将数据发布回ASP.NET MVC子操作
- asp.net-mvc – Ajax Request返回HTTP错误500,使用MVC和$.a
- asp.net-mvc – 如何在ASP.NET MVC RC1中返回304状态与File
- asp.net-mvc – ASP.NET MVC读取原始JSON信息数据
- 实体框架 – EF Codefirst和RDLC Reports
- asp.net-mvc – 使用MVC 4和实体框架填充DropDownList
- asp.net – 如何在Firefox中解码来自jQuery $.ajax请求的XM
- asp.net – 我可以在docker容器中运行IIS上托管的
- ASP.Net MVC4 WebApi代理
- asp.net-identity – AspNet Identity使用相同的
- asp.net-mvc-3 – 从HttpContext.Current访问Tem
- ASP.NET Core 认证与授权[3]:OAuth & OpenID
- 如何在ASP.NET中手动设置按钮输入类型?
- ASP.NET:如何从通用处理程序获取文件的虚拟路径
- asp.net核心,角度2,PrimeNG
- asp.net – 如何维护具有大量分支的SQL Server D
- asp.net-mvc – 如何根据接受的HTTP动词重载ASP.