是否可以在 Keycloak 中使用自定义身份验证逻辑?

Is is posible to use a custom authentication logic in Keycloak?

我已经使用 LDAP 用户联盟配置了 Keycloak。当用户想要登录应用程序时,他会被重定向到 Keycloak 登录页面,进入 uid/pwd 并使用 LDAP 绑定进行身份验证。

这不足以满足我的要求,因为我想实现一些自定义身份验证逻辑,例如:

public boolean authenticate(String uid, String pwd) {

    //1.- validate against LDAP
    //2.- do some other validations
    return validationResult;
} 

如何将我自己的身份验证逻辑包含到 Keycloak 中?

要添加新的身份验证机制,您需要实现身份验证 SPI。 Server Development guide > Authentication SPI section.

中对此进行了描述

您可以实现一个 Authentication SPI 并将其部署到 Keycloak 服务器,或者如果您在不使用默认选项的情况下实现用户联合,则可以在自定义用户提供程序包中实现身份验证逻辑(此身份验证流程将在这种情况下仅可用于此特定联合用户存储)。