号外:友户通支持企业自有用户中心啦

友户通做用友云的用户系统也一年多了,经常听实施、售前等说要私有化部署友户通,原因无非是企业的考虑到用户安全性和单一用户账号的需求。但由于用户管理的复杂性,友户通部署与维护并不容易,因此经常纠结在用户系统是用友户通云服务还是要私有化部署。
企业私有化IT服务服务发展到几天已经很丰富,企业内部可能部署了几十上百的应用程序,企业对于这些应用的用户通常采取统一的用户中心来进行管理。

针对这种情况,友户通特定开发了联邦用户中心来支持企业的自有用户中心。让我们一起来看看这个联邦用户中心是如何支持企业自有用户中心的。

一、为什么要使用联邦身份认证

未使用联邦身份认证时

o企业自有用户中心的用户不能访问用友云各个应用

企业应用有自己的用户中心(以下称为:自有IdP),通过自有IdP认证的用户无法直接访问用友云。

o用户管理复杂

管理员需要分别在两个系统中为用户创建账号。

o用户操作繁琐

用户访问两个系统时需要使用两个系统的账号登录,需要记住两套密码。

使用联邦身份认证后

o自有IdP用户可以直接访问用友云

用户在企业自有IdP认证通过后,可直接访问用友云应用,无需再次经过友户通认证。企业管理员也无需在友户通中重复创建用户。

o用户管理简单

企业管理员只需要在企业自有IdP中为用户创建账号,用户即可同时访问两个系统,降低了管理复杂度。

o用户操作方便

用户在本企业IdP中登录即可访问企业应用和用友云应用,使用方便,流畅。

o深度融合

企业内部应用与用友云在用户系统上已经打通,在用户打通的基础上可根据场景进行进一步的融合。

二、友户通支持哪些种类的企业IdP

目前友户通已经支持了LDAP、CAS、OAuth2等标准协议的企业IdP,还支持友户通自定义的Token机制的IdP.除了友户通自定义的Token机制支持的企业IdP需要一定的开发量,其他协议的企业IdP只需要在友户通进行配置就可以使用了,完全不需要进行开发。

友户通的联邦用户身份认证未来还将继续扩展所支持的协议,很快就会增加对SAML2协议的支持。SAML2协议将不需要友户通和企业IdP之间有直接网络连接就可以进行联邦用户身份认证。

三、使用友户通的联邦身份认证有什么体验

体验一:部署实施简单

只需要三步甚至两步就可以部署实施完成企业IdP与友户通的集成

步骤一:根据需要部署yhtagent(企业IdP在内网,而友户通需要访问企业IdP)

步骤二:在友户通中配置联邦身份认证。

步骤三:在访问用友云的链接里加上thirducid参数(参数值由第二步确定)。

联邦身份认证中心配置界面

体验二:用户使用方便

步骤一:登录企业IdP(LDAP用户中心则可直接在友户通登录界面通过特殊用户名进行登录)。

步骤二:在同一个浏览器里打开带thirducid参数的用友云链接地址,就可登录用友云。

企业用户在内部应用和用友云应用之间的切换非常方便。

对于企业客户来说,其员工信息可以得到保护,云服务的实施变得更加简单。

四、技术挑战与实现

挑战一:支持LDAP协议的企业IdP时,如何确定用户应该在哪里验证。

企业内部的用户管理经常使用AD域来管理,其支持LDAP协议来进行用户查询,用户名密码验证等。

友户通支持通过LDAP协议使用企业内部的支持LDAP协议的用户中心账号进行登录。LDAP协议已经很成熟了,对接起来并不难,麻烦在于什么时候,去哪个LDAP用户中心验证用户。针对这个问题,我们使用了两种方式来解决。

支持方式一:通过特殊用户名来确定企业IdP

在配置LDAP用户中心时,为每个LDAP用户中心配置一个唯一标识符,在登录的用户名,加上一个“@”符号和唯一标识符,这样,友户通就能识别这个用户是需要使用哪个LDAP用户中心去验证了。这种方式适合主动打开用友云服务的应用,在登录主动输入域账号进行登录。

支持方式二:通过URL里的参数来确定企业IdP

在访问登录页面的URL里增加一个参数thirdUCId,这样在友户通系统里,通过thirdUCId查询到的企业IdP是LDAP用户中心,就可以到相应的地方去验证用户了。这种方式适合在企业内部的系统里嵌入URL链接穿透到用友云服务的场景。

挑战二:如何从企业IdP单点登录到用友云

很多企业经过了很多轮的信息化,部署了很多应用,企业为了方便员工账号管理及登录管理,通常采用支持单点登录的用户系统来统一管理用户账号,及支持单点登录。

这些企业如果也购买了用友云的应用,企业需要使用自己的用户账号进行登录,以方便进行用户管理。

针对这种需求,友户通支持CAS、OAuth、SAML标准的单点登录用户中心,登录了企业自有用户中心后能够直接登录用友云,而不需要再次输入用户名和密码。

支持方式一:使用CAS协议

友户通和企业IdP之间,走标准CAS协议,即友户通到企业IdP申请发放ticket,企业IdP发放ticket之后重定向到友户通,友户通到企业IdP验证ticket,验证成功后即可登录友户通。

企业IdP负责发放ticket和验证ticket并返回用户信息,友户通的负责向企业IdP申请发放ticket,得到ticket后调用企业IdP验证验证ticket并得到用户信息,并让用户登录到友户通中。

友户通在申请企业IdP发放ticket和验证ticket过程中,浏览器主页面处于等待状态,子页面iframe负责申请发放ticket和验证ticket的接口调用。

该方式实现的难点

1、怎么确定去哪个企业IdP申请ticket从而登录呢?咋们来个故技重施,通过URL里的一个参数thirducid来决定去哪个企业IdP去申请发放ticket.

2、友户通登录页既要在已经登录了企业IdP时能够自动登录,又要在未登录企业IdP时显示友户通登录界面,两方又不在同一个域里,如何做到跨域呢?这里,我们使用了一个巧妙的方式,也是充分利用CAS标准。在CAS用户中心里,如果已经登录的话,将会发放ticket,并且重定向到service参数指定的url上。前端登录界面开启一个iframe去企业IdP申请ticket,同时service地址为友户通接口,这个接口验证企业IdP发放的ticket,并发放一个友户通登录token,返回一个页面将父页面(登录页面)导航到友户通自动登录url,从而登录进入友户通。

图1-2 友户通集成企业IdP协作图

下面我们来看看具体是怎么实现的。

(1)企业IdP配置。将企业IdP的信息配置到友户通中,包括企业IdP的ticket发放地址,验证地址,用户信息的格式,以及发放ticket和验证ticket时需要的一些参数的配置,以便在单点登录过程中使用。

(2)登录服务申请企业IdP发放ticket.登录服务通过url里的参数thirducid,查询到企业IdP的相关配置,将申请发放ticket的地址ticketrequesturl提供给前端JavaScript,前端JavaScript打开一个隐藏的iframe,将iframe的src设置为ticketrequesturl,企业IdP将检测浏览器是否登录过且有效,如果登录过且有效,则发放ticket,跳转到ticketrequesturl里的service参数的地址上,该地址为IT服务里的验证企业IdP ticket接口。

(3)验证企业IdP ticket接口(第(2)条里用来作为service地址)。本接口接收企业IdP发放的ticket,以及代表那个企业IdP的thirducid,通过调用相应的企业IdP的验证ticket的接口,如果ticket合法,企业IdP会返回相应的用户信息,友户通将根据配置解析出用户信息,产生一个友户通单点登录token(友户通的登录服务接口可通过此token单点登录到友户通中),并返回一个页面(运行在iframe中),此页面将会将父页面重定向到友户通的登录服务接口(包含友户通单点登录token),走完标准友户通的单点登录流程后将登录进入到友户通。

支持方式二:使用OAuth2协议

使用OAuth2协议和CAS协议差别不大,只需要将CAS协议中申请Ticket替换成申请code,验证ticket替换成通过code获取accessToken及用户信息即可。

挑战三:如何从友户通单点登录到企业IdP

先登录友户通,然后登录企业IdP.如果实现了企业IdP登录到友户通,那么自然会有需求从友户通登录到企业IdP.不过,这种方式需要企业IdP做一些定制开发。

友户通目前支持CAS、oauth2标准协议以及友户通自定义协议可供企业IdP集成。未来将支持SAML2的协议供企业IdP集成。

友户通提供前端登录状态检测js(支持jsonp),可检测友户通是否已经登录以及进行CAS发票。

友户通还提供了js方法获取oauth2的code(支持jsonp),供oauth2方式进行单点登录实现。

挑战四:企业用户中心外网无法访问

企业自有用户中心通常是部署在企业内网的,外网访问不了。这种情况一般有几种解决方式。

第一种:让企业开辟外网端口,让外网能访问,但这种方式会让企业的内部用户中心暴露在公网,企业可能会有一定的顾虑。

第二种:将外网调用变成内网调用,在企业内部部署一个应用当做中介,只暴露这个新部署的应用。

我们选择了第二种方式,这种方式不会暴露企业的用户中心到公网上,打消企业的顾虑。需要开发一个应用当做中介,我们称为代理(下称yhtagent)。yhtagent和友户通直接的通信采用HTTPS保密通信,如果企业还嫌不够安全,可以在消息内部在使用AES或者RSA等对称或者非对称加密算法进行加密,从而保证通信内容的绝对安全。

使用YhtAgent时的联邦身份认证

LDAP类型的用户中心,Yhtagent实现友户通到企业单向代理;CAS类型的用户中心,Yhtagent实现友户通到企业双向代理。

原文地址:http://blog.51cto.com/14084875/2343481

时间: 2024-08-01 12:03:39

号外:友户通支持企业自有用户中心啦的相关文章

啥?多个不同用户中心也能实现单点登录?

随着经营发展和业务需要,企业的信息化系统慢慢开始变多,比如ERP.OA.CRM等.为了有效的管理账号,很多企业建立了用户中心(简称IdP,身份提供方Identity Provider),企业内系统可使用一套账号.企业在持续发展的过程中,也在持续建设新的系统,新的系统有自己的用户中心,那么两个用户中心如何打通?企业用户会不会因为增加新系统而又回到需要记多套密码的时候? 用友的iuap推出的"联邦用户中心",可快速打通企业内用户中心与外部用户中心,实现统一用户管理.身份认证.授权等,达到单

C#开发微信支付之企业向用户付款

1.企业付款的介绍 所谓企业付款指的是,在功能开放后诸如保险行业的客户理赔.退保.商品退款.发放征集活动奖金.抽奖互动等操作都可以通过企业付款完成.而此前,微信支付只能提供客户向企业单向付款. 商户如果需要给用户付款,可以直接将钱打入用户的"微信零钱"中,微信支付将做零钱入账消息通知,零钱收支明细会展示相应记录.针对无零钱账户的历史客户端版本,资金将进入用户的红包账户,微信支付无消息通知用户,企业可选择自行触达用户. 通过认证的企业号可以开通微信支付功能.通过认证的企业号可以管理平台的

企业场景用户密码管理

企业场景用户密码管理 1.密码要复杂,8位以上字母数字以及特殊字符的组合. 2.大的企业用户和密码统一管理(相当于活动目录,openLDAP). 3.动态密码:动态口令,第三方提供或者自己开发.

翼友校园通管理系统开源之一:瞧瞧她的长相

翼友校园通系统是我在业余的时间为别人设计的一套系统,目的就是打通校讯通,翼校通等的对于运营商的绑定限制,让三网互通. 不过很可惜的是这个项目在做到一半的时候,由于各种原因,继续不下去了,所以项目本身就暂停了.当时这个翼友校园通系统只是整个大框架中的一个很小的系统.由于目前其处在一个半成品的阶段,所以我还是想将其开源出来,让真正有需要的人来继续设计,这次开源我将会Host到GitHub中,由于目前我是第一次玩GitHub,所以待我玩透了,我再放上具体的地址.下面是多图,担心手机流量者慎入:

小议:如何利用Active Directory管理企业部门用户?

很多企业就使用DomainController下的Active Directory来管理企业内部用户信息,那么如何管理好用户信息呢?比如如下需求: 企业每个半年需按部门统计人员报告给街道工会 需能按照Job Title查找到某个区域的人员信息情况 如果按照上述需求描述的话,可以借助Active Directory中的Organization Unite.Export List.Find三个功能来实现,具体如下: 打开Active Directory,创建 Organization Unite,如

Fundebug支持企业微信配置机器人报警

摘要: 为了帮助客户方便.及时地发现问题,Fundebug 支持企业微信报警了! Fundebug是全栈 JavaScript 错误监控平台,支持前端 JavaScript, 后端 Node.js 以及微信小程序等应用监控. 如果配置了企业微信机器人,一旦应用出现错误,Fundebug 会及时发送报警信息到企业微信群.如下图所示: 如何添加企业微信机器人? 在项目设置页面,切换到报警方式选项卡,在第三方报警中即可添加企业微信报警. 具体细节请参考接入文档:企业微信报警接入文档. 感谢客户大大桐乡

企业选择数据中心托管的好处

在如今,很多企业都会选择服务器托管的方式,来运行企业的网络,至于为何该种方式能够受到众多企业的青睐,通过以下这些优势的介绍,就能清楚其中的缘由,以及领略到它的优越性. 一.成本上的节约. 要是按照传统的模式进行,企业要支付高额的网通线路成本,还需要花一定的资金,专门聘用高技术网络人才,来做好服务器的维护与管理工作,所以在成本上面的开销,一个月下来,已经是一笔不小的数目了.而服务器托管的出现,大大的节俭了企业的开销成本,同时企业还能享受到高速的网络. 二.稳定性能好. 在传统的网络服务器上面,很多

企业智能联络中心渐入牛市,中国看“小A云”?

2018年进入全球云计算的第二个十年.与第一个十年相比,2018年作为第二个云计算十年伊始,却展现出了不一样的特征.特别是在第一个十年较为看好的SaaS市场,却进入了发展的缓慢期.近期刚发布的中国信通院<云计算白皮书(2018)>显示,2017 年全球 SaaS 市场规模达656亿美元,增速为26.64%,预计2021年增速将降低至15%左右. 与之相比,国内基于AI的SaaS云客服市场却渐入佳境.得益于AI技术与客服领域的紧密结合,2017年国内云客服市场的规模为12.3亿元,并将以15.4

UCenter+云市场?开源用户中心2.0时代即将开启

如何让开发一款产品像搭积木一样?这也许是每一个开发者梦寐以求的事情.我们尝试着来分解一个网站(纯展示类的网站不在讨论范畴内),得到这么一个结果: 一个网站的业务模块可能根据产品定位而不同,但用户中心实际上是一种通用的模块,每个系统之间都是大同小异. 有没有可能营造出这样一个生态圈?在这个生态圈里,有统一标准的一个用户中心,这样不同的系统之间可以互相融合,不同的模块之间可以互相使用.生态圈必然有提供者和消费者,在这个生态圈里,有能力的开发者可以将自己开发出来的产品售卖,同时,一些有需求的开发者可以