我希望能够读取用户上次登录事件(Keycloak)。所以我通读了 keycloak 文档,但找不到任何可以完成此操作的管理 api。到目前为止,我所做的是在 standalone-ha-xml 文件上添加一个 SPI 部分,并在 keycloak 界面上启用 Login 事件。我知道这些日志以 JSON 格式存储在名为 audit.log 的文件中。所以我不确定尝试阅读这个文件并找出用户最后一次登录是什么时候是个好主意。有什么想法吗?
<audit-logging>
<file-audit-log name="local-audit" path="audit.log" relative-to="jboss.server.log.dir" format="JSON"/>
</audit-logging>
<spi name="eventsListener">
<default-provider>jboss-logging</default-provider>
<provider name="jboss-logging" enabled="true">
<properties>
<property name="success-level" value="info"/>
<property name="error-level" value="warn"/>
</properties>
</provider>
</spi>
Run Code Online (Sandbox Code Playgroud)
我认为有更好的方法来做到这一点。首先,您需要打开Events菜单,然后选择Config选项卡。检查组中的Save Events选项Login Events Settings。您也可以指定类型 ( LOGIN) 和到期时间(将存储多长时间)。然后您可以使用管理 APIGET /{realm}/events 文档阅读它们(需要授权)
https://{host}:{port}/auth/admin/realms/{realm}/events?type=LOGIN
或者您可以在 Keycloak 数据库中查询它们,但我认为第一个选项更好:
SELECT id, client_id, details_json, error, ip_address, realm_id, session_id, event_time, type, user_id
FROM event_entity WHERE type = 'LOGIN';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2939 次 |
| 最近记录: |