第 5 章 使用客户端注册服务
要让应用程序或服务使用 Red Hat Single Sign-On,需要在 Red Hat Single Sign-On 中注册客户端。管理员可以通过管理控制台(或管理员 REST 端点)进行此操作,但客户端也可通过红帽单点登录客户端注册服务来注册。
客户端注册服务为红帽单点登录客户端代表、OpenID Connect Client Meta Data 和 SAML Entity Descriptors 提供内置支持。客户端注册服务端点为 /auth/realms/<realm>/clients-registrations/<provider>
。
内置支持的供应商 有
:
- Default - Red Hat Single Sign-On Client Representation(JSON)
- install - Red Hat Single Sign-On Adapter Configuration(JSON)
- OpenID-connect - OpenID Connect 客户端元数据描述(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 控制台可以创建初始访问令牌。要创建新的初始访问令牌,首先在 admin 控制台中选择域,然后单击左侧菜单中的 Realm Settings
,然后在页面中显示的标签页里单击 Client Registration
。最后,单击 Initial Access Tokens
子选项卡。
现在,您可以看到任何现有的初始访问令牌。如果您有访问权限,可以删除不再需要的令牌。您只能在创建令牌时检索令牌值。要创建新令牌,请点 Create
。现在,您可以选择性地添加令牌有效的时长,以及可以使用令牌创建多少个客户端。在点 Save
the token 值后会显示。
现在,复制/粘贴此令牌非常重要,因为您将无法在以后检索它。如果您忘记复制/粘贴,请删除令牌并创建令牌。
在调用客户端注册服务时,令牌值用作标准 bearer 令牌,方法是将其添加到请求的 Authorization 标头中。例如:
Authorization: bearer eyJhbGciOiJSUz...
5.1.3. 注册访问令牌
当您通过客户端注册服务创建客户端时,响应将包含注册访问令牌。通过注册访问令牌,您可以在以后检索客户端配置,但也可更新或删除客户端。注册访问令牌会包含在请求中,其方式与 bearer 令牌或初始访问令牌相同。注册访问令牌只有效一次,使用响应时将包括新令牌。
如果在客户端注册服务之外创建客户端,它不会关联注册访问令牌。您可以通过 admin 控制台创建一个。如果您丢失了特定客户端的令牌,这也很有用。要在 admin 控制台中创建新令牌,并点击 Credentials
。然后点击 生成注册访问令牌
。