百度百科上说:“单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。”
不管是在手机应用还是互联网应用中,频繁的登录页面势必造成用户操作上的繁琐,用户体验度不高,造成用户的流失。而单点登录可以解决这个问题,用户一次登录,可全局运行。
在各种应用上单点登录又有点不同,本文主要就传统web页面的单点登录和大数据方面的单点登录作简要介绍。
web应用单点登录
众所周知,每一个稍复杂web项目都不仅仅有一个页面,假设不支持单点登录,如果每切换一个页面都需要重新加载登录界面的话,这将是使得用户非常头疼的一件事。web实现单点登录方法比较简单,主要通过统一认证系统来实现。
主要实现代码(可参考)
package DesktopSSO;
import java.io.*;
import java.net.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SSOAuth extends HttpServlet {
static private ConcurrentMap accounts;
static private ConcurrentMap SSOIDs;
String cookiename="WangYuDesktopSSOID";
String domainname;
public void init(ServletConfig config) throws ServletException {
super.init(config);
domainname= config.getInitParameter("domainname");
cookiename = config.getInitParameter("cookiename");
SSOIDs = new ConcurrentHashMap();
accounts=new ConcurrentHashMap();
accounts.put("wangyu", "wangyu");
accounts.put("paul", "paul");
accounts.put("carol", "carol");
}
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
String action = request.getParameter("action");
String result="failed";
if (action==null) {
handlerFromLogin(request,response);
} else if (action.equals("authcookie")){
String myCookie = request.getParameter("cookiename");
if (myCookie != null) result = authCookie(myCookie);
out.print(result);
out.close();
} else if (action.equals("authuser")) {
result=authNameAndPasswd(request,response);
out.print(result);
out.close();
} else if (action.equals("logout")) {
String myCookie = request.getParameter("cookiename");
logout(myCookie);
out.close();
}
}
.....
}
大数据应用中的单点登录
大数据单点登录主要考虑单点登录的安全性,下边将简要介绍下大数据中的安全管理:安全管理主要分为用户管理,权限管理,单点登录等。
对于用户管理,对用户安全管理需要对用户进行划分,然后根据一定的安全策略进行管理。
对于权限管理,权限管理是用户进行系统权限划分和设置的平台,按照管理的层次可划分为三个层面进行管理,用户、角色和功能。为了满足系统对权限和安全管理方面的要求,系统的设计主要满足以下几个方面的需求:
(1) 每个用户登录时,只要使用统一的登录名,就可以登录到各子系统中。
(2) 满足用户和权限管理可配置性,可以将系统内各功能模块(目前指页面)灵活的划分给用户,使他们具有进行相应功能操作的权限。
(3) 不同的权限可以看到不同的信息,权限高的可以看到权限低的信息,权限低的无法看到权限高的信息。
对于单点登录,单点登录是一种用于方便用户访问网络的技术,当用户访问网络时,需要注重密码的安全性,为了安全考虑,注册多个网站时,不能采取单一的密码。无论采用哪种单一密码方式,都可能为企业、个人的网络和系统带来潜在风险。
因此,在传统应用中实用的单点登录上升到大数据层次来看,是不适用的。
本文出现的代码主要参考:http://www.blogjava.net/xcp/archive/2010/04/13/318125.html