【问题标题】:How to do IP restrictation for clients in keycloak admin console如何在 keycloak 管理控制台中对客户端进行 IP 限制
【发布时间】:2020-11-08 17:53:06
【问题描述】:

我在 keycloak 管理控制台中定义了一个客户端,以通过 client_credentials 流授权它在我的应用程序中调用服务器到服务器 api。一切都很好,我想为该客户端应用 IP 限制。

我可以在管理控制台的哪里定义这个限制?我在 keycloak 文档中没有找到这样的配置。

【问题讨论】:

    标签: authorization keycloak ip-restrictions clientcredential


    【解决方案1】:

    没有开箱即用的此类设置,但您可以尝试实现自定义客户端身份验证器。因此,例如允许的 IP 地址可以存储在客户端属性中,并且您的身份验证器实现将针对指定的 IP 地址挑战传入请求。请参阅 Keycloak 文档中的“服务器开发”部分。您也可以参考 keycloak github repo 以获取实现示例和指南。从

    开始

    https://github.com/keycloak/keycloak/blob/master/services/src/main/java/org/keycloak/authentication/authenticators/client/ClientIdAndSecretAuthenticator.java

    【讨论】:

    • 不错的建议,尽管我坚信 IP 过滤应该发生在(反向)代理、WAF 或安全网关中。
    • @solveMe 感谢您的解决方案。现在我有另一个问题,我应该在哪里以及如何为客户设置属性?我没有在管理控制台和它的文档中找到它。
    • @RasoolGhafari 在管理控制台中没有用于设置客户端属性的 UI,但是如果您转储客户端,您可以看到转储包含“属性”字段,因此您可以尝试使用管理 api 设置属性值(我知道,我知道这不是很方便)。老实说,我不知道这个字段是否供内部使用。如果是这样,您还可以考虑使用自定义 IP 设置实体扩展 keycloak DB 架构(请参阅文档中的操作方法)。
    • 由于@bsaverino 的建议,我检查了zuul,但是有这个问题,可以帮助我吗? stackoverflow.com/questions/62991711/…
    • Zuul 也可能是一个解决方案,但我也是 spring-netflix 环境中的新手
    猜你喜欢
    • 1970-01-01
    • 2023-02-03
    • 2021-12-25
    • 2019-04-05
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多