我们如何检测用户是否曾访问过特定客户端
How do we detect if a user has ever visited a particular client
在Keycloak的每个realm中,往往有client
表示用户即将访问的应用,在url中表示为client_id
,如
${keycloak_root_url}/auth/realms/${realm_name}/protocol/openid-connect/auth?response_type=code&client_id=${client_id}&redirect_uri=${redirect_uri}
我们如何检测用户是否至少成功登录过一次特定客户端?
开箱即用,根据用例类型和使用的客户端流程,您可以:
- 启用管理事件,特别是
Event Type : LOGIN
,然后查询这些事件以获取用户的 clientID 和 id;
- 如果有问题的客户正在使用
Browser Flow
或 Direct Grant Flow
,那么您可以(在 Authentication
选项卡下)相应地复制并创建您自己的流程之一版本。然后添加一个子流程,强制用户仅在首次登录期间执行操作(例如, 接受 'Terms and Conditions') .之后,在 Authentication Flow Overrides
(客户端)下相应地使用您的自定义流程覆盖流程。最后,向用户查询相关客户端要求的首次登录操作。
免责声明:我并不是说这些是该用例的最佳解决方案或者它们是防弹。
在Keycloak的每个realm中,往往有client
表示用户即将访问的应用,在url中表示为client_id
,如
${keycloak_root_url}/auth/realms/${realm_name}/protocol/openid-connect/auth?response_type=code&client_id=${client_id}&redirect_uri=${redirect_uri}
我们如何检测用户是否至少成功登录过一次特定客户端?
开箱即用,根据用例类型和使用的客户端流程,您可以:
- 启用管理事件,特别是
Event Type : LOGIN
,然后查询这些事件以获取用户的 clientID 和 id; - 如果有问题的客户正在使用
Browser Flow
或Direct Grant Flow
,那么您可以(在Authentication
选项卡下)相应地复制并创建您自己的流程之一版本。然后添加一个子流程,强制用户仅在首次登录期间执行操作(例如, 接受 'Terms and Conditions') .之后,在Authentication Flow Overrides
(客户端)下相应地使用您的自定义流程覆盖流程。最后,向用户查询相关客户端要求的首次登录操作。
免责声明:我并不是说这些是该用例的最佳解决方案或者它们是防弹。