sso统一身份认证和访问控制解决实施方案.docx
《sso统一身份认证和访问控制解决实施方案.docx》由会员分享,可在线阅读,更多相关《sso统一身份认证和访问控制解决实施方案.docx(8页珍藏版)》请在冰豆网上搜索。
![sso统一身份认证和访问控制解决实施方案.docx](https://file1.bdocx.com/fileroot1/2023-1/23/bdfc127e-dbd8-4e38-af3d-517cc8683b7d/bdfc127e-dbd8-4e38-af3d-517cc8683b7d1.gif)
sso统一身份认证和访问控制解决实施方案
统一身份认证及访问控制
技术方案
1.方案概述
1.1.项目背景
随着信息化的迅猛发展,政府、企业、机构等不断增加基于Internet/Intranet的业务系统,如各类网上申报系统,网上审批系统,OA系统等。
系统的业务性质,一般都要求实现用户管理、身份认证、授权等必不可少的安全措施;而新系统的涌现,在与已有系统的集成或融合上,特别是针对相同的用户群,会带来以下的问题:
1)如果每个系统都开发各自的身份认证系统将造成资源的浪费,消耗开发成本,并延缓开发进度;
2)多个身份认证系统会增加整个系统的管理工作成本;
3)用户需要记忆多个帐户和口令,使用极为不便,同时由于用户口令遗忘而导致的支持费用不断上涨;
4)无法实现统一认证和授权,多个身份认证系统使安全策略必须逐个在不同的系统内进行设置,因而造成修改策略的进度可能跟不上策略的变化;
5)无法统一分析用户的应用行为;因此,对于有多个业务系统应用需求的政府、企业或机构等,需要配置一套统一的身份认证系统,以实现集中统一的身份认证,并减少整个系统的成本。
单点登录系统的目的就是为这样的应用系统提供集中统一的身份认证,实现“一点登录、多点漫游、即插即用、应用无关"的目标,方便用户使用。
1.2.系统概述
针对上述状况,企业单位希望为用户提供统一的信息资源认证访问入口,建立统一的、基于角色的和个性化的信息访问、集成平台的单点登录平台系统。
该系统具备如下特点:
单点登录:
用户只需登录一次,即可通过单点登录系统(SSO)访问后台的多个应用系统,无需重新登录后台的各个应用系统。
后台应用系统的用户名和口令可以各不相同,并且实现单点登录时,后台应用系统无需任何修改。
即插即用:
通过简单的配置,无须用户修改任何现有B/S、C/S应用系统,即可使用。
解决了当前其他SSO解决方案实施困难的难题。
多样的身份认证机制:
同时支持基于PKI/CA数字证书和用户名/口令身份认证方式,可单独使用也可组合使用。
基于角色访问控制:
根据用户的角色和URL实现访问控制功能。
基于Web界面管理:
系统所有管理功能都通过Web方式实现。
网络管理人员和系统管理员可以通过浏览器在任何地方进行远程访问管理。
此外,可以使用HTTPS安全地进行管理。
全面的日志审计:
精确地记录用户的日志,可按日期、地址、用户、资源等信息对日志进行查询、统计和分析。
审计结果通过Web界面以图表的形式展现给管理员。
双机热备:
通过双机热备功能,提高系统的可用性,满足企业级用户的需求。
集群:
通过集群功能,为企业提供高效、可靠的SSO服务。
可实现分布式部署,提供灵活的解决方案。
传输加密:
支持多种对称和非对称加密算法,保证用户信息在传输过程中不被窃取和篡改。
防火墙:
基于状态检测技术,支持NAT。
主要用于加强SSO本身的安全,也适用于网络性能要求不高的场合,以减少投资。
分布式安装:
对物理上不在一个区域的网络应用服务器可以进行分布式部署SSO系统。
后台用户数据库支持:
LDAP、Oracle、DB2、Win2kADS、Sybase等。
可以无缝集成现有的应用系统的统一用户数据库作为SSO应用软件系统的用户数据库。
领先的C/S单点登录解决方案:
无需修改任何现有的应用系统服务端和客户端即可实现C/S单点登录系统
2.总体方案设计
2.1.业务功能架构
通过实施单点登录功能,使用户只需一次登录就可以根据相关的规则去访问不同的应用系统,提高信息系统的易用性、安全性、稳定性;在此基础上进一步实现用户在异构系统(不同平台上建立不同应用服务器的业务系统),高速协同办公和企业知识管理功能。
单点登录系统能够与统一权限管理系统实现无缝结合,签发合法用户的权限票据,从而能够使合法用户进入其权限范围内的各应用系统,并完成符合其权限的操作。
单点登录系统同时可以采用基于数字证书的加密和数字签名技术,对用户实行集中统一的管理和身份认证,并作为各应用系统的统一登录入口。
单点登录系统在增加系统安全性、降低管理成本方面有突出作用,不仅规避密码安全风险,还简化用户认证的相关应用操作。
系统结构图
说明:
CA安全基础设施可以采用自建方式,也可以选择第三方CA。
具体包含以下主要功能模块:
✧身份认证中心
✧存储企业用户目录,完成对用户身份、角色等信息的统一管理;
✧授权和访问管理系统
✧用户的授权、角色分配;
✧访问策略的定制和管理;
✧用户授权信息的自动同步;
✧用户访问的实时监控、安全审计;
✧身份认证服务
✧身份认证前置为应用系统提供安全认证服务接口,中转认证和访问请求;
✧身份认证服务完成对用户身份的认证和角色的转换;
✧访问控制服务
✧应用系统插件从应用系统获取单点登录所需的用户信息;
✧用户单点登录过程中,生成访问业务系统的请求,对敏感信息加密签名;
✧CA中心及数字证书网上受理系统
✧用户身份认证和单点登录过程中所需证书的签发;
✧用户身份认证凭证(USB智能密钥)的制作;
2.2.技术实现方案
2.2.1.技术原理
基于数字证书的单点登录技术,使各信息资源和本防护系统站成为一个有机的整体。
通过在各信息资源端安装访问控制代理中间件,和防护系统的认证服务器通信,利用系统提供的安全保障和信息服务,共享安全优势。
系统交互图
其原理如下:
1)每个信息资源配置一个访问代理,并为不同的代理分配不同的数字证书,用来保证和系统服务之间的安全通信。
2)用户登录中心后,根据用户提供的数字证书确认用户的身份。
3)访问一个具体的信息资源时,系统服务用访问代理对应的数字证书,把用户的身份信息机密后以数字信封的形式传递给相应的信息资源服务器。
4)信息资源服务器在接受到数字信封后,通过访问代理,进行解密验证,得到用户身份。
根据用户身份,进行内部权限的认证。
2.2.2.统一身份认证
2.2.2.1.用户认证
统一身份管理及访问控制系统用户数据独立于各应用系统,对于数字证书的用户来说,用户证书的序列号平台中是唯一的,对于非证书用户来说,平台用户ID(passport)是唯一的,由其作为平台用户的统一标识。
如下图所示:
(1)、在通过平台统一认证后,可以从登录认证结果中获取平台用户证书的序列号或平台用户ID;
(2)、再由其映射不同应用系统的用户账户;
(3)、最后用映射后的账户访问相应的应用系统;
当增加一个应用系统时,只需要增加平台用户证书序列号或平台用户ID与该应用系统账户的一个映射关系即可,不会对其它应用系统产生任何影响,从而解决登录认证时不同应用系统之间用户交叉和用户账户不同的问题。
单点登录过程均通过安全通道来保证数据传输的安全。
2.2.2.2.系统接入
应用系统接入平台的架构如下图所示:
系统提供两种应用系统接入方式,以快速实现单点登录:
(1)反向代理(ReverseProxy)方式
应用系统无需开发、无需改动。
对于不能作改动或没有原厂商配合的应用系统,可以使用该方式接入统一用户管理平台。
反向代理技术:
实现方式为松耦合,采用反向代理模块和单点登录(SSO)认证服务进行交互验证用户信息,完成应用系统单点登录。
(2)Plug-in方式
Plug-in:
实现方式为紧耦合,采用集成插件的方式与单点登录(SSO)认证服务进行交互验证用户信息,完成应用系统单点登录。
紧耦合方式提供多种API,通过简单调用即可实现单点登录(SSO)。
2.2.3.统一权限管理
统一身份管理及访问控制系统的典型授权管理模型如下图所示:
用户授权的基础是对用户的统一管理,对于在用户信息库中新注册的用户,通过自动授权或手工授权方式,为用户分配角色、对应用系统的访问权限、应用系统操作权限,完成对用户的授权。
如果用户在用户信息库中被删除,则其相应的授权信息也将被删除。
完整的用户授权流程如下:
1、用户信息统一管理,包括了用户的注册、用户信息变更、用户注销;
2、权限管理系统自动获取新增(或注销)用户信息,并根据设置自动分配(或删除)默认权限和用户角色;
3、用户管理员可以基于角色调整用户授权(适用于用户权限批量处理)或直接调整单个用户的授权;
4、授权信息记录到用户属性证书或用户信息库(关系型数据库、LDAP目录服务)中;
5、用户登录到应用系统,由身份认证系统检验用户的权限信息并返回给应用系统,满足应用系统的权限要求可以进行操作,否则拒绝操作;
6、用户的授权信息和操作信息均被记录到日志中,可以形成完整的用户授权表、用户访问统计表。
2.2.4.安全通道
提供的安全通道是利用数字签名进行身份认证,采用数字信封进行信息加密的基于SSL协议的安全通道产品,实现了服务器端和客户端嵌入式的数据安全隔离机制。
图:
使用前
图:
使用后
安全通道的主要用途是在两个通信应用程序之间提供私密性和可靠性,这个过程通过3个元素来完成:
(1)握手协议:
这个协议负责协商用于客户机和服务器之间会话的加密参数。
当一个SSL客户机和服务器第一次开始通信时,它们在一个协议版本上达成一致,选择加密算法和认证方式,并使用公钥技术来生成共享密钥。
(2)记录协议:
这个协议用于交换应用数据。
应用程序消息被分割成可管理的数据块,还可以压缩,并产生一个MAC(消息认证代码),然后结果被加密并传输。
接受方接受数据并对它解密,校验MAC,解压并重新组合,把结果提供给应用程序协议。
(3)警告协议:
这个协议用于标示在什么时候发生了错误或两个主机之间的会话在什么时候终止。