八個開源免費單點登錄(SSO)系統
單點登錄(SSO)是一個登錄服務層,通過一次登錄訪問多個應用。使用SSO服務可以提高多系統使用的用戶體驗和安全性,用戶不必記憶多個密碼、不必多次登錄浪費時間。
下面推薦一些市場上最好的開源SSO系統,可作為商業SSO替代。
1.Authelia
https://github.com/authelia/authelia
Authelia是一個免費、開源、可私有化部署的單點登錄(SSO)項目。它具有時尚的登錄窗口,支持一次性密碼設置、通知推送等功能。
Authelia可以獨立安裝,或者使用Docker、Kubernetes容器部署。
下圖是Authelia的登錄頁面:
開發語言:Go、TypeScript、Html
2.Keycloak
https://www.keycloak.org/
https://github.com/keycloak/keycloak
Keycloak是一個免費、開源身份認證和訪問管理系統,支持高度可配置的單點登錄(SSO)功能。
Keycloak內置支持連接到現有的LDAP或Active Directory服務器。也可以自己實現與關系數據庫中的用戶數據對接。
另外,如果基于角色的授權不能滿足需求,Keycloak還提供了細粒度的授權服務。這允許您從Keycloak管理控制臺管理所有服務的權限,您可以準確地定義您所需的授權策略。
Keycloak支持許多目前比較流行認證標準協議,如:OpenID Connect,OAuth 2.0、SAML 2.0等。
開發語言:Java、TypeScript、Html
3.Apereo CAS
https://github.com/apereo/cas
Apereo CAS是一個開源的企業級單點登錄系統,是CAS項目的一部分。
Apereo CAS開箱即用,并且提供多種協議支持,如:CAS(v1,v2和v3)、SAML(1.0和2.0)、OAuth(v2)、OpenID、OpenID Connect等。
Apereo CAS支持使用多種身份證方法,包括:JAAS、LDAP、RDBMS、Radius、JWT等。
Apereo CAS支持通過Due、YubiKey、RSA、Google Authenticator、U2F、WebAuten等進行身份驗證。
系統架構如下圖所示:
開發語言:Java(Spring/Spring Cloud)、Html
4.IdentityServer
https://github.com/IdentityServer
IdentityServer是一個完整的IAM(身份和訪問管理系統解決方案),它基于OpenID Connect和ASP.NET Core開發,支持OAuth 2.0。通過API提供SSO服務。適合使用.Net技術的開發人員。
開發語言:C#、JavaScript、Html
5.Jasny SSO
https://github.com/jasny/sso
Jasny SSO是一個輕量級的PHP SSO 項目。它由三部分組成:客戶端、代理和服務端。它可以安裝并集成到任何PHP項目中。
開發語言:PHP
6.OpenAM
https://github.com/OpenIdentityPlatform/OpenAM
OpenAM是一個具有SSO功能的全功能IAM系統,它具有SSO、身份驗證、授權、身份聯合和友好的API。
它支持CDSSO(跨域單點登錄),SAML 2.0,OAuth 2.0和OpenID Connect等協議。
開發語言:Java、TypeScript、Html
部署環境:linux、window、mac、Docker
7.S.S.Octopus
https://github.com/buzzfeed/sso
S.S.Octopus又名sso或者 aka octoboi,是一種用于保護內部服務的單點登錄解決方案。它是Buzzfeed下的一個開源SSO項目。它是用Go編寫的,可以編譯成二進制文件安裝,或者Docker安裝。
開發語言:Go
8.ORY Hydra
https://github.com/ory/hydra
ORY Hydra是一個開源的SSO項目,支持OpenID、OpenID Connect和OAuth2.0協議,ORY Hydra是ORY IAM生態系統的一部分。ORY IAM生態包含一系列用于構建IAM系統的子項目,并且這些項目都是開源的。
基于ORY Hydra、Vapor 3的iOS應用案例,架構如下圖所示:
開發語言:Go