近些年,越来越多的企业正在迁移到云端,很多客户希望从任何地方、任何地点、任何计算机上无缝访问多个应用程序。在另一方面,由于公司在不同标签下都有数百个接触点,因此尝试处理所有这些接触点将使他们的IT部门倍感繁琐。
单点登录的出现是为了解决众多企业面临的痛点,即他们的用户及员工需要登录很多程序或系统,每个程序与系统都有不同的用户名和密码。在企业发展初期,可能仅仅有几个程序时,管理账户和密码不是一件难事。但是当企业有数十、数百、数千应用程序时,试图了解哪位客户、哪位员工在使用哪个应用程序或系统中的什么账户、拥有哪些权限变得异常困难。
能否合理分配员工访问哪些程序和系统,对于合规性和监管性要求高的公司至关重要。所以,企业迫切需要一个轮子——这个轮子可以让员工只输入一次账号和密码,成功登录后,就可以访问任何相互信任的系统。
01
什么是单点登录?
单点登录英文全称SingleSignOn,简称SSO。它的定义是:在多个应用系统中,用户只需要登录一次,即可访问所有相互信任的应用系统。例如,常见的单点登录是通过一次登录访问各种应用程序。例如,登录您的员工账号就可以让您访问飞书、销售易、客户系统等应用程序,无需再次输入账号和密码。
02
常见的单点登录五种协议
常见的OIDC、OAuth2.0、SAML2、CAS3.0、LDAP为标准认证协议。标准协议会按照特定的方式传递用户信息,正规的业务系统产品都会支持标准协议,使用标准协议对接可以一劳永逸地完成对接。
标准协议的推荐度:OIDCSAML2CAS3.0LDAPOAuth2.0。下面我们来一一介绍:
OAuth是一种关于授权(Authorization)的开放网络标准,是目前最流行的授权机制,在客户与服务商之间,设置授权层。客户必须先登录授权层,此时服务商会向客户授权令牌的权限及使用期限,然后客户才能登录服务商,使用其服务。
目前最新的版本为OAuth2.0版,主要有四个主体:
授权服务器,负责颁发访问令牌(AccessToken),Authing是授权服务器。
资源所有者,应用的用户是资源的所有者,授权其他人访问其资源。
调用方,调用方请求获取访问令牌(AccessToken),经过用户授权后,Authing为其颁发访问令牌(AccessToken)。调用方可以携带访问令牌(AccessToken)到资源服务器访问用户的资源。
资源服务器,接受访问令牌(AccessToken),然后验证它的被赋予的权限项目,最后返回资源。
OAuth2.0有四种授权模式:
授权码(Authorization-code):指的是第三方应用先申请一个授权码,然后再用该码获取令牌。该方式是最常用的流程,安全性也最高,它适用于那些有后端的Web应用。
隐藏式(Implicit):该模式面向纯前端应用,App认证服务器只返还一次授权码。
密码式(Password):允许客户端或者第三方应用,直接使用用户的账号密码进行令牌的获取。该方式在用户端应用广泛。
凭证式(Clientcredentials):适用于没有前端的命令行应用,即在命令行下请求令牌。该方式操作简单,只需要发送客户请求,即可获得访问令牌(AccessToken),但这种方式非常不安全,需要对客户端完全信任,且客户端本身需要具备安全性。
常见的OAuth2.0授权流程如下:
在你的应用中,让用户访问登录链接,浏览器跳转到Authing,用户在Authing完成认证。
浏览器接收到一个从Authing服务器发来的授权码。
浏览器通过重定向将授权码附带在重定向地址后面。
你的应用服务将授权码发送到Authing获取AccessToken,如果需要,还会返回refreshtoken。
你的应用后端现在知道了用户的身份,后续就可以保存用户信息,重定向到前端其他页面,使用AccessToken调用资源方的其他API等等。
二、OpenIDConnect(OIDC)是一个身份验证层,是基于OAuth2.0的认证方式,可提供单点登录功能,授权流程同OAuth2.0,其对OAuth2.0的扩充,主要体现在——认证与授权过程中会额外返还令牌(IDToken),授权模式与OAuth2.0一致。
OIDC这个新型单点登录协议在保障安全性的同时,与OAuth2.0相比增加了认证能力,与CAS相比增加了授权能力,同时使用上比SAML简单,保证了认证授权的便捷性、私密性、安全性,是企业管理的最佳选择。
三、统一认证服务(CAS)是一种开放、简单且完备的身份验证协议。该协议是客户端、服务器与浏览器的三方约定,是大家都必须遵守的规则。
在CAS协议中,定义了ServiceTicket作为客户端与服务器之间随机的票据,授权流程如下:
访问服务:客户端发送请求访问应用系统提供的服务资源。
定向认证:客户端会重定向用户请求到服务器。
用户认证:定向到服务器后,用户进行身份认证。
发放票据:服务器会产生一个随机的ServiceTicket。
验证票据:服务器会验证票据ServiceTicket的合法性。
传输用户信息:服务器验证票据通过后,传输用户认证结果信息给客户端。
四、轻量级目录访问协议(LDAP)是一种行业标准,基于X.标准的轻量级目录访问协议,用来进行统一账号管理、身份验证平台。
但是,LDAP不会定义登录这些系统的方式,它通常作为身份验证过程和访问控制过程的一部分。例如,在用户可以访问特定资源之前,LDAP可用于查询该用户及其所属的组织,以查看该用户是否有权访问该资源。
五、安全断言标记语言(SAML)是一个基于XML的开源标准数据格式,允许网络上的多台计算机共享安全凭据,SAML2.0可以实现基于网络跨域的单点登录(SSO),以便于减少向一个用户分发多个身份验证令牌的管理开销。
主要有两个主体:
服务提供方(ServiceProvider)
身份提供方(IdentityProvider)
授权流程如下:
服务提供方(ServiceProvider)向身份提供方(IdentityProvider)发出SAML身份认证请求消息,请求其鉴别用户身份;
身份提供方(IdentityProvider)向用户索要用户名和口令,并验证其是否正确。
如果验证无误,身份提供方(IdentityProvider)向服务提供方(ServiceProvider)返还SAML身份认证的应答,表示该用户已经成功登录,该应答中还包括了一些额外信息,以确保应答没有被篡改和伪造。
最后,我们给OIDC、OAuth2.0、SAML2、CAS3.0标准认证协议做一个具体对比:
03
Authing单点登录优势
单点登录SSO已成为管理企业世界中用户对应用程序和数据的访问的日益流行的选项。Authing凭借单点登录技术,实现成员、客户在一处访问任何软件服务,并统一管控身份权限。无论通过企业联合、社会登录还是用户名和密码身份验证,用户只需登录一次,就可以使用他们被授予访问权限的所有应用。
提高员工生产力
在员工忘记密码时,无需谋求IT部门支持。单点登录只需一个密码,员工即可访问其所有应用系统,无需记住全部密码,也无需到处查找密码,极大地提高了工作效率。
此外,员工无需在多个登录URL之间跳转或重置密码,每次登录可节省5-15秒,改善了员工使用体验。
提高安全功能
对于企业来说,单点登录有助于规避密码被破解风险,提高系统安全性。单点登录可以帮助降低员工因需要输入多个账号和密码带来的沮丧情绪,而自适应多因素认证MFA允许他们在登录严格权限的程序或网络之前验证用户身份,二者结合使用,保证了企业和员工信息的安全性,提高了客户信任度,降低了运营成本。
简化管理难度
单点登录可以帮助企业提高管理效率。通过整合身份信息,企业可以轻松控制员工对应用程序和数据的访问权限,确保只有授权的员工才能访问相应信息,提高了系统与数据安全性。对于员工的路转调离,都可以一键授权与删除。
降低开发成本
通常来说,大部分App都需要登录和注册功能。如果企业自研,少则花费半个月到一个月,遇到不熟悉相关技术的情况下,可能需要数个月才能完成。以一个程序员2万工资来算,养着一个团队做登录系统,就需要花费十几万元。使用单点登录,直接调用SDK接口,几行代码就可以集成登录系统,支持用户统一登录,并且还可以安全管理所有的用户,节约了50%研发时间,节省了用户90%登录时间。
由此,研发可以将更多时间用在更有价值的地方,比如手机号码闪验功能,用户一键授权即可以用真实号码完成注册和登录,为开发者建立以手机号码为基础的账号体系,手机不插卡也可以轻松认证。
Authing提供完善易用的文档,并且支持主流编程语言的SDK和更底层的开放API能力以实现更细节的自定义能力。在开发者论坛中,遇到问题还可以与Authing工程师在线交流,快速锁定并解决问题。
04
Authing单点登录解决方案
身份自动化
用自动化的账号生命周期管理代替手动式账号管理,人员入职-创建账号-选择部门-授权应用-授权角色-停用-离职-归档-删除,实现自动化生命周期管理。
统一用户管理
统一建立单一身份源,将身份中的属性信息同步至统一目录,向外输出唯一标准数据,便于管理。同时,Authing统一目录支持对统一人员账户信息进行集中安全的存储和管理。
统一认证管理
Authing在一个门户里集成了内外部多套业务系统(例如C/S应用、SaaS应用等),通过单点登录SSO,用户只需输入一套账号密码,即可登录所有业务系统,无需在多应用之间频繁切换。
统一权限管理
Authing提供统一权限入口、统一权限模型、统一授权、权限生命周期自动化管理、权限合规分析、权限画像等服务,帮助解决银行业当前身份权限管理面临的开通难、统一难、授权难、溯源难、查询难、回收难、监管难的问题,打造科学的权限治理体系,整合银行资源,实现用户、应用、设备、服务器、操作系统、API权限可管、可控和可视。
统一安全治理
Authing搭建了风控中台及自适应决策引擎,在人员角色、受保护资源、访问策略、风险控制策略等方面,进行全链路安全审计,提升企业或组织数字化转型过程中的风险控制能力,大规模降低身份相关业务的受损风险。
关于Authing
Authing身份云国内首款以开发者为中心的全场景身份云产品,集成了所有主流身份认证协议,为企业和开发者提供完善安全的用户认证和访问管理服务,已帮助20,+家企业和开发者构建标准化的用户身份体系。
Authing既是客户的支持者,也是客户的产品专家和战略顾问,更是值得信赖的合作伙伴。我们提供全球化的身份专家支持团队,通过网络或电话,7*24小时不间断支持。Authing的帮助中心提供最新的技术知识库、商业案例以及与您的同行和Authing专家联系的机会。无论您何时需要我们,Authing的支持团队总能最快响应。
年,Authing将秉承着致力于客户成功的初衷,帮助推动客户重要业务,为实现身份连通、打破数据孤岛而不懈努力。
福利时间
在AuthTalk第一期直播中,数据猿主编张艳飞与Authing产品负责人佟野就《为SaaS企业提供SaaS服务》话题进行了深入探讨,主要包括以下内容:
为什么国内SaaS企业营收难、利润低?
TOB企业数字商业策略的拐点与变革
B端产品C端化是产品设计的新风向吗?
为什么说IDaaS奠定SaaS企业服务基石?
Authing如何用SaaS产品赋能SaaS企业?