繁體中文(香港)
  • oss
  • IAM
  • SSO providers

2025 年五大開源身份驗證與存取管理(IAM)供應商

比較 Logto、Keycloak、NextAuth、Casdoor 和 SuperTokens 的功能、協定、整合、優缺點,以找出最適合你身份驗證和授權需求的 OSS。

Ran
Ran
Product & Design

Stop wasting weeks on user auth
Launch secure apps faster with Logto. Integrate user auth in minutes, and focus on your core product.
Get started
Product screenshot

什麼是 IAM 供應商?

身份驗證與存取管理(IAM)供應商是一種確保對資源安全、受控訪問的系統。它結合四個支柱:

  • 身份驗證:驗證用戶身份(例如:密碼、生物識別、社交登入)。
  • 授權:根據角色或政策授予權限。
  • 用戶管理:處理配置、角色和審計。
  • 組織管理:結構化團隊、權限和多租戶管理。 IAM 工具對強制實行安全政策、防止洩漏以及滿足 SOC 2、GDPR 和 HIPAA 等合規標準至關重要。

選擇開源 IAM 解決方案的關鍵考量

以下是核心需求:

  1. 適合整合的 SDK 和部署靈活性: 確保與你的技術架構(例如:語言、框架、資料庫)相容,並提供流行的部署選項(例如:npm 包、Docker 容器、GitPod 整合或一鍵託管)。這有助於減少設置時間並加速產品上市時間。

  2. 協定支援以達成互通性: 必須支援 OAuth 2.0OpenID Connect (OIDC)SAMLLDAP,以整合第三方應用和身份供應商(如 Google、Apple、Azure AD 等)。開放標準可最大限度地減少供應商鎖定並簡化聯合身份工作流程。

  3. 適合商業需求的功能模組化: 選擇一個提供模組化組件來滿足當前需求的解決方案,並可隨著未來的需求而擴展:

    • 身份驗證:密碼、無密碼、社交登入、SSO、生物識別和 M2M 認證。
    • 授權:RBAC、ABAC 和 API 保護。
    • 管理:用戶生命週期工具、審計日誌、webhooks 和合規報告。
    • 安全:MFA、加密、密碼政策、暴力破解保護、機器人檢測和黑名單。選擇具有透明安全實踐的項目(SOC2 / GDPR 合規)。
  4. 用戶體驗(UX)優化: 優先選擇擁有 預構建身份驗證流程(登入、註冊、密碼重置)的解決方案,以減少開發工作。確保終端用戶流程直觀、移動友好且可定制,以提高轉換率。

  5. 自定義和擴展性: API 和 webhooks 應允許根據獨特的商業規則來定制身份驗證工作流程、UI 主題和策略邏輯。避免 "黑盒" 解決方案——選擇透明、社區驅動的代碼。

以下是長期成功差異化因素:

  1. 開發者體驗(DX): 完整的文檔、代碼示例和沙箱環境(例如:Postman 集合、CLI 工具)以及低代碼管理控制台可簡化設置並減少錯誤。

  2. 社群和企業支持: 一個繁榮的社群(Discord、GitHub)可用於故障排除和知識共享。企業支持選項(SLAs、專屬工程)為關鍵部署提供可靠性。

  3. 可擴展性: 定期更新以防範零日漏洞和新興標準(例如:FIDO2)。混合部署選項(OSS + 雲端)簡化了擴展並降低了運營開銷。

這些條件對於開源項目來說似乎有些苛刻,但已經有服務可以滿足我們來看看。

前 5 大開源 IAM 供應商

  1. Logto:開發者為先的 IAM,集身份驗證、授權、用戶管理和多租戶於一體。它無需依賴任何框架,支援 OIDC/OAuth/SAML 並完全免費。
  2. Keycloak:企業級協定強者(SAML/OAuth/LDAP),適合需要細粒度控製和自託管的組織。
  3. NextAuth:為 Next.js 開發者量身定制的輕量級認證庫,簡化社交登入、無密碼驗證和會話管理。
  4. Casdoor:以 UI 為主導的 IAM 和單一登入(SSO)平台,具有網頁 UI 支援 OAuth 2.0、OIDC、SAML、CAS、LDAP 和 SCIM。
  5. SuperTokens:基於 OAuth 2.0 的身份驗證解決方案,具有開源靈活性和商業可擴展性。

#1 Logto

Logto 是現代應用和 SaaS 產品的開源 Auth0、Cognito 和 Firebase 验證替代選擇,支援 OIDC、OAuth 2.0 和 SAML 開放標準進行身份驗證和授權。

主頁 | GitHub Repo | 文檔 | Discord 社群

Logto OSS 的主要功能

  1. 協定:OIDC、OAuth 2.0、SAML 2.0
  2. 官方 SDK
    • 官方 SDK:Android、Angular、Capacitor JS、Chrome Extensions、.NET Core、Expo、Express、Flutter、FlutterFlow、Go、Java Spring Boot、Next.js(Page 和 App Router)、Auth.js (NextAuth)、Nuxt、Passport.js、PHP、Python、React、Ruby、SvelteKit、iOS、Vanilla JS、Vue、Webflow、WordPress、Hasura 和 Supabase。
    • 自定義整合:傳統網頁應用、SPA、移動應用、M2M、OAuth 應用和 SAML 應用。
  3. 身份驗證方法:密碼、Email 和 SMS 無密碼、社交登入、企業 SSO、多重身份驗證(MFA),使用身份驗證器 TOTP / 通行密鑰 / 備用碼、個人訪問令牌、Google One Tap、邀請、帳戶連結和 OAuth 同意流程。
  4. 授權:API 保護、用戶/M2M 的 RBAC、組織級別的 RBAC、JWT/不透明令牌驗證和自定義令牌聲明。
  5. 多租戶:組織模板、成員邀請、每個組織的 MFA、即時配置(JIT),以及為每個租戶定制的登入體驗。
  6. 用戶管理:用戶模仿、用戶建立和邀請、暫停用戶、審計日誌和用戶遷移。
  7. 用戶體驗:提供美觀的、即時可用且完全可自定義的身份驗證流程,通過身份聯合管理,實現統一的多應用全渠道登入體驗。
  8. 供應商整合
    • 社交供應商:Google、Facebook、Microsoft、Apple、GitHub、X.com、LinkedIn、Slack、Amazon、Discord、Line、WeChat、Kakao 等。可完全自定義,支援 OpenID Connect 或 OAuth 2.0。
    • 企業供應商:Microsoft Azure AD、Google Workspace、Okta 等。可完全自定義,支援 OpenID Connect 或 SAML。
    • Email 傳送供應商:AWS、Mailgun、Postmark、SendGrid 等,可透過 SMTP 或 HTTP 通話配置。
    • SMS 傳送供應商:Twillio、SMS Aero、GatewayAPI、Vonage、Aliyun 和 Tencent。

Logto OSS 的優點

  • 100% 免費 OSS:所有核心功能(包括 SSO、RBAC、組織等)均可免費使用;沒有被收費牆擋住的必要功能。
  • 企業級安全:SOC2 準備好的架構、MFA、SSO、API 保護、多租戶隔離、暴力破解保護和審計日誌。
  • 成為身份供應商:使用 Logto,你可以將你的服務轉變為身份供應商,實現多應用、平臺和設備之間的無縫整合。支援 OIDC、OAuth 2.0 和 SAML 2.0,以實現通用的單一登入和身份聯合管理。
  • 外部生態系統整合以促進夥伴關係:Logto 支援 M2M 身份驗證、個人訪問令牌、用戶模仿(令牌交換)、第三方應用的 OAuth 授權,包括同意屏幕和第三方身份供應商的可定制連接,全部促進你的產品增長。
  • 對開發者友好:結構良好的 API、SDK、文檔和直觀的控制台。
  • 可擴展的部署:Logto 可作為免費的 OSS 使用,而 Logto Cloud 提供管理服務,具有可靠的更新和金融支持,提供長期支持。
  • 活躍社群:響應迅速的 Discord 社群和積極的核心團隊能確保及時解決問題並持續改進特性。
  • 輕量且現代化:以現代設計原則構建,優化速度和效率,適合個人開發者、新創公司和企業。

Logto OSS 的缺點

  • 基於重定向的身份驗證:基於 OIDC 需要重定向至身份供應商,可能不適合需要無重定向體驗的場景。不過,Logto 提供嵌入式的直接登入組件(社交、SSO 等)來解決這個問題。
  • 有限的 B2E 特性:尚未內建 LDAP/Active Directory 同步和極為細粒度的授權。
  • 成長的生態系統:相對於老牌解決方案社群規模較小,但正在迅速發展並有貢獻。

#2 Keycloak

Keycloak 是一個企業就緒的 IAM 解決方案,擁有對 SAML、OAuth 和 LDAP 的強大支持,特別適合優先考慮協定靈活性、自託管和細粒度控製的組織。

主頁 | GitHub Repo | 文檔 | Slack 社群

Keycloak 的功能

  1. 協定:OIDC、OAuth 2.0、SAML 2.0、LDAP
  2. 官方 SDK:Java、JavaScript、Node.js、C#、Python、Android、iOS、Apache HTTP Server
  3. 身份驗證方法:單一登入(SSO)、多因素身份驗證(MFA)、社交登入、Kerberos。
  4. 用戶體驗:即時可用的登入介面和賬戶管理控制台,具有可自定義的 HTML、CSS 和 Javascript。
  5. 細粒度授權:基於角色、屬性或其他標準的訪問控製。
  6. 目錄同步:從現有企業目錄(LDAP/Active Directory)中同步。
  7. 可插拔架構:自定義擴展和整合。

Keycloak 的優點

  • 企業的全面功能集:如 SSO、MFA、身份中介、用戶聯合,和多協定支持(OAuth 2.0、OpenID Connect、SAML)。
  • 可定制的用戶介面和管理設定:提供默認的登入 UI 和管理控制台,可定制主題和擴展。
  • 整合和擴展性:能夠輕鬆與外部身份供應商(如 LDAP/AD 和社交登入)整合,並通過插件支持自定義擴展。
  • 活躍社群和持續開發:定期更新、活躍社群支持和 Red Hat 的支持保證持續改進和安全補丁。

Keycloak 的缺點

  • 學習曲線陡峭:配置領域、客戶端和身份驗證流程可能頗具挑戰性,尤其對於沒有深厚 IAM 經驗的團隊而言。
  • 自定制困難:雖然靈活,但調整 UI 通常需要使用 FreeMarker 模板或自定義 SPI,這可能繁瑣。
  • 高維護需求:頻繁的重大更新和重大變更使升級變得複雜,需要在伺服器和客戶端庫之間進行仔細協調。
  • 資源密集型:在高可用性或容器化設置中運行 Keycloak 可能需要相當多的 CPU/RAM,並需要精細性能調整。
  • 文檔缺乏:基礎知識相對覆蓋充分,但高級功能和邊緣案例通常缺乏詳細或最新的文檔。

#3 Auth.js/NextAuth.js

NextAuth.js 是一款專為 Next.js 設計的輕量級驗證庫,提供社交登錄、無密碼驗證和會話管理的簡單設置,且所需配置極少。

主頁 | GitHub Repo | 文檔 | Discord 社群

NextAuth.js 的功能

  1. 協定:OAuth 2.0、OIDC
  2. 框架:Next.js、Node.js 和無伺服器平臺(例如:Vercel、AWS Lambda)
  3. 身份驗證方法:社交登入、魔術連結、認證、WebAuthn(通行密鑰)。
  4. 身份驗證體驗:默認的登入、登出、錯誤和驗證頁面;並可覆蓋它們以創建一個完全品牌化的自定義用戶體驗。
  5. 會話管理:支持基於 JSON Web Token (JWT) 的無狀態會話和資料庫支持的會話。

NextAuth.js 的優點

  • 與 Next.js 的無縫整合:專為 Next.js 設計,能夠順利運行於伺服端渲染 (SSR)、靜態網站生成 (SSG) 和 API 路由。開發人員可以輕鬆使用如 useSession 的 hooks 和像 SessionProvider 的組件管理驗證狀態。
  • 可自定義的身份驗證流程:內建 callbacks 用於登入、JWT 處理和會話管理,允許深度自定制,讓開發人員完全控制身份驗證行為和令牌處理。
  • 活躍的社群和生態系統:強大的開發者社群貢獻教程、範例和討論,使排障更容易並擴展功能。

NextAuth.js 的缺點

  • 有限的 IAM 功能:缺乏 SMAL、SSO、MFA、多租戶和其他針對 B2B 或 B2E 用例的關鍵驗證特性。它專注於身份驗證,無內置的授權或用戶管理支持。
  • 不一貫和低劣的文檔:許多用戶反映文檔分散、過時且難以理解,特別是在升級到新版本或過渡到應用程序目錄結構時。
  • 穩定性和漏洞報告:開發人員曾遭遇會話處理問題、刷新令牌漏洞和不可預測的行為,有時需使用變通方法或替代解決方案。
  • 學習曲線陡峭:API 和配置可能感覺複雜,尤其對於初學者。頻繁的重大變更—如在 NextAuth.js v5 beta 中引入的變更—增加了整合挑戰。

#4 Casdoor

Casdoor 是一款以 UI 為主的身份驗證及存取管理(IAM)/單一登入(SSO)平臺,提供支持 OAuth 2.0、OIDC、SAML、CAS、LDAP、SCIM、WebAuthn、TOTP、多因素身份驗證(MFA)、RADIUS、Google Workspace、Active Directory 和 Kerberos 的網頁 UI。

主頁 | GitHub Repo | 文檔 | Discord社群

Casdoor 的功能

  1. 協定:OAuth 2.0、OIDC、SAML、CAS、LDAP、SCIM
  2. 官方 SDK:Android、iOS、React Native、Flutter、Firebase、Unity Games、uni-app、Electro、.Net Desktop、C/C++、JavaScript、前端專用、React、Next.js、Nuxt、Vue、Angular、Flutter、ASP.NET、Firebase、Go、Java、Node.js、Python、PHP、.NET、Rust、Dart、Ruby。
  3. 身份驗證方法:憑證、Email/SMS 驗證碼、社交登入(OAuth/SAML)
  4. 身份管理:提供一個集中式的儀錶板來管理用戶、角色、權限和多租戶,和審計日誌。
  5. 可自定制的 UI 和流程:提供預構建的 UI 模板,且允許自定義登入方法、註冊欄位和身份驗證流程。
  6. 訪問控製:支持 RBAC 並能與細粒度授權解決方案(如 Casbin)集成以進行高級權限管理。
  7. 多租戶:使能管理多個組織或項目於單一實例中。

Casdoor 的優點

  • 靈活的整合:Casdoor 提供的豐富 API、SDK 和身份供應商支援使得與各種平臺和外部服務的整合變得簡單。
  • 多租戶和聯合能力:內置多租戶和身份中介支援使其適合管理多個客戶或子公司的組織。
  • 開源和活躍的社群:由活躍的開發者社群維護,並在如 Casnode 和 QQ 群這類平臺上活躍討論,另外還有定期更新和貢獻。

Casdoor 的缺點

  • 安全問題:曾面臨如 SQL 注入(CVE-2022-24124)和任意文件讀取等漏洞問題,需要嚴格的安全配置和及時更新。
  • 過時的 UI 設計:與現代身份驗證解決方案相比,預構建的 UI 顯得過時,通常需要自定制以提供精緻的用戶體驗。
  • 有限的企業級支持:儘管功能豐富,但某些高級企業功能在成熟度上不及更為成立的平台,有時需要額外的自定制。
  • 學習曲線陡峭:高級自定制需具備 Golang 和 React.js 知識,對於不熟悉這些技術的團隊可能會帶來挑戰。雖然有 Swagger API 文檔,但複雜用例的詳盡指南仍然缺乏。

#5 Supertokens

一款面向開發者的身份驗證解決方案,融合開源透明性和商業可擴展性,優化密碼無需、多因素身份驗證(MFA)和會話管理以配合現代應用架構。

主頁 | GitHub Repo | 文檔 | Discord 社群

Supertokens 的功能

  1. 協定:OAuth 2.0
  2. 框架和雲端整合
    • 框架:Next.js App Router、Next.js Pages Router、NestJS、GraphQL、RedwoodJS、Capacitor。
    • 雲端平臺:AWS Lambda、Netlify、Vercel、Hasura、Supabase。
  3. 身份驗證方法
    • 免費:密碼、Email/SMS 密碼無需、社交登入。
    • 付費:多租戶身份驗證、企業 SSO(SAML)、MFA(TOTP/Email OTP/SMS OTP)、帳號連結。
  4. 預構建 UI 組件和可自定制的流程:提供即用的 UI 組件以進行登入、註冊和密碼恢復。允許開發者自定制身份驗證流程。
  5. 多租戶支持(付費):可管理多個租戶(組織或應用),具有企業 SSO 通過 SAML 連結、隔離的用戶資料和每個租戶獨特的登入方法。
  6. 風險評估(付費):提供一個攻擊保護套件,分析登入嘗試並分配風險分數,可以強製執行額外的安全措施,例如要求 MFA。

Supertokens 的優點

  1. 清晰的 UI 方法:Supertokens 將 SDK 和身份驗證方法劃分為預構建 UI 和自定義 UI,提供一個明確且靈活的整合體驗。
  2. 輕量而注重身份驗證:專為身份驗證構建,使其輕量且高效。開源版本包含必要的功能,使其對於新創和小團隊具有成本效益。
  3. 活躍開發:隨著新特性和改進定期更新,且有一個活躍的 GitHub 社群支持。

Supertokens 的缺點

  1. OSS 功能限制:需要付費才能使用高級功能如帳號連結、多租戶身份驗證、儀錶板額外用戶、MFA 和攻擊保護套件。
  2. 有限的企業整合:沒有 SAML 應用整合,這可能會降低與傳統企業系統的相容性。
  3. 範圍狹窄:主要專注於身份驗證,只有基本的治理控制台功能。缺乏高級授權、租戶管理和企業級身份功能。
  4. 較小的生態系統:相較於全面的 IAM 解決方案,第三方整合和插件較少。較小的社群可能影響長期支持和可擴展性。

結論

開源 IAM 解決方案種類繁多:

  • 全面且可擴展:如 Logto、Keycloak 和 Casdoor,提供更廣泛的身份驗證、授權和用戶管理功能。
  • 僅限身份驗證/授權:如 Supertokens,僅專注於身份驗證。
  • 輕量且針對特定框架:如 NextAuth.js,專為特定框架設計。

選擇解決方案時,應考慮你的專案規模、具體需求和未來可擴展性。

Logto 作為一個完全免費且功能豐富的 OSS 解決方案脫穎而出,擁有長期穩定性、活躍的社群和對標準協定的全方位支持。它提供完整的身份驗證、授權和用戶管理套件,使其具有很強的可擴展性。對於需要企業級合規和可靠性的用戶,Logto 的具備成本效益的雲版本提供專業支持,確保平滑遷移。