【问题标题】:Method to monitor requests that come towards Keycloak server监控到达 Keycloak 服务器的请求的方法
【发布时间】:2019-10-07 21:45:10
【问题描述】:

我正在尝试了解 Keycloak 的功能,并尝试找到一种方法来监控本地环境 (localhost) 中的请求流(如在 Wireshark 中)。在 Windows 环境中,我可以为此目的使用什么工具?我有一个与 Keycloak 集成的 Angular 应用程序,它可以工作。当我请求 localhost:4200 时,浏览器会将我带到 Keycloak 登录屏幕。

为了查看日志,我将位于..\keycloak-4.8.3.Final\standalone\configuration 的 Keycloak 服务器中的日志级别从 INFO 更改为 ALL。它确实扩展了控制台中显示的日志条目,但是当我的 Angular 应用程序重定向到 Keycloak 以及我在 Keycloak 登录屏幕中输入用户凭据时,它没有显示任何日志。

我想查看从浏览器到 Keycloak 的请求流程以及所有身份验证请求等。有没有可以用于此目的的工具?

【问题讨论】:

标签: oauth-2.0 keycloak openid-connect


【解决方案1】:

以您喜欢的方式配置服务器的events part。它们存储在数据库中。

Keycloak 提供了一组丰富的审计功能。每一个 登录动作可以记录并存储在数据库中并进行审查 在管理控制台中。还可以记录所有管理操作并 审查。还有一个 Listener SPI,插件可以用它来监听 对于这些事件并执行一些操作。内置侦听器包括 简单的日志文件以及在发生事件时发送电子邮件的能力。

我仍然不知道这是否涵盖了您的应用程序重定向到 KC 登录屏幕的特定情况。如果没有,您可能需要将其记录在您的应用程序中,但如果您使用 Angular 适配器,它可能会有点棘手,因为它是在客户端执行的(您需要对您拥有的某个服务器执行 POST 以获得它记录,或直接切换到任何基于服务器端的 KC 适配器)。

【讨论】:

  • 您能告诉我如何查看存储这些事件的数据库吗?我在文档中找不到任何内容。
  • 感谢您提供详细信息。我可以看到它正在使用内存 H2 数据库,但我无法找到它是如何管理事件存储的。你能帮我找到它用来存储登录事件的表吗?
【解决方案2】:

另一种获取事件的方法是从

Keycloak keycloak = KeycloakBuilder.builder()
            .serverUrl("localhost")
            .realm("myRealm")
            .grantType(OAuth2Constants.PASSWORD)
            .clientId("myclient")
            .clientSecret("xxxx-xxxxx-xxxx-xxx")
            .username("foo")//the admin user
            .password("password")
            .build();

List<EventRepresentation> events = keycloak.realm("myRealm").getEvents();

然后您选择要定位的事件类型

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 2020-01-20
    • 1970-01-01
    相关资源
    最近更新 更多