企业通过SSO(单点登录)功能可以实现通过一套统一身份认证系统(Identity Provider),一次登录可以访问多个不同互信系统(Service Provider)。在云计算中通常使用单点登录实现企业自有身份认证系统登录云平台及各类云上运维、研发系统。
为什么需要SSO?
企业在内部管理、基础建设和生产经营上都会使用到各种系统,包括自研的/外部采购的、本地部署的/云端服务等等,每套系统又都有自己的身份系统用于管理和验证访问者身份以及权限。这意味着一个企业的员工身份分散在各个系统中,不仅配置繁琐还容易存在管理漏洞,导致员工身份泄露、不能及时收回、无法审计等安全风险。如果能用一套身份体系管理,员工经过统一的身份认证登录到各个管理系统中,对管理者和使用者而言都是兼具便捷性和安全性的理想方式。单点登录single-sign-on就是实现统一身份认证的一种解决方案。
企业将自有的身份管理系统与阿里云进行单点登录集成可获得如下收益:
SSO的工作原理是什么?
单点登录SSO是在企业身份提供方IdP和服务提供方SP(应用程序/服务)之间建立信任关系,通过几种主流的标准协议实现两者之间的通信,传递验证信息和验证结果,从而实现通过企业的系统登录服务提供方的平台。
Security Assertion Markup Language (SAML) 安全断言标记语言,是一种基于XML的开放标准,用于在身份提供方 (IdP) 和服务提供方 (SP)之间描述和交换数据。信息用SAML断言(SAML assertion)的形式表达,使得应用程序之间可以基于断言相互信任。
企业与阿里云进行单点登录集成主要使用SAML 2.0协议。
OAuth 2.0
OAuth 2.0是一种行业标准的授权协议,本质上并不是一种认证服务,但是可以用来实现单点登录的目的。网站或应用程序在通过OAuth协议获得授权后,不需要获取用户名密码,而是使用OAuth颁发的令牌代表用户访问授权方的资源。
阿里云访问控制将OAuth 2.0协议用于授权三方应用访问阿里云,区别于企业身份登录阿里云的SSO场景。
OIDC
OIDC(OpenID Connect)是建立在OAuth 2.0基础上的认证协议。OAuth是授权协议,而OIDC在OAuth协议上构建了一层身份层,除了OAuth提供的授权能力,它还允许客户端能够验证终端用户的身份,以及通过OIDC协议的API(HTTP RESTful形式)获取用户的基本信息。Web应用程序不是将身份验证令牌传递给第三方身份提供商,而是使用OIDC来请求附加信息并验证用户的真实性。
阿里云访问控制同样支持基于OIDC协议的角色SSO单点登录。
SSO有哪些实际应用?
例如企业员工需要使用多套不同的内部系统,例如办公系统、客户关系管理系统、HR系统等,每个系统都需要通过登录后才可使用。通过SSO,企业员工统一登录一次后,就能在不同的系统间无障碍地切换并访问这些系统。
SSO有哪些类型?
根据最终登录到服务提供方SP的身份不同,SSO可以分为用户SSO和角色SSO两种模式,但实际情况取决于SP的身份权限体系及提供的SSO服务。
阿里云如何帮助您实现SSO需求?相关产品
用户SSO:企业用户登录后,使用SAML断言中指定的RAM用户访问阿里云资源。
用户SSO适用于以下情况:
支持集成的身份提供商:
应用身份服务EIAM:
EIAM提供多个企业应用的身份和权限管理,支持与钉钉、企业微信、AD/LDAP账户或组织、Okta/AzureAD集成并同步身份数据。
如果您的企业没有IdP,以上各类产品均可以选择。
最佳实践