您当前的位置:首页 > 生活 > 内容

什么是单点登录(解读单点登录两个协议:SAML、OAuth2)

什么是单点登录(解读单点登录两个协议:SAML、OAuth2)

什么是单点登录?

单点登录的类型

单点登录SSO的优势

什么是SAML(安全断言标记语言)?

SAML术语

什么是OAuth2?

什么是OpenID连接(OIDC)?

OIDC用于认证用户。

启用OAut的示例登录页面h2和OIDC

OAuth2与OIDC的流集成

何时使用SAML和OAuth2(使用OIDC)

在本文中,我们将了解单点登录(SSO)和两个广泛使用的SSO协议,即SAML和OAuth2。这是任何程序员都需要理解的复杂领域之一。

什么是单点登录?

单点登录(SSO)是用户可以使用一组凭据登录多个应用程序的过程。考虑到当今网站的数量以及大多数网站需要认证的事实,这是一个方便而高效的功能。众所周知,我们可以不要为每个应用程序跟踪这么多凭据集。SSO来救援了!用户不不需要一次又一次地建立他们的身份。他们只需要认证自己一次,然后就可以访问许多不同的服务和应用。这种功能的一个例子是谷歌。只需要一次登录,就可以访问他们所有的服务,比如Gmail、照片、云硬盘等等。其他应用程序也允许用户使用谷歌登录进行身份验证,前提是他们的系统与身份提供商(如谷歌和脸书)集成。

单点登录的类型

有许多标准和协议提供了SSO,其中一些非常有名

安全访问标记语言(SAML)

Oauth2.0 (OAuth)

开放ID连接(OIDC)

Web服务联合(WS-Federation)

麻省理工学院开发的安全认证系统

在本文的后面部分,我们将详细介绍SAML、OAuth2和OIDC。

单点登录SSO的优势

单点登录有许多好处,如下所示

降低访问第三方网站的风险

减少为同一身份重新输入密码的时间。

更简单的审计管理和使用

更好的管理控制

提高用户生产力

更好的网络安全性

减少攻击面

以及无缝和安全的用户访问。

什么是SAML(安全断言标记语言)?

SAML是基于XML的标准,用于在IdP和服务提供商之间交换认证和授权数据,以验证用户身份和权限,然后授予或拒绝他们访问服务。SAML是一个开放标准,已经成为单点登录的核心标准之一。使用SAML身份提供者发送给服务提供者的名为断言(包括用户授权)的XML文档。SAML 2.0于2005年推出,至今仍是该标准的当前版本。SAML 2.0专门针对Web应用程序进行了优化,以便可以通过Web浏览器传输信息。

SAML术语

IdP——身份提供者

服务提供商

用户——使用系统访问服务提供商的服务的用户。

典型的SAML工作流由IdP、SP和用户组成。用户以断言的形式发送信息。让假设用户有一个Idp帐户,并有有效的凭证。

让让我们将上面的图表分解成几个步骤,以便于理解。

用户转到服务提供商并单击SAML登录。

将SP请求重定向到身份提供者

身份提供者向用户显示登录页面以输入凭据。

输入凭据后,SAML IdP将在其Active Directory或数据库中验证凭据。

验证后,SAML响应将以XML格式发送,并带有断言,如上所示。

然后,用户将登录到应用程序。

什么是OAuth2?

OAuth是比SAML更新的标准,SAML是Google和Twitter在2006年共同开发的。它的开发部分是为了弥补SAML在移动平台上的不足,基于JSON而不是XML。OAuth2 JWT令牌应用广泛,所以比SAML更轻更快。

在深入研究OAuth2和OIDC之前,让让我们来看看使用的术语:OAuth2术语。

授权服务器——(例如:Google)

服务器——(例如:Bitbucket)

所有者——使用系统从资源服务器访问服务的用户(例如,Bitbucket用户)

OAuth2协议允许授权服务器在获得资源所有者(用户)的同意后,向第三方应用颁发访问令牌。第三方应用程序(如Bitbucket和Slack)使用这些访问令牌来访问资源提供的资源服务器。

如果你注册了一个新的应用程序,并同意从谷歌/脸书等导入联系人。你肯定已经用过OAuth2。你可能使用过要求你在脸书/Instagram等网站上分享帖子或照片的功能。这是OAuth2协议,它提供安全的委托访问,而无需共享凭证。OAuth2仅用于授权,不用于认证。

什么是OpenID连接(OIDC)?

有了OpenID,用户的凭据仅在浏览器路由请求后由授权服务器使用。验证后,将向用户颁发一个访问令牌,通过该令牌,用户可以访问多个应用程序,而无需与每个应用程序共享其凭据。如果你用谷歌/脸书/推特的登录名登录这个应用程序,你一定用过OIDC。OpenID Connect是组织用来验证用户身份的开放标准。

OIDC用于认证用户。

结合OIDC和OAuth2 OAuth是一种开放的标准授权协议,用于对用户进行授权,OIDC用于对用户进行认证。OIDC位于OAuth 2.0上,用于添加关于用户的信息并启用SSO过程。它允许跨多个应用程序使用一个登录会话。例如,如下所示,您可以使用社交媒体登录来访问应用程序,而无需在应用程序中创建帐户。

启用OAut的示例登录页面h2和OIDC

OAuth2与OIDC的流集成

上图解释了使用Google登录应用程序的整个过程。步骤的数量可能看起来很复杂,但整个过程在几毫秒到几秒内就结束了。让让我们一步一步地分解它。假设用户已经有一个Google登录帐户。

进入Bitbucket页面登录。

用户点击使用谷歌登录。

将浏览器用户重定向到Google登录页面

显示Google凭据页面,供用户输入凭据。

输入用户的Google凭据,然后单击提交。

Google验证凭证并生成一个访问令牌,然后将其发送给浏览器。

在浏览器的授权头中嵌入访问令牌(Bearer Token),将用户的登录请求发送给BitBucket服务器。

Bitbucket服务器将联系Google验证访问令牌并响应浏览器

用户现在登录到Bitbucket应用程序。

何时使用SAML和OAuth2(使用OIDC)

尽管SAML在企业环境中看起来更优越,但OAuth在某些情况下还是有意义的。

政府应用的身份管理:政府数据的机密性和敏感性需要更强的安全性,SAML将适合这种情况。例如,新加坡政府使用名为SingPass的基于SAML的系统作为其居民使用所有政府服务的数字登录名。

用户体验是重中之重:OAuth2最适合用户体验,因为它在移动设备上运行良好。而且它很轻。

和移动消费者应用:OAuth2在移动设备和消费者应用上工作良好,因为会话往往更短。

虚拟基础设施(VDI)的实现:使用SAML。企业中很多员工都会使用VDI。

需要临时访问资源:OAuth2非常适合临时访问,因为它就是为此目的而设计的。

在本文中,我们已经看到了SSO的类型和优点。然后我们深入研究了两个著名的SSO协议,SAML和OAuth2。在探索OAuth2的时候,我们看到了OAuth2和OIDC之间的细微差别,然后看到了将两者结合起来的用例。本文总结了哪些协议可以用于一些用例。

标签:用户SAMLOAuth2


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 补气血的汤有哪些材料(补气血的汤有哪些)

下一篇: 唐三的魂环分别是什么魂兽的图片(唐三的魂环分别是什么)



猜你感兴趣

推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号