5.8. 客户端注册策略
当前计划用于删除客户端注册策略,取代 服务器管理指南 中描述的客户端策略。客户端策略更为灵活,并支持更多用例。
红帽构建的 Keycloak 目前支持通过客户端注册服务注册新客户端的方法。
-
经过身份验证的请求 - 注册新客户端的请求必须包含
Initial Access Token或Bearer Token,如上所述。 - 匿名请求 - 注册新客户端的请求根本不需要包含任何令牌
匿名客户端注册请求非常值得关注且强大的功能,但通常您不希望任何人在不限制的情况下注册新客户端。因此,我们拥有 客户端注册策略 SPI,它提供了一种方式来限制谁可以注册新客户端,并在哪些条件下注册。
在 Red Hat build of Keycloak 管理控制台中,您可以点 Client Registration 选项卡,然后点 Client Registration Policies 子选项卡。在这里,您将看到为匿名请求默认配置了哪些策略,以及为经过身份验证的请求配置了哪些策略。
匿名请求(无令牌的请求)只能创建(注册)新客户端。因此,当您通过匿名请求注册新客户端时,响应将包含 Registration Access Token,该令牌必须用于特定客户端的 Read、Update 或 Delete 请求。但是,从匿名注册使用这个注册访问令牌也会受到匿名注册策略的影响!这意味着,如果您有受信任的主机策略,对更新客户端的请求还需要来自 受信任的主机。例如,在更新客户端和存在 Consent 所需的 策略时,不允许禁用一致性。
目前,我们有以下策略实现:
-
可信主机策略 - 您可以配置可信主机和可信域的列表。请求客户端注册服务只能从这些主机或域发送。从某些不受信任的 IP 发送的请求将被拒绝。新注册的客户端的 URL 还必须使用这些可信主机或域的 URL。例如,不允许设置指向某些不受信任的主机的客户端的
重定向 URI。默认情况下,没有任何白名单的主机,因此匿名客户端注册被禁用。 -
许可所需的策略 - 新注册的客户端
将启用一致的交换机。因此,在身份验证成功后,用户始终会在需要批准权限(客户端范围)时看到同意屏幕。这意味着,除非用户批准,否则客户端无法访问任何个人信息或用户权限。 - 协议映射器策略 - 允许配置白名单协议映射器实现列表。如果新客户端包含一些非哈希协议映射程序,则无法注册或更新它。请注意,此策略也用于经过身份验证的请求,因此即使在经过身份验证的请求中,即使身份验证的请求也有一些限制,可以使用这些协议映射程序。
-
客户端范围策略 - 允许白名单
客户端范围,可用于新注册或更新的客户端。默认没有白名单范围;只有客户端范围定义为Realm 默认客户端范围。 -
完整范围策略 - 新注册的客户端将禁用
完全范围限制。这意味着它们没有任何有范围的域角色或其他客户端的客户端角色。 - Max Clients Policy - 如果域中的当前客户端数量相同或大于指定限制,则拒绝注册。对于匿名注册,默认为 200。
- Client Disabled Policy - 新注册的客户端将被禁用。这意味着管理员需要手动批准并启用所有新注册的客户端。即使用于匿名注册,也不会使用此策略。