天天看點

主流身份認證架構介紹

作者:愛小視訊的大媽

随着網際網路和數字化時代的到來,越來越多的應用程式需要進行身份認證和授權。為了滿足這一需求,出現了各種身份認證架構,包括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等),支援多種身份驗證方式(如使用者名密碼、智能卡、生物識别等),可以在不同的平台和應用之間實作單點登入、身份認證和授權管理。

更多請關注“零信任網絡”

繼續閱讀