簡體   English   中英

Keycloak Customization在身份驗證流程中運行自定義java

[英]Keycloak Customization to run custom java in authentication flow

如果這不是發布的正確位置,請告訴我,但我一直在尋找有關此問題的信息,似乎無法找到簡明的答案。

我一直在嘗試使用keycloak來滿足我們應用程序的用戶管理要求。 雖然我發現keycloak非常有能力且非常有效,但我遇到了可能是我們使用的死胡同。

背景:

傳統上,我們的應用程序使用了一個非常基本的登錄框架來驗證身份驗證。 然后使用我們無法更改的第三方應用程序,通過wsdl操作識別用戶將擁有的角色並插入到我們的應用程序數據庫中。

例如,如果我們驗證用戶John Doe存在並驗證其憑據,我們在java代碼中調用wsdl以獲取用戶應具有的角色(超級用戶,訪客,普通用戶)。 顯然,整個框架都存在很大缺陷,最終,這就是我們選擇使用keycloak的原因。

問題

不幸的是,正如我所提到的,我們無法更改第三方應用程序,我們必須從此wsdl操作獲取用戶角色映射。 我知道有一種方法可以通過java函數創建/修改keycloak的用戶和角色。 但是,為了保持這種體系結構的模塊化,有一種方法可以配置身份驗證流程以在密鑰泄露端到達此WSDL以進行角色映射嗎? (即不在應用程序代碼中,但可能在認證流程中的scriplet中)

我正在尋找的本質上是如何配置身份驗證流程以在驗證憑據之后但在授予訪問權限之前在java中運行像“hello world”這樣簡單的事情。

不確定是否可以使用Authentication SPI

您需要的是用戶存儲SPI Keycloak文檔提供了一個實現簡單的基於文件的用戶存儲提供程序的良好演練。 以下是docs中使用的示例項目的完整源代碼。

用戶存儲SPI非常廣泛,因此Keycloak提供了兩種方法來重用Keycloak中已有的功能:

  1. 讓您的用戶使用外部數據庫並使用Keycloak功能對其進行擴充
  2. 將用戶存儲在Keycloak中並從外部數據庫導入相關信息

每種方法都有記錄的優缺點。 使用上述方法之一,您可以實現一個小型提供程序,該提供程序僅將遠程服務用於用戶組管理。

是。 您可以使用Authentication SPI編寫自定義驗證器。 除了部署之外,開發Keycloak Authentication SPI的所有步驟都可以正常工作。 要部署自定義SPI,請將jar作為模塊添加到standalone.xml中。 要添加新創建的SPI,請按照以下鏈接:首先,您需要在Keycloak服務器中注冊您的SPI。 在standalone.xml或domain.xml中添加另一個SPI。

<spi name="authenticator_name"> <provider name="authenticator_name" enabled="true"/> </spi>

要為Keycloak服務器注冊模塊,請在Keycloak-server子系統中添加模塊:

<subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">
  <web-context>auth</web-context>
    <providers>
      <provider>classpath:${jboss.home.dir}/providers/*</provider>
      <provider>module:com.abc</provider>
        .....
        .....
</subsystem>

一旦進行了這些更改,您需要在com / abc中創建一個模塊步驟:構建代碼。

set KEYCLOAK_HOME=Keycloak Installation folder
%KEYCLOAK_HOME%/bin/jboss-cli.sh --command="module add --name={module_name}  --resources={path to your jar/your jar file name}  --dependencies=org.keycloak.keycloak-core,org.keycloak.keycloak-server-spi,org.keycloak.keycloak-server-spi-private,org.keycloak.keycloak-services,org.jboss.resteasy.resteasy-jaxrs,javax.ws.rs.api,org.keycloak.keycloak-common"

在Keycloak服務器中添加SPI模塊后,啟動Keycloak服務器並在Keycloak管理控制台(身份驗證)中添加執行流程。

有關詳細信息,請訪問: http//www.keycloak.org/docs/3.0/server_development/topics/providers.html http://www.keycloak.org/docs/3.0/server_development/topics/auth-spi.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM