单点登录简介

498 阅读3分钟

简介

单点登录,英文名称Single sign-on,缩写为SSO,是一种对于多个相互关联,又各自独立的系统,提供统一的访问控制的服务。

当拥有这项服务时,用户只需登录其中任意一个系统,即可无需再次登录,就能访问其他的系统。同理,在登出时,只要登出一个系统,其他系统自动登出。 优势

1、登录验证过程集中在认证服务,避免在各个系统或第三方系统输入用户名和密码等敏感信息,减少信息泄露风险

2、无需记忆多个账号和密码,减少因此引起的使用疲劳

3、只需一次登录,即可访问所有系统,节约时间

4、简化、统一用户的登录体验

原理

单点登录存在一个独立的认证中心,由该认证中心完成用户的登录验证,并分发授权金牌给各个接入的应用系统。为说明该原理,我们先定义以下角色:

1、浏览器:我们常使用的IE、Chrome、Firefox等浏览器

2、应用一:接入单点登录的一个应用系统,B/S结构

3、应用二:接入单点登录的另一个应用系统,B/S结构

4、认证中心:单点登录产品中,提供认证服务的系统,一般也是B/S结构 认证过程如下:

下面对上图进行关键点说明:

1、所有浏览器访问应用,应用检查到自身没有登录时,都会重定向到认证中心进行登录

2、由认证中心完成用户名和密码的验证,并记录全局的会话,在下次其他应用重定向到认证中心时,通过全局会话验证以及登录,无需再次输入用户名和密码

3、授权令牌为应用和认证中心间交流信息的凭证,通过令牌可以获取到用户的信息,包括显示名称、性别、邮箱地址等 以上为主流单点登录产品的认证过程,不同产品间,细节上上差异,但基本原理一致。此时,我们已经了解了单点登录的实现原理,在该原理之上,还有一些通用的标准协议,包括SAML、OAuth、OpenID Connect等

SAML

SAML 即安全断言标记语言,英文全称是 Security Assertion Markup Language。

它是一个基于 XML 的标准,用于在不同的安全域(security domain)之间交换认证和授权数据。

在 SAML 标准定义了身份提供者 (identity provider) 和服务提供者 (service provider),这两者构成了前面所说的不同的安全域。

SAML 是 OASIS 组织安全服务技术委员会(Security Services Technical Committee) 的产品。当前协议版本为SAML2.0。

OAuth

OAuth是一种开放协议,是一种与发布和受保护的数据交互的简单方法,现在我们使用的协议版本一般都是OAuth2.0,是用于授权的行业标准协议。

OAuth 2.0取代了2006年创建的OAuth协议。新版本侧重于客户端开发人员开发的简单性,同时为web应用程序,桌面应用程序,移动电话和客厅设备提供支持。

OpenID Connect

OpenID Connect是基于OAuth 2.0规范的可互操作的身份验证协议。

它使用简单的REST / JSON格式来进行消息传递,和之前任何一种身份认证协议相比,开发者可以更轻松的进行集成。相对于其他协议,该协议有以下特定:

1、允许开发者验证跨网站和应用的用户,而无需拥有和管理密码文件。

2、允许所有类型的客户,包括基于浏览器的JavaScript和本机移动应用程序,启动登录验证流程。

原文地址:www.aiauth.com/document/in…