Keycloak集成三方身份提供者的注銷流程


三方身份認證系統介紹

場景:主流多數的企業都有自己的身份認證系統和應用中心系統,以CAS、Oauth2、Saml、私有協議等的認證系統居多。

   多數企業要求應用在使用的過程中需要接入認證系統和應用中心,以達到企業電子化的最低要求,實現應用集成,完成賬號統一。在實際的運作中,需要外部應用接入到企業認證系統中。

   keycloak集成了多數的三方認證系統。本文對認證系統的擴展做重要講解。

Keycloak集成三方系統

  以集成外部CAS-Server為例,做主要介紹。本文假設讀者對Keycloak三方認證系統的集成有初步的了解。

keycloak三方認證系統登錄流程

  先介紹keycloak 集成三方認證系統的登錄流程,當企業外部應用A完成登錄后,再次訪問企業外部應用B的時候,也即可登錄,即單點登錄

   

Keycloak集成三方認證系統注銷流程

  按照上圖的登錄流程,完成Social 登錄后,當用戶點擊注銷的時候,由於沒有清楚到外部三方系統在本機瀏覽器的token,將會應用又再次的完成登錄,無休止的循環,用不退出,需優化,下文以流程圖的方式分析如果完成外部三方系統的單點登錄功能。

代碼關鍵部分

public interface IdentityProvider<C extends IdentityProviderModel> extends Provider {
/**
     * Called when a Keycloak application initiates a logout through the browser.  This is expected to do a logout
     * with the IDP
     *
     * @param userSession
     * @param uriInfo
     * @param realm
     * @return null if this is not supported by this provider
     */
    Response keycloakInitiatedBrowserLogout(KeycloakSession session, UserSessionModel userSession, UriInfo uriInfo, RealmModel realm);

    
}

 備注:需要實現IdentityProvider的 keycloakInitiatedBrowserLogout,完成第三步驟(發送注銷請求到CAS)

備注

PS:本文只能解決基於WEB跳轉的注銷,backchannel的注銷方式另外介紹。

若有開發需要,可留言於我,或者加入QQ群:794868111,相互交流。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM