去评论
爱生活

java web应用如何实现单点登录,单点登录怎么实现

123
2022/08/15 07:18:01

java web应用如何实现单点登录


单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。实现单点登录需要两个部分的合作:统一的身份认证服务和修改Web应用,使得每个应用都通过这个统一的认证服务来进行身份效验。


哪个知道单点登录实现方法?


一般来说,有三种处理方式:
以Cookie作为凭证媒介
最简单的单点登录实现方式,是使用cookie作为媒介,存放用户凭证。
通过JSONP实现
对于跨域问题,可以使用JSONP实现。
通过页面重定向的方式
最后一种介绍的方式,是通过父应用和子应用来回重定向中进行通信,实现信息的安全传递。
目前市场上主流的做单点登录的公司比如玉符科技,深耕单点登录SSO领域,可以满足客户遇到的如何实现单点登录?企业如何实现统一认证?的难题,通过玉符单点登录可以快速的帮助企业实现云认证,像SAML、OIDC、CAS、Ouath等主流协议全部支持,可以实现快速部署,交付周期短,适合各行业企业。


怎么实现简单单点登录?


  所谓单点登录(Single Sign On就是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。其实对于程序员在技术上要实现就得就是多个不同域名间共享cookie的问题。
  最近在为ERP添加一个部署在另一台机器上,链接到原有老系统中的子项目,调用原有老项目中的Login实现单点登录,尝试了N次屡试不成,最后确定问题,是,.net2.0与4.0中对cookie的加密/解密方法由此差异,于是经过研究,重写实现了一个可以在不同.net版本中实现单点登录的简单方法。
  代码:

  protected void btnLogin_Click(object sender, EventArgs e)
  {
  //认证开票,跳转到原始请求页面
  System.Web.Security.FormsAuthentication.RedirectFromLoginPage("ejiyuan", false);
  }

  配置文件:

  <!--访问权限控制-->
  <authorization>
  <deny users="?"/>
  </authorization>
  <!--身份认证方式-->
  <authentication mode="Forms">
  <forms name=".ASPNET" protection="All" enableCrossAppRedirects="true" loginUrl="Lo

单点登录原理


单点登录是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的保护资源,若用户在某个应用系统中进行注销登录,所有的应用系统都不能再直接访问保护资源,像一些知名的大型网站,如:淘宝与天猫、新浪微博与新浪博客等都用到了这个技术。 原理 单点登录 有一个独立的认证中心,只有认证中心才能接受用户的用户名和密码等信息进行认证,其他系统不提供登录入口,只接受认证中心的间接授权。