> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kasoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API 认证授权

> API 端口的用户管理和身份验证选项。

## 用户与身份验证

知行之桥使用 OAuth 2.0 和基于 authtoken 的身份验证来控制每个用户对 API 的访问。

Authtoken 是唯一的、随机生成的标识符，用户可以使用它向 API 进行身份验证。Authtoken 还代表用户当前的权限。Authtoken 允许使用任何主要的身份验证方案进行连接。例如，要使用 HTTP Basic 身份验证，请在 User 消息头中设置用户名，并在 Password 消息头中设置用户相应的 authtoken。有关对 API 进行身份验证的更多信息，请参阅[身份验证](#验证)。

OAuth 2.0 为需要管理令牌生命周期或与外部应用程序集成的客户端提供了更结构化的身份验证流程。知行之桥支持客户端凭证授权类型，该类型适用于无需用户交互的服务器到服务器集成。OAuth 2.0 客户端通过向访问 URL 提交其客户端凭证来获取短期访问令牌，而非直接使用静态 authtoken 进行身份验证。

### 添加用户

要添加用户，请导航到端口的**用户**选项卡，然后单击**添加**。在**设置**对话框中，输入以下信息：

| 字段     | 描述                                                                                            |
| ------ | --------------------------------------------------------------------------------------------- |
| **名称** | 输入用于 HTTP 身份验证的用户名。                                                                           |
| **启用** | 指示用户是否处于活跃或非活跃状态。                                                                             |
| **操作** | 选择允许用户访问的 HTTP 方法：GET、POST、PUT/PATCH/MERGE 或 DELETE。它们分别对应于 SELECT、INSERT、UPDATE 和 DELETE 语句。 |

点击**身份验证**选项卡以添加 authtoken 和 OAuth 2.0 的详细信息。

| 字段                | 描述                                                  |
| ----------------- | --------------------------------------------------- |
| **Authtoken**     | 系统生成的 authtoken。请务必在保存用户之前将其复制到安全位置，因为之后不会再显示。      |
| **每小时最大请求数**      | 取消选中**无限请求**以设置该用户每小时的最大请求数限制。                      |
| **每小时最大并发数**      | 取消选中**无限请求**以设置可以同时发送的最大请求数限制。                      |
| **授权类型**          | OAuth 2.0 授权类型，决定客户端应用程序如何获取访问令牌。**客户端凭证**是当前唯一的选项。 |
| **Client Id**     | 系统生成的客户端 ID 令牌。                                     |
| **Client Secret** | 系统生成的客户端密钥。请务必在保存用户之前将其复制到安全位置，因为之后不会再显示。           |
| **Access URL**    | 客户端应用程序使用配置的凭证请求访问令牌的端点 URL。                        |

<Note>
  用户特定的设置会覆盖服务器范围的 API 限制设置。用户设置之一的空值会使用服务器默认值。
</Note>

### 配置用户数据库

知行之桥默认将用户信息存储在 SQLite 数据库中。也可以将用户信息保存到所选的数据库中。如果使用嵌入式服务器，请在 Web.config 文件的 `connectionStrings` 元素中指定缓存数据库的连接字符串。否则，请参阅托管应用程序的服务器文档。

## 验证

用户通过向请求提供 authtoken 来访问 API 资源。可以在[用户](./api-config#users-tab)配置选项卡上管理用户、authtoken 和 OAuth 2.0 凭据。

用户调用 API 之前，还需要设置可信连接 IP 地址。这些设置可在[服务器](./api-config#users-tab)配置选项卡上找到。默认情况下，所有 IP 地址都受到限制。

### 在基本身份验证中使用 Authtoken

使用基本身份验证时，输入用户的 authtoken 作为密码。

### 在 HTTP 消息头中使用 Authtoken

添加 HTTP 消息头 `x-cdata-authtoken`，将所需的 authtoken 作为 HTTP 请求的一部分。

### 使用 Authtoken 作为查询字符串参数

要允许端口在查询字符串参数中传递 authtoken，请打开 API 端口设置窗格的**服务器**选项卡，然后在**高级设置**部分中选择**允许在 URL 中使用 Authtoken**。

启用此功能后，可以将 authtoken 指定为 `@authtoken` 参数的值，该参数可以作为 HTTP 表单发布数据或查询参数的一部分提供。
