李 强
(中电金信软件有限公司,浙江 杭州310000)
银行的应用系统越来越多,每个系统单独管理各自的用户,容易形成信息孤岛,分散的用户管理模式阻碍了银行应用向平台化演进。当银行的业务发展到一定规模,构建统一的账户管理体系将是必不可少的,因为它是银行未来互联网云平台的重要基础设施,能够为平台带来统一的账号管理、身份认证和用户授权,为银行带来诸如跨系统单点登录、第三方授权等基础能力,为构建开放平台和业务生态提供必要的条件。
常见的账户管理产品有:CA 公司的SiteMinder,其价格昂贵;IBM 公司的 Tivoli Access Manager,其需购买且和 IBM 其他产品结合较紧密;Atlassian 公司的 Crowd,其需购买且和自家的 Jira、Confluence 结合较紧密;Oracle 公司的OpenAM,它是一个率先开源的认证授权产品,对Oracle 的产品支持较好;耶鲁太学发起的开源项目CAS(Central Authentication Service),其简单、实效、安全,支持多种客户端,支持单点登录(Single Sign On,SSO)、开放授权(Open Authorization,OAuth)等。
考虑到费用、易用性、支持广泛度等因素,本设计选择了开源产品CAS。
CAS 包含服务端和客户端两部分,服务端是一个独立部署的WAR 包,负责用户认证。客户端负责处理对受保护资源的访问,支持 Java、.NET、PHP 等多种软件平台,极太地方便了各种系统的接入[1]。
CAS 支持 SSO, 即用户登录一个系统后, 再访问权限范围内的其他系统时不用再次登录[2-3]。 常见的如:用户登录淘宝网页后,再访问天猫网页时无需再次登录即可使用。
OAuth 是实现第三方授权的开放框架,在用户无需提供账号和密码的情况下,允许第三方应用访问用户存于某服务商的资源(如个人信息、照片等)[4]。……