监视对Keycloak服务器的请求的方法

时间:2019-05-21 13:21:52

标签: oauth-2.0 keycloak openid-connect

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

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

我希望看到从浏览器到Keycloak的请求流以及所有的auth请求,等等。有没有我可以用于此目的的工具?

2 个答案:

答案 0 :(得分:0)

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

  

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

Event config 1

Event config 2

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

答案 1 :(得分:0)

获取事件的另一种方法是

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();

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