安全生产中国移动SOP门户系统安全配置手册.docx
《安全生产中国移动SOP门户系统安全配置手册.docx》由会员分享,可在线阅读,更多相关《安全生产中国移动SOP门户系统安全配置手册.docx(25页珍藏版)》请在冰豆网上搜索。
安全生产中国移动SOP门户系统安全配置手册
密级:
文档编号:
项目代号:
中国移动SunOnePortal
安全配置手册
Version1.0
中国移动通信有限公司
二零零四年十二月
拟制:
审核:
批准:
会签:
标准化:
版本控制
版本号
日期
参与人员
更新说明
分发控制
编号
读者
文档权限
与文档的主要关系
1
创建、修改、读取
负责编制、修改、审核
2
批准
负责本文档的批准程序
3
标准化审核
作为本项目的标准化负责人,负责对本文档进行标准化审核
4
读取
5
读取
第一章SunOnePortal安全概述
一.1SunOnePortal简介
SunOnePortal是Sun公司为企业提供的信息门户解决方案产品,它是基于C/S的Web架构,能够满足B2B,B2C,B2E的企业信息平台要求。
SunOnePortal能够对企业的各个应用系统进行整合展现,能够根据用户的需要进行内容定制和个性化展现。
它能够对企业各应用系统资源进行统一管理,对各系统用户进行统一管理,能够按用户权限对资源进行分配,实现SSO单点登录。
SunOnePortal的标准配置产品包括:
SunOneWebServer,SunOneIdentityServer,SunOneDirectoryServer,SunOneRemoteAccess.MobileRemoteAccess(这里介绍的技术是依据PortalServer6.2)。
SunOneWebServer:
它是Web服务器,为Portal应用提供java运行环境。
支持SSL加密通讯。
SunOneIdentityServer:
它是SunOne的认证服务器,为Portal提供认证服务,包括身份认证,授权服务,单点登录服务。
SunOneDirectorySever:
它是SunOne的目录服务器,为IdentityServer、Portalserver提供信息存储服务:
包括用户信息,访问配置信息,认证信息,权限信息以及portal的配置信息。
SunOnePortalRemoteAccess:
它为PortalServer提供外网接入服务。
是用户由外网访问Portal的反向代理,支持SSL访问协议。
MobileRemoteAcess:
提供支持WAP协议的手持设备的访问服务。
一.2工作原理
下图是江苏移动统一信息平台的首页:
在这个页面中,用户通过登陆到江苏移动的统一信息平台访问到OA系统,经营分析等系统提供的功能,这些系统的功能是通过统一信息平台展现给用户的。
Portal的信息是以Portlet为最小单位展现给用户的,每个portlet都为用户提供相应的功能。
在页面上,多个porlet组成了Tab页面用户可以通过点击Tab链接进入到相关主题的页面。
Portal的开发主要包括如下几个方面:
1.集成内容的开发;
确定要集成的内容和方式。
完成由Portal到其他系统单点登录,数据抽取和展现的工作。
2.Portlet和页面的开发、部署。
Porlet是内容的展现。
Tab页是多个Portlet聚合在一起的页面。
它们的开发是按照用户对界面的需求来进行的。
3.用户、组织、角色信息和服务(service)信息建立。
在IdentityServer上建立用户信息、组织、角色信息及服务信息。
服务包括很多种类,我们常用的是桌面服务(desktopservice),我们根据用户的需要建立不同内容的桌面服务。
4.DesktopService的分配。
按照需求将不同的桌面服务分配到不同的组织、角色、用户中去。
下面着重介绍SunOnePortal的安全方面的特性:
下图是一个典型通过RemoteAccess访问Portal系统的拓扑示意图:
SunOnePortal安全性包括四个方面:
一,安全的接入,二,用户的身份认证和授权。
三,Portal的资源访问控制。
四,集中的信息储存。
一.2.1安全的接入
安全接入是保证访问用户和server之间,提供不同服务的server和server之间传递的数据不被监听,窃取和窜改。
并且保证Portal服务器对终端用户开放的服务仅仅限于http或https的服务端口。
对于用户通过外网访问portal,要先通过RemoteAccess组件,这之间的访问协议通常配置成SSL,企业员工在企业DMZ区访问Poral,访问协议也支持SSL。
而在Portal服务器和DirectoryServer之间的访问同样支持ldap协议上的SSL。
这样就确保从用户到RemoteAccess,从Portal到DirectoryServer之间的信息传递的安全性。
RemoteAcess通常是部署在企业的DMZ区,通常有两块网卡,一个连接到Internet,另一块连接到企业的内部网。
企业员工如果从外网访问PortalServer的服务,键入的是RemoteAcess所提供的网页地址,RemoteAcess通过对URL地址的重写,将以用户的请求转发给PortalServer来处理并将结果转发给用户。
一.2.2用户的身份认证和授权:
用户访问Portal的身份的认证和授权是由IdentiyServer来完成的。
当用户访问Portal服务时。
IdentityServer首先截获用户的请求。
当检测到用户没有被认证过后,IdnetityServer就会将用户转向到登录界面。
要求用户输入用户名和密码。
在用户提交用户名和密码后。
IdentityServer会到DirectoryServer的用户列表中去匹配,如果验证通过,IdentityServer就会将用户的组织信息角色信息取出来,放在session中,并对用户要访问的Portal桌面进行进行权限匹配,如果该员工有权进行访问。
则IdentityServer就将用户重定向到Portal的服务页面。
而Portal则根据用户的在session中存储的用户桌面服务信息来组织页面。
一.2.3资源的访问控制
Portal作为一个集成平台。
所集成的系统是通过Web页面来展现给终端用户的。
页面上信息的展现单位是Portlet,Tab页是多个portlet的集合。
对于不同组织,角色的用户来说他们的权限是不同,通过Portal访问到的应用系统也不同。
用户看到的portlet、Tab页都不会相同。
另一方面Portlet和Tab的组织,可以根据用户的需求。
按照组织,角色进行定制。
在SunOnePortal中控制不同Portlet组合、页面组合。
不同权限用户的页面就是不同的Tab页和porlet的组合。
这些组合(包括属性信息)是存放在DesktopProfile文件中的,是用户、组织、角色的属性。
在开发过程中,我们要开发这些Tab页和portlet,来将其他系统集成在portal上。
再根据需求对组织的desktopprofile,角色的desktopprofile或用户个人的desktopprofile进行定制,以完成个性化,角色化、组织化的桌面资源展现。
一.2.4集中的信息存取
DirecotryServer是Portal平台的重要组成部分。
它为Portal提供信息存储服务。
Portal所有的配置信息;用户,组织,角色等的信息都存储在DirectoryServer中。
Portal和DirectoryServer之间的通讯是LDAP协议,或基于LDAP的SSL协议。
在安装过程中,DirecotryServer为Portal提供一个访问用户,这个用户用于建立和维护Potal的所有配置信息和用户等信息。
用户名的密码是以加密的形式储存在Portal的配置文件中。
一.3功能与定位
SunOnePortal是一个企业级的信息门户平台。
这个平台为提供给企业如下的功能:
1.为企业各个应用系统提供内容聚合展现的平台:
企业的各个应用系统往往都是各自独立的。
用户在访问它们的时候,要做很多重复登陆操作。
Portal通过实现对各个应用系统的内容聚合展现,使得用户通过一个平台就可以访问到多个系统,这样大大的方便用户。
通过这样的整合展现,提高了各应用系统之间信息关联性和共享性。
SunOnePortal为企业建立了一个信息交流和共享的平台,一个协同工作的平台。
这是Potal的最大的优点。
2.实现单点登陆,提高安全性:
用户登录Portal之后,访问其他系统无需再次输入用户名/密码。
这一方面方便了用户使用。
另一方面也提高了系统的安全性,因为记忆和使用多个用户名和密码这会在客观上给系统带来不安全性。
Portal的功能之一是将各应用系统的用户名和密码进行整合。
使用Portal对它们进行统一管理。
3.实现统一的用户管理,建立集中的用户资源信息:
对于不同的应用系统,用户的信息往往也是分散而各自独立。
随着企业信息化建设的深入。
系统之间的关联性愈来愈重要。
用户信息的不同往往给信息的共享和交换带来很大的不便,同时多个用户名的管理和维护也给企业带来安全上的隐患。
Portal通过建立统一集中的用户信息。
为企业的其他应用系统提供了统一集中的的目录信息服务。
为了兼容其他用户系统,SunOnePortal可以通过MetaDirectoryServer软件,实现和现有系统的用户信息同步。
通过对IdentityServer的员工信息的管理,就可以实现对各个应用系统的用户的管理。
这样的集中管理,免除了分散管理所带来的弊端,增强了用户信息的集中性和利用率,也为企业的员工信息化管理建立了一个统一、标准的平台。
一.4特点和局限性
SunOnePortal作为企业门户网站解决方案,它实现了标准的电子商务体系结构。
它所提供的核心产品,为用户提供了具有高度可伸缩的门户网站的基础结构。
用户在这个基础上可以做更进一步的扩展:
将更多的应用系统集成进来。
实现应用集成,信息共享,协同工作等功能。
在技术层面上看,SunOnePortal是web的应用系统。
SunOnePortalServer和IdentityServer是遵照J2EE标准来开发、实现的。
因此它们可以部署在诸如WebLogic,WebSphere,SunOneApplication等应用服务器上,这样可以有效利用用户现有资源,有充分的灵活性。
SunOnePortal以SunOneDirectory为目录服务器,这种目录服务器在同类产品中具有优秀的性能。
SunOnePoratl的产品组件少,结构清晰,功能相对简单实用。
Portal的开发相对容易,可以为用户节省投入成本。
SunOnePortal作为SunOne的门户解决方案产品和业界的其他产品比较。
功能相对简单,产品线比较短。
SunOneIdentityServer.的功能比较单一。
实现的功能比较有限。
在Poral的用户管理方面,SSO方面,实施人员要做一定的开发工作。
第二章3A服务
3A是指authentication,authorization,administration。
SunOnePortal的组件:
SunOneIdentityServer所提供服务就涵盖这三个方面:
二.1身份认证(Authentication)
1Anonymous访问,我们禁止使用匿名访问的方式。
2需要认证的访问,IdentityServerz支持认证方式包括:
Certificate-basedLDAP,Membership(Self-Registration),NT,Radius,SafeWord,Unix。
对应不同的认证方式,我们需要不同的软件/硬件相配和。
我们只采用LDAP的认证方式,即用户的用户名和密码是配置在目录服务器中,IdentityServer将用户输入的用户名和密码和目录服务器中的相比来判断是否允许用户是否可以登录。
在配置中,我们需要指定目录服务器的访问地址,访问帐号和密码(密码是加密保存的)。
IdentityServer采用基于加密算法的token字符串,作为标识用户的方法:
当用户访问由IdentityServer所保护的Web应用时,如Portal,IdentityServer的Agent就会将请求截获,并转发给IdentityServer做认证。
IentityServer从用户的Cookie中取出token串,来作验证,如果用户没有Token串或验证没有通过,IentityServer就会将用户重定向到IentityServer的认证界面。
请求用户输入用户名和密码。
只有当验证通过时,IentityServer会将用户原先的请求转向到它访问的应用页面去。
IdentityServer的多种认证方式可以应用到不同的组织,角色,甚至是不同的策略服务都可以支持不同的认证管理方法。
二.2授权(Authorization)
权的概念在IdentityServer中是以service来体现的。
如:
desktopservice。
不同的desktopservice,就是不同的porlet的组合和展现。
管理者将不同的desktopservice分配给不同的用户,那么用户登录到Portal之后看到的就是不同桌面内容的服务。
如果用户没有desktopservice的服务,他就不能看到桌面的内容。
IdentityServer对用户的授权是多级别的:
不同的组织,角色,用户都可以有自己的Service。
而对于从属于给定组织或角色的用户来说,service是有继承关系的。
对于多层的组织架构来说,service也是同样具有继承性。
这就方便了权限的管理。
不必将Service一个一个的付给用户。
下图是CMCC组织下所拥有的service:
个人的desktopserviceices如下图所示:
二.3安全管理(Administration)
Administration管理是IdentityServer对用户和资源的管理,以及DirectoryServer的管理。
二.3.1用户的管理
用户管理包括对用户(user)管理,用户的组(group)管理,组织(organization)管理,角色(role)管理,策略(policy)管理。
这些任务可以由管理员(amadmin)来进行,也可以由指定的组织(organization)的管理员来进行。
●用户管理:
管理员可以对用户的信息(帐号信息,用户姓名,电话等信息)进行增、删、改等操作。
用户可以对自己的也可以进行修改(但是不可删除)。
管理员也可以暂时终止用户的访问而不删除他,也可以在SessionStatus的链接查找是否该用户在线及其在线使用情况。
管理员可以为用户设定初始密码,用户登录后,要主动更改其登录PortalSever的密码。
密码的位数应当在8位以上,禁止采用password,和用户名相同的密码等常用密码。
并要求用户定期修改自己的密码。
●组(group)管理
是对一组用户的集合。
组的划分可以根据用户的共同特征,功能,或者兴趣。
它可以为应用系统提供分组用户的信息,方便使用。
●组织(organization)管理
它是按照用户的组织架构信息,来对应建立用户组织信息。
在其组织下建立用户信息。
对应组织,超级管理员可以将对该组织的管理权限分配给其组织的特定的用户。
这样,该用户就有了对其组织下人员的管理权限,还包括属于该组织的服务配置,认证管理等权利。
组织的管理是多层的。
符合实际情况,我们可以在组织下边再建立组织。
●角色管理(role)
角色管理是相似于组、组织的管理。
一个用户可以属于多个角色,角色中可以有不同服务(service),不同策略(policy)。
不同用户的不同桌面展现我们是通过role来设定的。
二.3.2资源的管理
●服务管理(Service)
在portal的环境中,我们主要是对desktopservice来进行管理。
Desktopservice中可以定义用户的首页,各个页面的位置和Tab页中Portlet的组合,页面的属性,Portlet的属性等等。
如下图所示:
首页(SY)是desktopservice的一个属性。
●策略管理(Policy)
策略管理是用于保护基于web的应用服务。
我们可以对所集成的web应用服务进行访问策略管理:
首先将其作为一种服务(service)注册到identityserver中,再建立策略管理,制定访问条件时间段、IP段、指定可以访问的用户、组织、角色或组以及对访问用户的认证方式。
通过这样的设置实现IdentityServer对web应用服务的统一访问管理。
如下图是Desktoppolicy,在js.cmcc下的“AbilitytoexecutePortalServerDesktop”是默认的policy。
●日志服务(loggingservice)
SunOneIdentity的日志服务(loggingservice)记录下用户访问SunOnePortal的一些信息。
包括accessdenial(拒绝访问)、approvals(准许)、代码例外(codeexception)等信息。
管理员通过对日志的分析可以了解用户的loginlogout,ideltime等的访问情况。
Loggingservice配置是amLogging.xml,位置在/SUNWam/config/xml。
我们可以通过它来配置loggingservice的各项参数。
日志的输出分文本和数据库两种(Flatfileformat,RelationalDataBaseFormat),作为文本文件输出我们可以在/var/opt/SUNWam/目录下找到。
它们的输出信息项请参考联机文档。
Loggerlogger=Logger.getLogger("SampleLogFile");
//CreatesthefileortableintheLogLocationspecifiedinthe
//amLogging.xmlandreturnstheLoggerobject.
LogRecordlr=newLogRecord(Level.INFO,"SampleData",ssoToken);
//CreatestheLogRecordfillingdetailsfromssoToken.
logger.log(lr,ssoToken);
//Writestheinfointothebackendfile,dborremoteserver.
Loggingservice也提供API供我们使用,我们可以在开发的程序中使用LoggerClass,它的package:
com.sun.identity.log。
下面提供代码举例:
二.3.3DirectoryServer的管理
SunOneDirectorySever安全设置有如下几点,首先,作为SunOnePortal平台的一个组件,在安装PortalServer时DirectorySever对安全做了默认设定,PortalServer是使用一个固定的帐号来访问DirectoryServer的,它是DirectoryServer的超级用户,它可以对portalserver的用户信息进行管理。
但是我们没有赋予它管理员的权限,它不可以对Directory的配置设置进行修改。
其次,对于应用中的用户访问Directory的权限控制,在各自的应用中,只会对每个应用系统建立一个统一的帐号来实现对其应用系统用户的访问和管理。
而且访问和管理的范围只是对其应用系统的用户。
在实际中,我们要禁止Anonymous的访问权限
如下图所示禁止Anonymous的访问:
如果portalserver和DriectoryServer的部署不在同一网络而需要加密访问,可以设置DirectoryServer的SSL加密访问。
如何配置SSL访问Directory,请参阅SunOneDirectory文档。
我们也开启AuditLog,errorLog,accessLog:
来监视Directory的访问情况。
如下列相是从/host-name/config/dse.ldif文件中摘得,相关配置如下
nsslapd-accesslog-logging-enabled:
on
nsslapd-threadnumber:
45
nsslapd-accesslog:
/usr/ldap/slapd-emis03/logs/access
nsslapd-accesslog-maxlogsperdir:
10
nsslapd-accesslog-maxlogsize:
100
nsslapd-accesslog-logrotationtime:
1
nsslapd-accesslog-logrotationtimeunit:
day
nsslapd-errorlog:
/usr/ldap/slapd-emis03/logs/errors
nsslapd-errorlog-logging-enabled:
on
nsslapd-errorlog-maxlogsperdir:
2
nsslapd-errorlog-maxlogsize:
100
nsslapd-errorlog-logrotationtime:
1
nsslapd-errorlog-logrotationtimeunit:
week
nsslapd-auditlog:
/usr/ldap/slapd-emis03/logs/audit
第三章SunOnePortal资源的访问控制
首先我们先论述SunOnePortal集成其他系统的方法:
三.1Portlet访问其他应用系统的方式
我们先来讨论SSO的方式:
1.入侵式单点登录:
采用IdentityServer身份管理服务器,提供单点登录解决方案使用户只需验证一次就能访问多个应用,换句话说,当用户访问后续的,受保护的应用时,无需再次输入用户名和口令。
用户通过访问控制的机制来保护企业的数据和网络资源。
当用户企图访问受保护的网络资源时,必需通过用户的身份验证,验证成功以后,用户获得访问网络资源的授权,基于用户为该用户定义和分配的访问控制策略。
如果用户想要访问几个受保护的资源,SSO服务为用户提供已验证身份的证明,即一种令牌,称为SSOToken,该令牌会随着用户的访问提交给相应的网站,受保护的Web应用服务要安装有用户的Agent,Agent能校验令牌的合法性,用户无需再次进行身份验证。
而且所集成的系统的认证系统要做相应的修改。
使用Portlet展示集成的应用时,大都采用iFrame的方法。
即由被集成系统提供界面。
2.非入侵式单点登录:
当Portlet要展示集成的应用系统时,portal首先在用户的信息目录中寻找用户在所集成系统的用户名和密码。
当发现为空时,它会请求用户输入用户名和密码。
当用户输入并提