整理思路

一、背景

本文记录了在2010年上海交通银行卡中心内网项目中,遇到的用户管理、身份认证、单点登录等与IDS相关的问题及解决方案。

关于内网门户建设的问题,本文不过多提及,可以参见王纯刚整理的《感受有战斗力的上分交行内网项目实施团队》一文。

上海交通银行信用卡中心(以下简称交行卡中心)于2004年成立,是交通银行下属的独立核算单位,负责全国交行信用卡业务。交行卡中心总部设在上海,其下设内设运营部、风险部、市场部、财务部、IT部、人力资源部、合规部、内审部、呼叫中心等部门,并在全国各大主要城市设有办事处。

交行卡中心于2010年与TRS合作,使用Portal+WCM +IDS建设内网门户。

二、问题与解决方案

2.1复杂的网络环境

交行卡中心总部共有一万多人,人员比较庞杂,有人员流动性较大的呼叫中心,还有各个相关厂商的外包和临时支持人员等。由于交行卡中心总部保存着非常重要的全国交行信用卡数据,因此他们的对信息系统的管理非常严格和规范。

在网络管理上,交行卡中心将网络划分为两个网段:

●生产网段:保存有全国信用卡数据,信用卡业务相关的生产系统都运行在这个网段之内,仅有必要的人员能够接入。

●办公网段:用于日常办公,所有员工和外包人员均可接入。

两个网段之间只能通过两个叫做IBM Data Power(以下简称IBM DP)的硬件设备相连接。IBM DP可以认为是一个可编程的、功能强大的安全网关,如果未经过IBM DP的授权,两个网段之内的设备无法进行通信。

两个网段内的工作站中,都由MicroSoft的AD域服务器进行控制。想要登录工作站,必须先在MicroSoft AD创建相应的账号。其中,生产网段的AD中的账号是办公网段AD的子集,两个AD之间会定期自动同步。

简要的网络结构,如下图所示:

图1网络结构

2.2 TRS产品的部署结构

由于交行卡中心的安全要求,以及绝大多数用户都在办公网段的实际情况,TRS的产品都部署在办公网段,其部署结构如下图所示:

图2  TRS产品的部署结构

2.3用户从何而来

AD是交行卡中心的唯一用户和组织的出处,所有的组织机构和人员(包括人员的密码)都由专门的部门在AD中进行维护。

针对这种情况,对于TRS产品,需要考虑两类问题的处理:

1)历史用户怎么办

由于交行卡中心的管理规定,不可能将用户的管理转到IDS当中,而AD中已有的历史用户必须要能够正常的登录WCM和Portal。

对于这种情况,如图2的部署结构所示,IDS采用外部源的方式,直接接到办公网段的AD中,这样AD中的已有用户可以直接使用原有用户名和密码登录与IDS集成的系统。关于IDS集成AD的介绍,请见内网中的这个帖子

2)新增的用户和组织怎么办

除了已有历史用户以外,还需要考虑新增和删除用户的问题。新增的用户需要由IDS同步到WCM和Portal中进行预授权,删除的用户也要通知WCM和Portal进行处理。另外,AD中的组织结构也需要同步到WCM中,组织机构的

对于这个需求,IDS提供了一个可以单独部署的AD用户组织同步模块,这个模块的基本工作原理是每天对AD进行一次扫描,将当天新增/已删除的用户和组织通知给WCM和Portal进行处理。

2.4身份认证和单点登录怎么进行

交行卡中心的单点登录需求有一些特殊。客户希望不管是在生产网段还是办公网段,每个用户使用AD的账号登录工作站以后,打开浏览器访问内网门户时,即处于已登录状态,无需再次输入用户名和密码。并且处于安全上的考虑,不允许在工作站上部署任何客户端。

对于这个需求,我们给出了两个实现方案。

方案1:由IDS实现自动认证

IDS支持国际标准的Kerberos协议,通过Kerberos与工作站和AD交互,可以达到不在工作站部署任何客户端,就实现自动登录的效果(这个就是我们之前介绍过的“IDS与AD无缝集成”)。大致的认证过程如下:

①用户使用自己的AD账号登录工作站。

②用户打开浏览器,访问内网门户。

③进入IDS的SSO流程,浏览器从内网门户跳转到IDS。

④IDS要求浏览器出示已经认证过的Kerberos凭证。

⑤浏览器将Kerberos凭证提交给IDS,IDS进行解析。

⑥IDS与AD通讯,确认Kerberos凭证所代表的用户的有效性。

⑦用户有效,IDS执行登录。

⑧IDS让浏览器跳转回内网门户。

⑨由于内网门户已经和IDS实现集成,因此此时也处于登录状态。

(其中蓝色字体为IDS需要做的工作)

这个过程技术上已经实现了,但是由于IDS只部署在了办公网(见图2),因此只能实现办公网段内的自动登录。对于生产网段,由于IDS无法连接到其中的AD,因此就无法实现自动登录。因此最后采用了第二种方案。

方案2:由IBM DP实现自动认证

由于IBM DP同时部署在生产网段和办公网段,并且它同样支持Kerberos协议,因此自动登录由其来实现。其大致过程如下:

①用户使用自己的AD账号登录工作站。

②用户打开浏览器,访问内网门户:此时访问实际上是IBM DP的地址,DP在这一步的角色相当于一个反向代理。

③IBM DP进行自动登录:其过程实现得和IDS一模一样,此处不多介绍。

④IBM DP认为该用户有效,生成了一个IBM SSO规范的LTPAToken,同时进行反向代理操作,请求内网门户的实际地址。

⑤由于内网门户已经与IDS集成,因此请求会先被IDS拦截。

⑥IDS解析IBM SSO规范的LTPAToken,找到其对应的AD用户,执行登录。

⑦最终,浏览器看到的就是处于已登录状态的内网门户。

(其中蓝色字体为IDS需要做的工作)

实际上和方案1和方案2没有本质区别,最终都是采用Kerberos协议进行实现。只不过由于IBM DP能够跨网段进行这个操作,所以最终采用了方案2。

实际在这个方案里边,IDS需要做的工作更少,只需要解析IBM的LTPAToken即可。

另外需要说明的是,“在已登录的AD工作站上,访问与IDS集成的应用,无需再次输入用户名和密码就能处于已登录的状态”这个需求,不论是采用方案1还是方案2,对于IDS要集成的应用没有任何影响。换句话说IDS为应用屏蔽掉了这个过程,应用只需要和IDS做标准集成就可以了,不需要做其他任何改动。

2.5已有大量用户的应用要集成到IDS和Portal怎么办

在交行卡中心中,还有其他一些特殊的应用要和IDS进行集成,以便在Portal中展现资源内容,比如说邮件系统和OA系统。

这类系统有一个特殊的问题,即用户各个系统中已经有了账号。对于这类系统,IDS采用“代理登录的方式”进行集成。

代理登录的方式其实很简单,主要有以下几点:

●应用不需要和IDS进行集成,也不需要进行任何改动。

●IDS提供统一的页面,用户自行绑定IDS账号与各个系统中的账号和密码的关系。

●用户需要登录应用时,点击IDS提供的链接,IDS会取出应用中对应的账号和密码,通过浏览器进行提交。

●IDS会将这些应用名和密码同步给Portal,Portal需要取应用资源时,可以根据用户名和密码自行执行一次登录,或者直接调用应用本身提供的API获取资源。

以下是IDS中配置一个代理登录应用的界面截图:

图3代理登录应用的配置

三、总结与反思

对于交行卡中心项目,我们有这么一些收获:

1)企业(尤其是规范的大企业)中,其IT环境通常比较复杂。网络结构复杂,各种历史遗留系统、异构系统也多。另外大企业的管理往往也比较规范和严格。

对于这类客户,TRS的应用产品要打进去,是一个不小的挑战。而交行项目证明了,IDS有能力屏蔽掉这种复杂性,为公司产品顺利进入提供了有效支撑。

2)对国际规范的支持是有价值的。在身份认证领域,有很多国际规范,比如Kerberos、SAML、IBM SSO规范等,这些国际规范都已经成熟,各个厂商的软件、硬件都对其进行了很好的支持。研究、支持这些规范,能够使我们和其他厂商的产品实现互联互通。在大企业中往往有很多这类基础设施,此时就会凸显我们支持国际规范的价值。

3)整合企业内部的身份,完全可以作为独立的咨询方案来卖。在交行这个项目中,整合身份这部分工作的难度,其实不亚于门户资源的开发。一开始我们没有估计到这部分的工作量,不然完全可以在商务谈判中增加一些砝码。

当时IBM DP这边的leader亲自来交行和我们确定方案、进行联调,最后他对整个方案也是比较满意的,表示回去以后会整理出来作为一个案例。

另外说句题外话,IBM的人一开始对我们能够通过Kerberos进行AD的认证是比较诧异的,因为国内做这块的公司还比较少。到了后来无论是客户、还是IBM的工程师对于我们公司的技术能力都比较服气,IBM的工程师一再打听我们公司的情况,临走还专门要了一份IDS的宣传资料。

当然,这个过程中也暴露了一些不足的地方:

1)产品不够易用,文档也不够清晰和详细。直接后果就是实施人员增加了麻烦和工作量,产品组后续会对这方面进行改进。

2)部分模块质量需要进一步改进。IDS在整个部署结构中处于核心地位,一旦出问题,会影响到所有的应用,因此我们对IDS产品质量的要求应该要更高。

这一点有赖于产品部门和质保部门的紧密配合。我们目前配合质保部门进行的“开发过程的灰盒测试“能够通过有效的软件过程和自动化测试来对软件质量进行保障。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 之前把Apple Pay的文档全部翻译了一遍,最近也是接触到了真实的项目开发。发现开发的过程还是和官方文档中的介绍...
    李周阅读 5,073评论 2 5
  • 一、收到用户反馈 二、判断用户反馈 1.单纯bug,整理到文档,根据优先级排期修复。 2.可以挖掘出产品一类的问题...
    Picasso54阅读 749评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,585评论 18 139
  • 我的世界开始下雨 想要落荒而逃 可是不知道逃到哪里去?
    She行走在陌路阅读 115评论 0 0
  • 本是嫦娥住天宫,寂寞 拟做仙子下凡尘,糊涂 半路忽然失法力,不好 落地变成猪八戒,活该
    上善若水_8966阅读 252评论 3 5