Keycloak 添加新的验证器
Keycloak adding new authenticator
我想在 keycloak 中添加一个新的身份验证方法。准确地说 - 我希望 keycloak 向外部 API 询问一些特定的值。我读过 keycloak 中的流程,但它们的文档似乎很少,我觉得它不是很直观。
在登录期间,我希望 keycloak 向外部发送请求 API 并且当且仅当返回特定值时允许用户登录。例如,我可以覆盖一些登录方法并添加几行代码来执行我想要的操作。
class哪个方法负责登录?
要实现这一点,您需要做很多事情。我将检查它们:
- 实现 Authenticator 和 AuthenticatorFactory 接口。
- 复制现有的身份验证流程
- 绑定流量
I assume you know how to write and deploy a keycloak extension.
1。实现 Authenticator 和 AuthenticatorFactory 接口。
具体的接口是那些:
org.keycloak.authentication.AuthenticatorFactory
org.keycloak.authentication.Authenticator
示例实现:
org.keycloak.authentication.authenticators.browser.UsernamePasswordFormFactory
org.keycloak.authentication.authenticators.browser.UsernamePasswordForm
如果你想外部化你的配置(所以你可以为外部 api 添加 username/password 等),覆盖 AuthenticatorFactory
[=20= 中的 getConfigProperties()
方法]
2。复制现有的身份验证流程。
- 使用管理员凭据登录 keycloak。
- 创建一个新领域(或者如果有的话使用)
- 转到左侧的身份验证选项卡。
- 复制浏览器登录流程
- 添加您的 flows/executions(您对 Authenticator/Factory 的实施将列在执行项下)
您可以将它们向上或向下移动。使它们成为必需的或替代的等。
- 如果您覆盖配置列表,它将显示在您的执行旁边
3。绑定流量。
在身份验证页面的第二个选项卡中绑定您的流程。
我想在 keycloak 中添加一个新的身份验证方法。准确地说 - 我希望 keycloak 向外部 API 询问一些特定的值。我读过 keycloak 中的流程,但它们的文档似乎很少,我觉得它不是很直观。
在登录期间,我希望 keycloak 向外部发送请求 API 并且当且仅当返回特定值时允许用户登录。例如,我可以覆盖一些登录方法并添加几行代码来执行我想要的操作。
class哪个方法负责登录?
要实现这一点,您需要做很多事情。我将检查它们:
- 实现 Authenticator 和 AuthenticatorFactory 接口。
- 复制现有的身份验证流程
- 绑定流量
I assume you know how to write and deploy a keycloak extension.
1。实现 Authenticator 和 AuthenticatorFactory 接口。
具体的接口是那些:
org.keycloak.authentication.AuthenticatorFactory
org.keycloak.authentication.Authenticator
示例实现:
org.keycloak.authentication.authenticators.browser.UsernamePasswordFormFactory
org.keycloak.authentication.authenticators.browser.UsernamePasswordForm
如果你想外部化你的配置(所以你可以为外部 api 添加 username/password 等),覆盖 AuthenticatorFactory
[=20= 中的 getConfigProperties()
方法]
2。复制现有的身份验证流程。
- 使用管理员凭据登录 keycloak。
- 创建一个新领域(或者如果有的话使用)
- 转到左侧的身份验证选项卡。
- 复制浏览器登录流程
- 添加您的 flows/executions(您对 Authenticator/Factory 的实施将列在执行项下)
您可以将它们向上或向下移动。使它们成为必需的或替代的等。
- 如果您覆盖配置列表,它将显示在您的执行旁边
3。绑定流量。
在身份验证页面的第二个选项卡中绑定您的流程。