如何連接到 Casdoor
如何連接到 Casdoor
我們在完成架設 Casdoor server 之後會,接下來要介紹如何連上 Casdoor server,以下是官方的說明文件
概述 (Overview)
本篇文章將介紹如何將你的應用程式與 Casdoor 進行整合,以實現單一登入 (SSO) 和身份驗證功能。
而 Casdoor 可以同時支援 SP 與 IdP 服務
Casdoor 作為 SP 支援的身份驗證協議:
- OAuth 2.0 (OIDC)
- SAML
Casdoor 作為 IdP 支援的身份驗證協議:
- OAuth 2.0
- OIDC
- SAML
- CAS 1.0、2.0、3.0
什麼是 SP 與 IdP ?
在身份驗證架構中,有兩個重要的角色:
- **身份提供者 (IdP, Identity Provider)**:負責管理使用者的身份與憑證,例如 Google、Facebook 或 Casdoor。
- **服務提供者 (SP, Service Provider)**:需要使用者身份資訊的應用程式,例如例如其他第三方網站(例如 Medium、Trello、Notion),或是你的網站或後台管理系統。
當使用者登入時,SP 會向 IdP 請求身份驗證,並獲取授權後,允許使用者訪問應用程式。
SP(服務提供者)與 IdP(身份提供者)簡單範例
假設你要使用 Google 帳號登入 Notion,整個身份驗證流程中:
- **Google 是身份提供者 (IdP)**:它負責存儲與管理使用者帳號,並提供驗證服務。
- **Notion 是服務提供者 (SP)**:它需要確認使用者的身份,並請求 Google 來驗證登入。
流程簡述
- 使用者在 Notion 點擊「用 Google 帳號登入」。
- Notion(SP)將使用者導向 Google(IdP)進行身份驗證。
- Google 確認身份後,返回授權資訊給 Notion。
- Notion 根據 Google 的驗證結果,允許使用者登入。
這種機制使得使用者可以在多個不同的網站上,使用同一組帳號(例如 Google)進行安全登入,而不需要為每個網站建立新帳號。
OAuth 2.0 (OIDC) 身份驗證
什麼是 OAuth 2.0?
OAuth 2.0 是一個授權框架,允許應用程式(如 Facebook、GitHub、Casdoor)透過 HTTP 服務存取使用者帳戶,並委託身份驗證給提供帳戶的服務,從而允許第三方應用程式獲取用戶授權。
Casdoor 的授權機制基於 OAuth 2.0,推薦使用這個協議的原因包括:
✅ 簡單易實作,可適用多種場景
✅ 技術成熟,擁有廣泛的社群支持
因此,應用程式將透過 OAuth 2.0 (OIDC) 與 Casdoor 進行身份驗證。
如何連接到 Casdoor?
有三種方式可以將你的應用程式與 Casdoor 整合:
1️⃣ 使用標準 OIDC 客戶端
- 使用現有的 OIDC 客戶端,適用於大部分程式語言與框架
- 如果你的應用程式已支援 OIDC,這種方式最簡單
OpenID Connect (OIDC) 是什麼?
OIDC 是建立在 OAuth 2.0 之上的開放身份驗證協議,允許使用者透過 OpenID 提供者 (OP) 進行身份驗證,然後訪問不同的應用程式。
Casdoor 完全支援 OIDC 協議,如果你的應用程式已經使用 其他 OIDC 身份提供者,透過 OIDC Discovery 可以輕鬆切換到 Casdoor。
Casdoor SDKs
如果你想要更多功能(如用戶管理、資源上傳),可以使用 **Casdoor SDK**。
相比標準 OIDC,使用 Casdoor SDK 可以提供更強大的 API,如:
✅ 使用者管理
✅ 資源上傳
✅ 更靈活的身份驗證功能
但使用 SDK 需要更多開發時間,適合希望有 更高擴展性 的開發者。
Casdoor 插件 (Plugins)
如果你的應用程式已經建立在 Spring Boot、WordPress 等平台上,Casdoor(或第三方)可能已經提供了 **插件 (Plugin) 或中介軟體 (Middleware)**,可以直接使用,無需額外開發!
目前支援的插件與中介軟體
✅ 插件 (Plugins):
- Jenkins Plugin
- APISIX Plugin
✅ 中介軟體 (Middleware):
- Spring Boot Plugin
- Django Plugin
使用插件的方式比直接調用 SDK 更簡單,適合不希望修改應用程式核心架構的開發者。

>https://casdoor.org/docs/how-to-connect/plugin/
SAML 身份驗證
什麼是 SAML?
SAML (Security Assertion Markup Language) 是一種開放標準,允許 身份提供者 (IdP) 向 服務提供者 (SP) 傳遞授權憑證,使用戶可以用單一憑證登入多個網站。
SAML 主要適用於 企業內部系統,如:
✅ Google Workspace
✅ Microsoft Active Directory (AD)
Casdoor 可作為 SAML IdP,目前支援 SAML 2.0 的主要功能。
但需要注意的是:
⚠️ SAML 技術較為複雜,不建議用於新開發的應用程式
範例: Casdoor 可作為 Keycloak 的 SAML IdP。
CAS 身份驗證
什麼是 CAS?
CAS (Central Authentication Service) 是一種 輕量級 SSO 協議,用於網頁應用程式,讓使用者 一次登入即可訪問多個應用。
Casdoor 已實作 CAS 1.0、2.0、3.0,但該協議的安全性較低,適用於 內部系統 或 學術機構。
使用 CAS 時的注意事項:
⚠️ 協議較為簡單,只適用於特定場景
⚠️ CAS Client 與 CAS Server 之間沒有額外的加密與簽名機制
由於 CAS 協議相比 OIDC 和 SAML 沒有明顯優勢,建議僅在特殊需求時使用。
🎯 結論:選擇最適合你的 Casdoor 整合方式!
整合方式 | 適用場景 | 優勢 |
---|---|---|
OIDC 標準客戶端 | 已有 OIDC 登入機制的應用 | ✅ 最簡單,適合快速對接 |
Casdoor SDK | 需要用戶管理、資源上傳 | ✅ 更靈活,功能更強大 |
Casdoor 插件 | 使用 Spring Boot、Jenkins、Django | ✅ 無需修改應用程式,最省事 |
SAML | 企業內部系統,如 Google Workspace | ⚠️ 技術較複雜,適合大企業 |
CAS | 學術機構、內部系統 | ⚠️ 輕量但安全性較低 |
👉 最佳選擇:
💡 如果你想要快速整合 SSO,推薦使用 **OIDC (OpenID Connect)**!