【发布时间】:2021-04-24 15:14:42
【问题描述】:
如何最好地配置Keycloak,以便用户需要有一个帐户,客户端才能登录该客户端?
我必须更换专有的 SSO-Impl。它像 Keycloak 一样处理用户、角色和客户。但是,它也知道帐户。 只有拥有客户帐户的用户才能登录该客户。
在 Keycloak 中,如果用户只是存在于领域中,他可以登录到该领域的客户端。不需要其他任何东西。所以不需要"account"。在旧应用程序中,他还需要一个帐户。 Keycloak 中的哪些功能最适合克服这种差异?
我有一个想法:
在每个客户端名称和“HasAccount”中创建一个客户端角色并将其分配给用户。然后,如果缺少该角色,则限制访问。 这在这里讨论:“Restrict client access in a single realm with keycloak” 它至少有两个缺点:
- 它在旧版应用程序中混合了身份验证和授权。我可以理解。但是创建角色已经是一种解决方法。这就是我在这里描述我最初遇到的问题的原因。
- 我有 3 种以上语言/技术的客户。在那里添加功能似乎比在 Keycloak 中更多。
最后一句话:
在您不再问“这不是单点登录”之前。它仅用于管理目的。管理员可以通过创建或不创建帐户来允许用户登录或不登录客户端。用户不必再次登录。如果他登录 App A 并拥有 App B 的帐户,则无需登录即可访问 App B。
【问题讨论】:
标签: oauth-2.0 single-sign-on keycloak openid-connect openid