第 5 章 使用客户端注册服务
为了让应用程序或服务使用红帽构建的 Keycloak,它必须在红帽构建的 Keycloak 中注册客户端。管理员可以通过管理控制台(或管理 REST 端点)执行此操作,但客户端还可以通过红帽构建的 Keycloak 客户端注册服务来注册。
客户端注册服务为红帽构建的 Keycloak Client Representations、OpenID Connect Client Meta Data 和 SAML Entity Descriptors 提供内置的支持。Client Registration Service 端点为 /realms/<realm>/clients-registrations/<provider>
。
内置支持的 供应商
有:
- 默认 - 红帽构建的 Keycloak Client Representation (JSON)
- install - 红帽构建的 Keycloak Adapter 配置(JSON)
- OpenID-connect - OpenID Connect Client Metadata Description (JSON)
- saml2-entity-descriptor - SAML Entity Descriptor (XML)
以下小节将介绍如何使用不同的提供程序。
5.1. 身份验证 复制链接链接已复制到粘贴板!
要调用客户端注册服务,您通常需要令牌。令牌可以是 bearer 令牌、初始访问令牌或注册访问令牌。另外,还可在没有令牌的情况下注册新客户端,但需要配置客户端注册策略(请参阅以下)。
5.1.1. bearer 令牌 复制链接链接已复制到粘贴板!
bearer 令牌可以代表用户或服务帐户发布。调用端点需要以下权限( 更多详情请参阅 服务器管理指南 ):
- create-client 或 manage-client - 要创建客户端
- view-client 或 manage-client - 要查看客户端
- manage-client - 要更新或删除客户端
如果您使用 bearer 令牌创建客户端,建议只使用 create-client
角色的服务帐户中的令牌(更多详情请参阅 服务器管理指南 )。
5.1.2. 初始访问令牌 复制链接链接已复制到粘贴板!
推荐使用初始访问令牌注册新客户端的方法。初始访问令牌只能用于创建客户端,并且具有可配置的过期时间,以及创建客户端数量可配置的限制。
初始访问令牌可以通过管理控制台创建。若要创建新的初始访问令牌,首先在 admin 控制台中选择域,然后单击左侧菜单中的 Client
,然后在页面中显示的选项卡中显示 Initial access token
。
现在,您可以看到任何现有的初始访问令牌。如果您有访问权限,您可以删除不再需要的令牌。您只能在创建令牌时检索令牌的值。要创建新令牌,请点 Create
。现在,您可以选择性地添加令牌的有效时长,还可以使用令牌创建客户端数量。点击 Save
the token 值后会显示。
现在,在以后无法检索它时,您现在复制/粘贴此令牌非常重要。如果您忘记复制/粘贴,请删除令牌并创建令牌。
在调用 Client Registration Services 时,令牌值用作标准的 bearer 令牌,方法是将其添加到请求中的 Authorization 标头中。例如:
Authorization: bearer eyJhbGciOiJSUz...
Authorization: bearer eyJhbGciOiJSUz...
5.1.3. 注册访问令牌 复制链接链接已复制到粘贴板!
当您通过客户端注册服务创建客户端时,响应将包括注册访问令牌。注册访问令牌提供了以后检索客户端配置的访问权限,但也更新或删除客户端。注册访问令牌包含在请求中,方式与 bearer 令牌或初始访问令牌相同。
默认情况下启用注册访问令牌轮转。这意味着注册访问令牌仅有效一次。使用令牌时,响应将包括新令牌。请注意,可以使用 客户端策略 禁用注册访问令牌 轮转。
如果在客户端注册服务之外创建了客户端,则它没有与之关联的注册访问令牌。您可以通过 admin 控制台创建一个。如果您丢失了特定客户端的令牌,这也很有用。若要创建新令牌,可在管理控制台中找到客户端,然后单击 Credentials
。然后单击 Generate registration access token
。