16
单点登录SSO 设计方案 Page of 1 16 ■ 拟定人: 王先明 ■ 审批人: ■ 发布范围: 内部使用 ■ 发布日期: 2009 0211 13:30

单点登录SSO设计方案 20090211

Embed Size (px)

Citation preview

Page 1: 单点登录SSO设计方案 20090211

单点登录SSO 设计方案

Page � of �1 16

■ 拟定人: 王先明 ■ 审批人:

■ 发布范围: 内部使用 ■ 发布日期: 2009 0211 13:30

Page 2: 单点登录SSO设计方案 20090211

Page � of �2 16

■ 版本变更记录

时间 版本 说明 修改人

2009-02-10 V0.1 初稿(2009 0210 14:30起草) 王先明

2009-02-11 V0.2 修订 王先明

2015-12-21 V0.3 修订 王先明

2015-12-24 V0.4 修订 王先明

Page 3: 单点登录SSO设计方案 20090211

目录 1. 项⽬目介绍 4

1.1. 背景介绍 4

1.2. 应⽤用场景 5

1.3. 基本流程 6

2. 设计⽅方案 7

2.1. 基本描述 7

2.2. 基础协议 8

2.3. 系统结构 9

2.4. 数据流程 11

2.5. 主要时序 12

2.6. 主要数据 15

3. 致谢 16

Page � of �3 16

Page 4: 单点登录SSO设计方案 20090211

1. 项目介绍

1.1. 背景介绍

企业内部,一般都有很多的业务支持系统为其提供相应的管理和IT服务。这些应用服务的目的都是让计算机来进行复杂繁琐的计算工作,提高工作效率和质量。这些不同的应用服务往往是在不同的时期建设起来的,随着企业的发展,应用服务的数量在不断的增加,老的应用服务却不能轻易的替换,需要维护的应用服务越来越多,各应用服务之间的相关性也越来越大,会给管理工作带来很大的压力。

通常来说,每个单独的系统都会有自己的安全体系和身份认证系统。在基于SOA(Service-Oriented Architecture,面向服务的体系结构)的系统中,服务和服务之间,程序和程序之间存在大量通讯,服务之间的安全认证是SOA应用的难点之一,为了降低管理的消耗,提高服务之间的合作效率, 大限度的重用已有投资的系统,很多企业都在不同层面上进行企业应用集成(EAI):在数据存储层面上的“数据大集中”,在传输层面上的“通用数据交换平台”,在应用层面上的“业务流程”,和用户界面上的“通用企业门户”等等。事实上,在用户身份认证层面上的“统一身份认证和授权机制”变得越来越重要。

那么,提到“统一身份认证和授权机制”,SSO(Single Sign-On,单点登录)就是其中一种,目前比较流行的服务于企业业务整合的解决方案之一,具体是指用户访问同一服务系统里不同应用服务中受保护资源的同一用户,只需登录一次,即通过一个服务系统里的安全验证后,再访问该应用服务(或其他应用服务中)中受保护资源时,不再需要重新登录。

Page � of �4 16

Page 5: 单点登录SSO设计方案 20090211

1.2. 应用场景

SSO应用场景,如下图1所示:

统一身份认证和授权机制应用场景(图1)

Page � of �5 16

Page 6: 单点登录SSO设计方案 20090211

1.3. 基本流程

SSO基本流程,如下图2所示:

统一身份认证和授权机制基本流程(图2)

Page � of �6 16

Page 7: 单点登录SSO设计方案 20090211

2. 设计方案

2.1. 基本描述

SSO(Single Sign On,单点登录):统一身份认证和授权机制,访问同一系统里的不同应用服务中受保护资源的同一用户,只需登录一次(即通过该系统的一个应用服务的安全验证后),再访问该应用服务(或该系统的其他应用服务)中受保护资源时,不再需要重新登录。

ST(Service Ticket,服务票据):用户通过SSO认证后,SSO根据用户访问的BS(Business Service,应用服务)。用户凭借ST访问BS,BS拿ST去SSO认证系统验证,验证通过后,允许用户访问资源。

TGT(Ticket Granting Ticket,票据授权票据,票据的票据):用户通过SSO认证后,SSO生成TGT并缓存,TGT封装了用户信息。当用户再次请求时,若有TGC,则以TGC的值为KEY查询缓存中有无TGT,若有,则用户已经认证,若无,则用户需要认证。

TGC(Ticket Granting Cookie,票据授权Cookie):用户通过SSO认证后,SSO认证生成TGC写入浏览器(TGC的值为TGT的ID),基于安全传输(HTTPS),用户和SSO认证系统间的用户认证凭证。

用户向Client(客户端)输入用户名提交到KDC(Key Distribution Center,密钥发放中心)以向AS(Authentication Service,认证服务)进行认证,KDC生成TGT和C-TGS SK(Client/TGS Session Key,Client/TGS会话密钥),TGT包含C-TGS SK,并在用户信息库中查找该用户的密码,用该密码对TGT进行加密,将结果发还给Client,该操作仅在Login(用户登录)时进行。Client收到该信息,并用用户的密码解密得到TGT。当用户向应用服务请求时,该用户发送TGT到TGS(Ticket Granting Service,票据授权服务)。当该用户的TGT通过TGS验证并且其有权访问所申请的应用服务时,TGS生成一个该应用服务所对应的ST返回给用户。用户将应用请求与该ST一并发送给相应服务即可。

Page � of �7 16

Page 8: 单点登录SSO设计方案 20090211

2.2. 基础协议

SSO基础协议,如下图3所示:

统一身份认证和授权机制基础协议(图3)

Page � of �8 16

Page 9: 单点登录SSO设计方案 20090211

2.3. 系统结构

从结构体系看,SSO包括两部分: SSOServer 和 SSOAgent。

SSOServer负责完成对用户的登录信息进行身份认证和票据验证:

1)为用户签发TGT和ST;

2)校验TGT和ST的有效性。

SSOServer需要独立部署 。

SSOAgent负责处理对用户受保护资源的访问请求,能够识别和提取用户请求中的ST,并向SSOServer验证ST的有效性。需要对请求方进行身份认证时,重定向到SSOServer 进行认证。准确地来说,它以Filter方式保护受保护的资源。对于访问受保护资源的每个用户请求,SSOAgent识别和提取请求中是否包含ST。SSOAgent和受保护的应用服务部署在一起。

SSO系统结构,如下图4所示:

Page � of �9 16

Page 10: 单点登录SSO设计方案 20090211

统一身份认证和授权机制系统结构(图4)

Page � of �10 16

Page 11: 单点登录SSO设计方案 20090211

2.4. 数据流程

SSO具体流程,如下图5所示:

统一身份认证和授权机制具体流程(图5)

Page � of �11 16

Page 12: 单点登录SSO设计方案 20090211

2.5. 主要时序

用户未登录首次访问某一应用点,如下图6所示:

统一身份认证和授权机制流程时序-未登录首次访问某一应用点(图6)

Page � of �12 16

Page 13: 单点登录SSO设计方案 20090211

用户已登录再次访问某一应用点,如下图7所示:

统一身份认证和授权机制流程时序-已登录再次访问某一应用点(图7)

Page � of �13 16

Page 14: 单点登录SSO设计方案 20090211

用户已登录首次访问某一应用点,如下图8所示:

统一身份认证和授权机制流程时序-已登录首次访问某一应用点(图8)

Page � of �14 16

Page 15: 单点登录SSO设计方案 20090211

2.6. 主要数据

授权凭证(Credential)

Page � of �15 16

Page 16: 单点登录SSO设计方案 20090211

3. 致谢

Page � of �16 16