###### tags: `keycloak` `Tool` ## 三、SSO 簡述 OIDC和SAML討論完後,我們來聊聊單一登入(SSO)。SSO是一個身份驗證方案,它讓使用者能透過一次登入就可訪問多個應用程式和網站。簡而言之: > 透過單一的登入窗口,進行單一的身分驗證,就可以讓許多的服務共同來使用這個驗證結果 OIDC和SAML都可以實現這樣的SSO功能。舉例來說,假設你在工作中要使用三個不同的平台: 1. 郵件系統(Email System) 2. 公司內部網站(Intranet) 3. 報表和數據分析平台(Analytics Platform) 通常你得記住這三個系統各自的帳號和密碼。但有了SSO,你只需透過一個統一的登入界面(比如由Keycloak管理)登入一次,然後就能自由地訪問這三個不同的平台,無需再逐一輸入帳號和密碼。 總之,SSO幫你將多個獨立的系統集成為單一的入口點。這樣不僅減少了你需要記住多組密碼的困擾,還降低了由於多個系統各自存儧行密碼所帶來的安全風險。 流程範例大致如下: - Step1(箭頭1) : 用者首先訪問「Application 01」的 URL 並按下登入按鈕,然後會被引導到 Keycloak 登入頁面。 - Step2: 用戶在 Keycloak 成功登入後,將被重新導向回「Application 01」的主頁。 - Step3(箭頭3): 如果用戶在合理的時間內再次訪問「Application 02」,則不需要重新登入。 箭頭2實際上是指示用戶從「應用程式01」被引導到Keycloak的登入頁面這一過程。簡單來說,當用戶嘗試在「應用程式01」登入(箭頭1)後,他們會被重定向到Keycloak以完成身份驗證(箭頭2)。 ![](https://hackmd.io/_uploads/Sy0BScvfT.png)