百度百科上说:“单点登录(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

 

posted on 2014-12-28 11:32  程双杰的博客  阅读(432)  评论(0编辑  收藏  举报