KeyCloak 中的自定义提供程序,可以根据用户名和密码进行身份验证

Posted

技术标签:

【中文标题】KeyCloak 中的自定义提供程序,可以根据用户名和密码进行身份验证【英文标题】:Custom provider in KeyCloak which can do the authentication based on username and password 【发布时间】:2019-06-17 01:42:29 【问题描述】:

我有一个 WebApp,它使用 Grant-Type: password 发送用户名和密码,以使用在 keycloak 中配置的内置用户名和密码来获取持有者令牌。

我的要求是:

keycloak 收到 WebApp 的令牌请求后,应该与外部微服务通信并获取微服务返回的值,然后再将令牌发送给 WebApp。

基于微服务价值,

如果值为 true,keycloak 应该向 WebApp 发送不记名令牌

如果值为 false,keycloak 应该将身份验证失败的结果发送给 WebApp。

我想知道是否有任何可用的设置或可以在 keycloak 中添加外部 jar 以与微服务通信并获得结果?

我阅读了 keycloak 中提供的文档并在线进行了一些研究,但到目前为止我无法找到与此相关的任何内容。

https://www.keycloak.org/docs/3.0/server_development/topics/providers.html

【问题讨论】:

【参考方案1】:

您是否查看过身份验证提供程序 SPI 演练? https://www.keycloak.org/docs/latest/server_development/index.html#_auth_spi_walkthrough

它展示了如何实现您自己的身份验证提供程序,将调用拟合到您的微服务应该非常简单。

【讨论】:

以上是关于KeyCloak 中的自定义提供程序,可以根据用户名和密码进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

使用 Keycloak 中的自定义 Admin REST API 获取用户的 ID 令牌

如何从 keycloak 中的自定义客户端获取角色?

使用用户提供的自定义名称脚本文件中的变量

用户临时锁定的 Keycloak 自定义消息

Keycloak 提供者和用户存储

Keycloak SAML 集成