提供 SSO 的标准和协议有很多,其中一些著名的有:安全访问标记语言 (SAML)、开放授权 (OAuth)、开放 ID 连接 (OIDC)、Web 服务联合 (WS-Federation)、CAS(Central Authentication Service)、Kerberos等。本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
SAML 是一种基于 XML 的标准,用于在 IdP 和服务提供商之间交换身份验证和授权数据,以验证用户的身份和权限,然后授予或拒绝他们对服务的访问权限。OAuth 是比 SAML 更新的标准,由 Google 和 Twitter 于 2006 年开始联合开发。它的开发部分是为了弥补 SAML 在移动平台上的不足,并且基于JSON而不是 XML。OAuth2 广泛使用 JWT 令牌,因此比 SAML 更轻、更快。OIDC 即是OpenID Connect,使用 OpenID,用户的凭据仅在浏览器路由请求后由授权服务器使用。验证后,将向用户颁发访问令牌,用户可以通过该令牌访问多个应用程序,而无需与每个应用程序共享其凭据。OAuth 是一种开放标准的授权协议,用于授权用户,OIDC 用于验证用户。CAS是一种仅用于Authentication的服务,它和OAuth/OIDC协议不一样,不能作为一种Authorization的协议。CAS 1.0非常简单,在CAS 3.0版引入了基于SAML对Service Ticket进行校验,Service Ticket的校验结果均为XML格式,目前基本被淘汰。本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
OIDC 位于 OAuth 2.0 之上,以添加有关用户的信息并启用 SSO 流程。它允许跨多个应用程序使用一个登录会话。OIDC 协议是 OAuth 2.0 协议的超集,是可以替代 OAuth 2.0 的下一代身份认证协议,能够解决认证 + 授权两个问题。OIDC 的授权流程与 OAuth 2.0 完全一致,能够保持向下兼容。总之一句话:现在普遍常用的就是OIDC。本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
OIDC协议的实现流程:本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
OIDC协议是在OAuth2协议之上,OIDC中集成了OAuth2的流程,OIDC 授权模式中包括四个主体:第三方应用、资源服务器、资源所有者、认证授权服务器。京东中使用 QQ 登录的时候。京东的角色是第三方应用;QQ 的个人信息存放于资源服务器;用户是 QQ 账号的所有者。QQ 的授权服务器负责用户的身份认证和授权。OIDC标准协议的官方文档地址如下:https://openid.net/specs/openid-connect-core-1_0.html 其流程图如下:本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
上图解释了当用户使用 Google 登录应用程序时发生的整个过程。步骤的数量可能看起来很复杂,但整个过程在几毫秒到几秒内结束。让我们一步一步地分解它。假设用户已经有 Google 的登录帐户本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
1) 用户进入 Bitbucket 页面登录本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
2) 用户点击使用 Google 登录本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
3) 浏览器将用户重定向到 Google 登录页面本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
4) Google 显示凭据页面供用户输入凭据本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
5) 用户输入谷歌凭据并点击提交本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
6) Google 验证凭据并生成访问令牌并将其发送到浏览器本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
7) 浏览器在Authorization Header中嵌入Access Token(Bearer Token),将用户的登录请求发送到BitBucket服务器本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
8) Bitbucket 服务器将联系 Google 验证访问令牌并响应浏览器本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
9) 现在用户登录到 Bitbucket 应用程序本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/1189.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/1189.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |