本文介紹了密鑰罩添加新的驗證碼的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我想在keyloak中添加一個新的auth方法。準確地說,我希望密鑰罩向外部API請求一些特定值。我讀過有關鑰匙斗篷中的流程,但它們的記錄似乎很少,而且我有一種感覺,它不是很直觀。
在登錄期間,我希望密鑰罩向外部API發送請求,并且當且僅當返回特定值時才允許用戶登錄。例如,我可以覆蓋一些登錄方法,然后添加幾行代碼來做我想做的事情。
哪個類使用哪種方法負責登錄?
推薦答案
要實現此目標,您需要執行多項操作。我會仔細檢查一下:
-
實現Authenticator和AuthenticatorFactory接口。
復制現有身份驗證流
綁定流
我假設您知道如何編寫和部署密鑰罩擴展。
1.實現Authenticator和AuthenticatorFactory接口。
具體接口為:
org.keycloak.authentication.AuthenticatorFactory
org.keycloak.authentication.Authenticator
示例實現:
org.keycloak.authentication.authenticators.browser.UsernamePasswordFormFactory
org.keycloak.authentication.authenticators.browser.UsernamePasswordForm
如果要外部化配置(以便可以為外部API添加用戶名/密碼等),請重寫AuthenticatorFactory
中的getConfigProperties()
方法
2.復制現有身份驗證流。
-
使用管理員憑據登錄密鑰罩。
創建新領域(如果有,請使用)
轉到左側的”身份驗證”選項卡。
復制瀏覽器登錄流程
添加您的流/執行(您的Authenticator/Factory實現將列在Executions下)
您可以向上或向下移動它們。使它們成為必需的或可供選擇的等等。
如果覆蓋配置列表,它將顯示在您的執行旁邊
3.綁定流。
在身份驗證頁面的第二個選項卡中綁定流。
這篇關于密鑰罩添加新的驗證碼的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,