什么是单点登录说通俗点?单点登录如何实现?
单点登录通俗点讲就是只需要登录一次就可以访问所有相互信任的应用系统。
应该没有没有比这个更通俗的了。
单点登录如何实现呢?有些大公司可能会想着自己研发实现,但是他们面临的问题就是没有集成公司所有的系统,各个系统的协议及接口不一样,导致无法完美的姐姐自研系统和没有标准接口应用的问题。
不过现在已经公司专攻这个方向并实现了产品化,比如玉符科技sso,可以去了解一下。
.net 怎样实现单点登录
所谓单点登录(Single Sign On就是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
其实对于程序员在技术上要实现就得就是多个不同域名间共享cookie的问题。
最近在为ERP添加一个部署在另一台机器上,链接到原有老系统中的子项目,调用原有老项目中的Login实现单点登录,尝试了N次屡试不成,最后确定问题,是,2.0与4.0中对cookie的加密/解密方法由此差异,于是经过研究,重写实现了一个可以在不同版本中实现单点登录的简单方法。
代码:
protected void btnLogin_Click(object sender, EventArgs e)
{
//认证开票,跳转到原始请求页面
System.Web.Security.FormsAuthentication.RedirectFromLoginPage("ejiyuan", false);
}
配置文件:
pilation debug="true"/>
到底这个单点登录系统能有什么好处呢,为什么一点要实现单点登录?
单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。
1)提高用户的效率。
用户不再被多次登录困扰,也不需要记住多个 ID 和密码。
另外,用户忘记密码并求助于支持人员的情况也会减少。
2)提高开发人员的效率。
SSO 为开发人员提供了一个通用的身份验证框架。
实际上,如果 SSO 机制是独立的,那么开发人员就完全不需要为身份验证操心。
他们可以假设,只要对应用程序的请求附带一个用户名,身份验证就已经完成了。
3)简化管理。
如果应用程序加入了单点登录协议,管理用户帐号的负担就会减轻。
简化的程度取决于应用程序,因为 SSO 只处理身份验证。
所以,应用程序可能仍然需要设置用户的属性(比如访问特权)。
实现方式我了解到的大概分三种:
1. 以Cookie作为凭证媒介?
最简单的单点登录实现方式,是使用cookie作为媒介,存放用户凭证。
?
用户登录父应用之后,应用返回一个加密的cookie,当用户访问子应用的时候,携带上这个cookie,授权应用解密cookie并进行校验,校验通过则登录当前用户。
2. 通过JSONP实现?
对于跨域问题,可以使用JSONP实现。
?
用户在父应用中登录后,跟Session匹配的Cookie会存到客户端中,当用户需要登录子应用的时候,授权应用访问父应用提供的JSONP接口,并在请求中带上父应用域名下的Cookie,父应用接收到请求,验证用户的登录状态,返回加密的信息,子应用通过解析返回来的加密信息来验证用户,如果通过验证则登录用户。
3. 通过页面重定向的方式?
最后一种介绍的方式,是通过父应用和子应用来回重定向中进行通信,实现信息的安全传递。
?
父应用提供一个GET方式的登录接口,用户通过子应用重定向连接的方式访问这个接口,如果用户还没有登录,则返回一个的登录页面,用户输入账号密码进行登录。
如果用户已经登录了,则生成加密的Token,并且重定向到子应用提供的验证Token的接口,通过解密和校验之后,子应用登录当前用户。
什么是SSO
SSO英文全称Single Sign On,单点登录。
SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。
它是目前比较流行的企业业务整合的解决方案之一。
腾讯已经做到了吧,你只要开着QQ,打开邮箱,空间,都是不用再次输入帐号密码的了。
单点登录 是什么
首先单点登录,适合有多个系统的场景,比如现在有
OA系统、门户系统、人力资源管理系统、档案管理系统、生产管理系统、xx系统等,这么多个系统
在一个公司里面,如果一个用户需要使用这么多个系统,那每天都要登录N多系统,太浪费时间了(其他还有统一用户、统一权限的问题,这里先不谈这个)
所以单点登录就是,如果用户在门户系统登录了,那么他打开OA系统、生产管理系统的时候就不用再登录了,因为他已经在门户系统登录过一次
这就是单点登录,单点登录的字面意思就是在一个地方登录,其他系统就不用再登录了。
具体的实现可以百度一下,如果有不清楚的我再补充