天天看点

主流身份认证框架介绍

作者:爱小视频的大妈

随着互联网和数字化时代的到来,越来越多的应用程序需要进行身份认证和授权。为了满足这一需求,出现了各种身份认证框架,包括OAuth 2.0、OpenID Connect、SAML、JWT、Shibboleth、Kerberos和LDAP等。下面将对这些主流的身份认证框架进行详细介绍。

1. OAuth 2.0

OAuth 2.0是一种开放标准的授权协议,旨在为Web、移动和桌面应用提供安全访问API和资源的方式。OAuth 2.0最初由Aaron Parecki和Eran Hammer在2006年提出,作为OAuth 1.0的改进版本。OAuth 2.0由亚洲的Google、雅虎、Facebook、Microsoft公司和欧洲的第三方开发者草拟。目前,OAuth 2.0已成为了Web、移动和桌面应用程序中授权的事实标准。

OAuth 2.0的基本流程如下:

第一步,客户端向授权服务器发起请求,获取请求授权的方式和授权范围;

第二步,用户向授权服务器授权客户端访问其资源;

第三步,授权服务器向客户端发送访问令牌;

第四步,客户端使用访问令牌访问受保护的资源。

OAuth 2.0通过令牌的方式授权,而不是使用用户名和密码。

2. OpenID Connect

OpenID Connect在2014年发布,是基于OAuth 2.0的身份认证和授权协议,提供了更安全的身份验证和授权方式。OpenID Connect提供更安全的身份验证和授权方式,同时保留了OAuth 2.0的灵活性和可定制性。它由OpenID基金会制定,包括许多互联网和软件公司的参与。OpenID Connect的基本流程如下:

第一步,客户端向授权服务器发起请求,获取请求认证的方式和认证范围;

第二步,用户向授权服务器提供身份验证信息,进行身份认证;

第三步,授权服务器向客户端发送ID令牌和访问令牌;

第四步,客户端使用访问令牌访问受保护的资源,使用ID令牌获取用户的信息。

OpenID Connect在OAuth 2.0的基础上增加了身份验证的功能,通过ID令牌向客户端提供用户信息。

3. SAML

SAML(Security Assertion Markup Language)是一种基于XML的协议,SAML最早由美国创新公司开发,现在由OASIS建议出版本,用于在企业内和跨企业之间进行身份认证和断言交换。SAML的基本流程如下:

第一步,服务提供商向身份提供商发起请求,获取SAML断言的认证请求;

第二步,身份提供商进行身份认证并生成SAML断言;

第三步,身份提供商向服务提供商发送SAML断言;

第四步,服务提供商使用SAML断言,为用户提供访问资源的权限。

SAML通过交换SAML断言来完成身份认证和身份断言。

4. JWT

JWT(JSON Web Token)最早由John Bradley和Nat Sakimura提出,目前由IETF(互联网工程任务组)进行标准化,是一种基于JSON的轻量级令牌格式,用于在应用程序和服务之间安全传递声明信息。JWT通常用于前后端分离的应用程序中,配合OAuth 2.0实现身份验证和授权的功能。JWT的基本流程如下:

第一步,客户端向身份提供商发起请求,提供用户名和密码;

第二步,身份提供商进行身份认证,并生成JWT令牌;

第三步,身份提供商向客户端发送JWT令牌;

第四步,客户端使用JWT令牌访问资源。

5. Shibboleth

最早由美国Woods Hole Oceanographic Institution开发,目前由Internet2以及全球众多高等教育和研究机构提供支持,是基于SAML协议的身份认证和授权解决方案,主要用于教育和研究机构。Shibboleth的基本流程与SAML类似,通过交换SAML断言来完成身份认证和身份断言。

6. Kerberos

Kerberos是一种网络身份认证协议,可用于大型企业和机构的用户身份认证。kerberos最初由麻省理工学院开发,并由许多其他机构的贡献。它最早是为MIT的开放式网络(Open Network Computing)计划开发的,在1980年代晚期成为了Windows NT的身份验证协议之一。Kerberos在1993年以MIT许可证发布,成为了开源软件。

Kerberos的基本流程如下:

第一步,客户端向认证服务器发送身份认证请求;

第二步,认证服务器返回一张票证给客户端;

第三步,客户端将票证发送给票证授权服务器;

第四步,票证授权服务器验证票证的真实性,授权客户端访问资源。

7. LDAP

LDAP(Lightweight Directory Access Protocol)是一种访问分布式目录服务的协议,可用于大型组织实现用户身份认证和授权。LDAP的基本流程如下:

第一步,客户端向LDAP服务器发送身份验证请求,提供用户名和密码;

第二步,LDAP服务器进行身份验证,并返回验证结果;

第三步,客户端使用LDAP提供的方法,访问受保护的资源。

8.CAS

CAS(Central Authentication Service)是一种开源的单点登录协议和实现。它最早由耶鲁大学开发,旨在为学术社区提供基于Web的身份认证。CAS最初的设计只包含了单点登录的核心功能,但是它后来被扩展为包括授权管理、安全会话管理、多因素身份验证等功能。

CAS最早于2004年发布,并很快获得了广泛的应用,随着开源社区的发展,越来越多的企业、非营利组织和政府机构开始使用CAS来实现其身份认证和授权管理需求。CAS的开源代码和丰富的插件机制,成为了许多组织满足其用户网络安全需求的理想选择。

各身份认证框架之间的关系

OAuth 2.0常与OpenID Connect、JWT一起使用,实现身份认证和授权的功能;

OpenID Connect基于OAuth 2.0,提供更安全的身份验证和授权的方式,可与SAML、JWT一起使用,用于实现跨企业的身份认证;

SAML是基于XML的协议,可以与Shibboleth、LDAP一起使用,用于企业内部和跨企业之间的身份认证和断言交换;

JWT通常用于前后端分离的应用程序中,与OAuth 2.0一起使用实现身份验证和授权的功能;

Shibboleth是基于SAML协议的身份认证和授权解决方案,与SAML一起使用,主要用于教育和研究机构;

Kerberos是一种网络身份认证协议,与LDAP一起使用,用于大型组织的用户身份认证;

LDAP用于访问分布式目录服务的协议,与Kerberos一起使用,用于大型组织实现用户身份认证和授权。

CAS作为一个开放的、可扩展的、基于网络的身份认证系统,可以使用多种身份验证协议(如LDAP、Kerberos、OAuth等),支持多种身份验证方式(如用户名密码、智能卡、生物识别等),可以在不同的平台和应用之间实现单点登录、身份认证和授权管理。

更多请关注“零信任网络”

继续阅读