使用 Keycloak 配置动态客户端注册(DCR)
动态客户端注册(Dynamic Client Registration, DCR)是一种 OAuth 2.0 机制,允许客户端应用程序以 编程方式向授权服务器进行注册,而无需在身份提供商(IdP)中进行手动配置。应用程序无需预先创建凭证,而是在运行时根据定义的注册策略接收 Client ID 和 Client Secret,从而实现可扩展的自动化接入。
在 API7 门户中,动态客户端注册(DCR)可以自动执行 OAuth 客户端注册流程:
- 管理员向 API7 提供来自 Keycloak 的初始 Access Token,该 Token 允许 API7 调用 Keycloak 的注册 API。
- 开发者直接在开发者门户中添加 OAuth 客户端,无需在 Keycloak 中手动创建客户端。
- API7 使用初始 Access Token 在 Keycloak 中动态创建 OAuth 客户端。
本指南将介绍如何使用 DCR 将 API7 企业版开发者门户与 Keycloak(作为身份提供商 IdP)集成。你将在提供方门户中发布 API,为 DCR 配置 Keycloak,然后使用开发者门户创建应用程序、订阅 API 并获取 OAuth 2.0 Access Token 以安全地消费 API。
前置条件
- 已安装并激活带有门户许可证的 API7 企业版 v3.9.0 或更高版本。如果你使用的是试用许可证,则门户默认启用。请参阅安装 API7 企业版。
- 已部署并配置开发者门户。
- 已部署并可访问的 Keycloak。本指南使用
quay.io/keycloak/keycloak:21.1.1镜像进行测试。不同版本的 Keycloak 行为可能有所不同,因此如果你使用的是其他版本,请根据需要调整步骤。