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