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

三方身份認證系統介紹

場景:主流多數的企業都有本身的身份認證系統和應用中心繫統,以CAS、Oauth二、Saml、私有協議等的認證系統居多。瀏覽器

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

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

Keycloak集成三方系統

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

keycloak三方認證系統登陸流程

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

   

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

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

代碼關鍵部分

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)spa

備註

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

如有開發須要,可留言於我,或者加入QQ:794868111,相互交流。blog

相關文章
相關標籤/搜索