我想在 keycloak 中添加一个新的身份验证方法。准确地说 - 我希望 keycloak 向外部 API 询问一些特定的值。我已经阅读了 keycloak 中的流程,但它们似乎没有很好的记录,而且我觉得它不是很直观。
在登录期间,我希望 keycloak 向外部 API 发送请求,并且当且仅当返回特定值时允许用户登录。例如,我可以覆盖一些登录方法并添加几行代码来执行我想要的操作。
哪个类中的哪个方法负责登录?
答案 0 :(得分:3)
要实现这一目标,您需要做很多事情。我会检查它们:
我假设您知道如何编写和部署 keycloak 扩展。
具体的接口是:
org.keycloak.authentication.AuthenticatorFactory
org.keycloak.authentication.Authenticator
示例实现:
org.keycloak.authentication.authenticators.browser.UsernamePasswordFormFactory
org.keycloak.authentication.authenticators.browser.UsernamePasswordForm
如果您想外部化您的配置(因此您可以为外部 api 添加用户名/密码等),请覆盖 getConfigProperties()
中的 AuthenticatorFactory
方法