驗證 (Authentication) vs. 授權 (Authorization)
驗證 (Authentication) 與 授權 (Authorization) 的差異可簡述如下:
- 驗證 (Authentication) 回答「你擁有哪個身分?」
- 授權 (Authorization) 回答「你可以執行哪些操作?」
完整的客戶身分與存取管理(CIAM, Customer Identity and Access Management)介紹,請參閱我們的 CIAM 系列文章:
- CIAM 101:驗證 (Authentication)、身分 (Identity) 與單一登入 (SSO, Single Sign-On)
- CIAM 102:授權 (Authorization) 與角色型存取控制 (RBAC, Role-based Access Control)
驗證 (Authentication)
Logto 支援多種互動式與非互動式驗證方法,例如:
- 登入體驗 (Sign-in experience):終端使用者的驗證流程。
- 機器對機器驗證 (M2M, Machine-to-Machine authentication):服務或應用程式的驗證流程。
驗證的最終目標極為簡單:驗證並取得實體(在 Logto 中即使用者或應用程式)的唯一識別符。
授權 (Authorization)
在 Logto 中,授權透過 角色型存取控制 (RBAC, Role-based Access Control) 實現,讓你完整控制使用者或 M2M 應用程式對以下項目的存取權限:
- API 資源 (API resources):以絕對 URI 表示的全局實體。
- 組織 (Organizations):使用者或應用程式的群組。
- 組織 API 資源 (Organization API resources):屬於特定組織的 API 資源。
深入瞭解這些概念,請參閱:
以下圖表直觀呈現這些概念間的關係:
簡而言之,授權是定義規則來決定「身分 (Identities)」群組中的實體能存取「資源 (Resources)」群組中的哪些實體。
常見問題
我需要指定哪些使用者能登入應用程式
由於單一登入 (SSO, Single Sign-On) 的特性,Logto 目前不支援將應用程式作為資源。建議改為定義 API 資源與權限來控制資源存取。
我需要使用者登入組織
如前所述,驗證涉及確認實體身分,而存取控制透過授權處理。因此:
- 判斷使用者所屬組織屬於授權範疇。
- 登入流程屬於驗證範疇。
這表示 Logto 中不存在「登入組織」的概念。使用者驗證後,即可根據定義的權限存取所有資源(包含組織資源)。
此模型高效且清晰,分離了驗證與授權的關注點。所有現代 SaaS 應用程式(如 GitHub 和 Notion)均遵循此模型。
若需建立使用者來源與組織的 1-1 對應,可參考 企業級單一登入 (Enterprise SSO) 和 組織即時佈建 (JIT, Just-in-Time provisioning)。
客戶需要自訂登入頁面品牌
請參閱 應用程式專屬品牌設定 (App-specific branding) 和 組織專屬品牌設定 (Organization-specific branding) 進行相關配置。