# 配置 OAuth 动态客户端注册

OAuth 动态客户端注册 (DCR) 是一项租户级 OAuth 功能，允许兼容的 OAuth 客户端应用程序动态注册 OAuth 客户端。在此上下文中，兼容的 OAuth 客户端应用程序是指支持 OAuth 2.0 DCR 协议并符合您的租户策略要求的应用程序。

DCR 的主要用例是连接模型上下文协议 (MCP) 服务器客户端，但您也可以将其用于其他兼容的第三方应用程序。

有关连接到 MCP 客户端的更多方法，请参阅 [选择 OAuth 客户端创建方法](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/QlikMCP/Connecting-Qlik-MCP-server.htm#ConnectiAuth)。

信息注释

发布和同意是独立的控制项：

* 发布限制了同一区域内的其他租户是否可以使用 OAuth 客户端。

* 同意方式（必需或 受信任）控制在授权期间是否提示用户。

有关手动设置和同意行为（包括发布限制）的详细信息，请参阅 [创建 OAuth 客户端](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-create-oauth-client.htm#Creating2) 和 [创建和管理 OAuth 客户端](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-create-oauth-client.htm#Consent)。

## 前提条件和注意事项

先决条件：

* 您是 Qlik Cloud 中的租户管理员。

注意事项：

* 启用 DCR 时，兼容的 OAuth 客户端应用程序可以根据您的 DCR 策略在您的租户中请求 OAuth 客户端注册。在生产环境中启用 DCR 之前，请审查您允许的身份验证方法和审批流程。

* 通过 DCR 创建的客户端初始会被分配 `user_default`、`mcp:execute` 和 `offline_access` 作用域。若要了解有关这些作用域的更多信息， 请参阅 Qlik 开发者门户的 [作用域](https://qlik.dev/manage/access-control/scopes/)下的完整作用域列表。

* 未批准的 DCR 客户端会在一小时后自动删除。如果在该期限内没有租户管理员在第三方应用程序中批准该客户端，则该客户端将被删除，用户必须重新创建连接。

## 配置 DCR 设置

配置动态客户端注册设置，以控制 OAuth 客户端应用程序如何在您的租户中注册 OAuth 客户端。

### 在 Qlik Cloud 中配置 DCR

执行以下操作：

1. 在 Administration 活动中心，转到设置 &gt; 安全。

2. 启用 动态客户端注册。

   禁用 DCR 时，无法动态注册新客户端。现有的动态注册客户端将保持可用，直到您手动将其移除或撤销其批准。

3. 从允许的身份验证方法中，选择动态注册的客户端可以使用的身份验证方法：

   * 客户端密钥：允许机密客户端，例如具有安全后端的 Web 应用程序。

   * 客户端密钥 + 无：同时允许机密客户端和公共客户端。

   * 无：允许公共客户端，例如单页面应用程序或原生应用程序。

   尝试使用您的策略不允许的方法进行注册的应用程序将被拒绝。

   有关这些身份验证方法的详细信息，请参阅以下部分 [身份验证方法](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/oauth-dynamic-client-registration.htm#Authenti)。

### 在 OAuth 客户端应用程序中配置 DCR

在 Qlik Cloud 中配置 DCR 后，在您的 OAuth 客户端应用程序中配置 DCR 连接。连接详细信息因用例而异。

执行以下操作：

1. 在 OAuth 客户端应用程序中配置连接时，请使用适用于您的用例的连接 URL：

   | 用例 | 连接 URL 格式 |
   | --- | --- |
   | MCP 或 GenAI 客户端 | `https://<tenant-id>.<region>.qlikcloud.com/api/ai/mcp`<br><br>有关 MCP 配置的更多信息，请参阅 [连接到 Qlik MCP 服务器](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/QlikMCP/Connecting-Qlik-MCP-server.htm)。 |
   | 其他 OAuth 客户端应用程序 | `https://<tenant-id>.<region>.qlikcloud.com` |

2. 查看新注册 DCR 客户端的批准和同意行为：

   * 验证新的 DCR 客户端在使用前需要获得租户的明确批准。在第三方应用程序中，在收到提示时授予批准。

   * 首个已批准的连接使用必需同意。

   * 批准后，在 Qlik Cloud 中编辑客户端，如果符合您的安全策略，请将其同意方式更改为 受信任。

   租户批准在您的 Qlik Cloud 租户与 OAuth 客户端应用程序之间建立租户级信任。在租户管理员连接、通过身份验证并批准同意请求后，其他用户可以通过同一个 OAuth 应用程序连接到 Qlik Cloud，而无需其自身的同意批准。

   批准后，同意方式按客户端进行管理。有关更多信息，请参阅[创建和管理 OAuth 客户端](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-create-oauth-client.htm#Consent)。

### 身份验证方法

配置 DCR 设置时，您可以指定允许动态注册的客户端使用哪些身份验证方法。可以使用以下身份验证方法：

* 客户端密钥：允许使用客户端密钥进行身份验证的机密客户端。客户端在注册时会收到客户端机密。这包括 `client_secret_basic` 和 `client_secret_post` 两种身份验证方法。

* 无：允许不使用客户端密钥的公共客户端。这些客户端使用带有 PKCE (Proof Key for Code Exchange) 的授权码流程进行身份验证。

默认情况下，动态注册的客户端使用 `client_secret_basic` 身份验证方法，除非在注册时另有指定。

## 管理来自供应商的多个注册

许多 OAuth 客户端应用程序向 Qlik Cloud 动态注册单个 OAuth 客户端。应用程序的用户共享同一个 OAuth 客户端。

某些 OAuth 客户端应用程序会动态注册多个 OAuth 客户端，每个用户一个。已在以下情况下观察到此行为：

* Anthropic Claude

* 反重力

如果您看到来自同一厂商的许多 DCR 客户端，请检查该 OAuth 客户端应用程序如何注册客户端，以及是否有可用的共享连接器选项。若要批量删除不需要的 DCR 客户端，请参阅 [删除 OAuth 客户端](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-create-oauth-client.htm#Deleting)。

Claude 和 Claude Code 支持 CIMD，从而避免了多重注册问题。请参见 [连接到 Claude](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/QlikMCP/Connecting-Qlik-MCP-server.htm#Connecti2)。

## MCP 访问示例

DCR 的一个用例是为 Qlik MCP 服务器集成接入 OAuth 客户端。DCR 不仅限于 MCP，还可供其他兼容的 OAuth 客户端应用程序使用。对于基于 MCP 的连接，租户管理员通常会创建第一个连接，并在其他用户连接之前批准客户端。

有关 MCP 管理和连接指南，请参阅：

* [部署和管理 Qlik MCP 服务器](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/QlikMCP/Administering-Qlik-MCP.htm)

* [连接到 Qlik MCP 服务器](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/QlikMCP/Connecting-Qlik-MCP-server.htm)

有关创建 OAuth 客户端后的管理指南——包括处理多个供应商注册、批量删除以及识别 DCR 或 CIMD 客户端——请参阅 [管理 OAuth 客户端](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-create-oauth-client.htm#Managing2)。