获得 Cloudflare 的配置功能访问权限后,您可以更轻松地创建和管理 Cloudflare 账户。以下步骤将指导您开始进行 API 调用以配置账户、用户和服务。
在使用 Tenant API 之前,您需要创建一个账户、验证您的电子邮件地址并添加您的账单信息。
在您与 Cloudflare 签署合作伙伴协议后,Cloudflare 将在您的账户中添加特定的权利 (entitlements),允许您配置和管理自定义账户。如果您已签署合作伙伴协议,但您的账户尚未启用,MSP 合作伙伴应联系 [email protected],机构合作伙伴 (Agency Partners) 应联系 [email protected]。
您还需要获取您的 API 密钥来验证对 Tenant API 的请求。
有关使用 Cloudflare API 的更多详细信息,请参阅我们的 API 概述。
使用 Cloudflare 的每个客户或团队都应该有自己的账户。这可以确保适当的资源安全性和访问权限。每个账户都作为一个区域 (zones) 和其他资源的容器。根据您的需求,您甚至可以为单个客户或团队配置多个账户。
当您使用 Tenant API 创建账户时,您的 Cloudflare 用户从创建、后续管理直至最终删除都拥有该账户。
若要使用仪表板在您的租户下创建账户:
- 登录到 Cloudflare 仪表板 ↗。
- 前往 Tenants(租户) > Managed Accounts(托管账户)。
- 选择 Create Account(创建账户)。
- 输入 Account Name(账户名称)、Account Description(账户描述) 和 Tenant Unit(租户单元)。
- 选择合适的账户订阅。
- 选择 Add Account(添加账户)。
要使用 API 创建账户,请向 /accounts 端点发送 POST 请求,并包含以下值:
-
name字符串- 在 Cloudflare 仪表板中显示的账户名称。
-
type枚举- 有效值包括
standard(默认)和enterprise。对于自服务客户,请使用standard。对于 enterprise 客户,请使用enterprise。
- 有效值包括
-
unit对象-
与租户单元 (tenant unit) 相关的信息。
-
id字符串- (可选)创建此账户所在的单元的 ID。如果用户管理多个租户,则需要指定此项。单元 ID 即是您的租户详情中的
unit_tag。
- (可选)创建此账户所在的单元的 ID。如果用户管理多个租户,则需要指定此项。单元 ID 即是您的租户详情中的
-
所有 KYC 参数均为文本字段,有 120 个字符的限制,除非租户强制执行,否则均为可选。
-
business_name字符串- (可选)与此账户关联的业务名称。
-
business_address字符串- (可选)与此账户关联的业务地址。
-
business_email字符串- (可选)与此账户关联的业务电子邮件。
-
business_phone字符串- (可选)与此账户关联的业务电话号码。
-
external_metadata字符串- (可选)此账户的外部元数据。
curl "https://api.cloudflare.com/client/v4/accounts" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"name": "<ACCOUNT_NAME>",
"type": "standard"
}'请求成功将返回 HTTP 状态 200 以及以下响应体:
{
"result": {
"id": "2bab6ace8c72ed3f09b9eca6db1396bb",
"name": "<ACCOUNT_NAME>",
"type": "standard",
"settings": {
"enforce_twofactor": false
}
},
"success": true,
"errors": [],
"messages": []
}包含单元 ID (unit ID) 的请求:
curl "https://api.cloudflare.com/client/v4/accounts" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"name": "<ACCOUNT_NAME>",
"type": "standard",
"unit": {
"id": "1a2b3c4d5e6f7g8h"
}
}'包含单元 ID 和 KYC 的请求:
curl "https://api.cloudflare.com/client/v4/accounts" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"name": "<ACCOUNT_NAME>",
"type": "standard",
"business_name": "Cloudflare",
"business_email": "[email protected]",
"business_address": "San Francisco",
"business_phone": "1234567890",
"external_metadata": "{'\''testKey'\'': '\''testValue'\''}",
"unit": {
"id": "1a2b3c4d5e6f7g8h"
}
}'既然您已经创建了账户,您需要要么让您的客户直接访问 Cloudflare,要么为他们构建一个交互界面。
第一种方法允许客户控制 Cloudflare 的所有方面,而后者允许您将客户的 Cloudflare 体验集成到您控制的且他们可能已经熟悉的控制面板中。
当您向用户授予账户的访问权限时,Cloudflare 将向该用户发送邀请,以便他们能够访问该账户。如果他们还没有 Cloudflare 用户账户,Cloudflare 将引导他们完成创建流程。创建完成后,他们将被授予对该账户及已创建的任何区域 (zones) 的访问权限。
如果您想让客户访问他们各自的账户,这与您邀请团队成员协助管理账户的步骤是相同的。
您还可以使用 API 来授予对 Cloudflare 仪表板的访问权限。
curl 'https://api.cloudflare.com/client/v4/accounts/<CUSTOMER_ACCOUNT_ID>/members' \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"email": "<CUSTOMER_EMAIL>",
"roles": ["<USER_ROLE>"]
}'在大多数情况下,您会希望创建角色为 Administrator 的新用户,其 ID 始终为 05784afa30c1afe1440e79d9351c7430。
如果您的客户使用的是 Enterprise 计划,他们可以使用更广泛的用户角色。要获取可用角色的完整列表,请向 API 发送 GET 请求。
如果您想对客户使用 Cloudflare 的方式进行更强的控制,或者您希望您的客户使用他们已经熟悉的您现有的控制面板,请使用 Cloudflare API 来构建这种体验。
这意味着您将代表您的客户向 Cloudflare 发起 API 调用。为避免受到我们 API 的速率限制 (rate limited),Cloudflare 建议您为每位客户创建独立的账户和用户。客户 A 所做的更改应通过用户 A 进行,客户 B 所做的更改应通过用户 B 进行。
要通过界面授予访问权限,您需要创建一个服务用户,因为不会有人用它登录仪表板。如果您计划使用此方法,Cloudflare 将允许您查看 API 密钥,以便以此用户身份进行 API 调用。
curl "https://api.cloudflare.com/client/v4/users" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"email": "<[email protected]>"
}'{
"result": {
"id": "60758bd48392a06215ae817bc35084b6",
"email": "<[email protected]>",
"first_name": null,
"last_name": null,
"username": "17bd2796b374cec14976ac3bced85c05",
"telephone": null,
"country": null,
"created_on": "2019-02-21T23:20:28.645256Z",
"modified_on": "2019-02-21T23:20:28.645256Z",
"two_factor_authentication": {
"enabled": false,
"locked": false
},
"api_key": "xxx"
},
"success": true,
"errors": [],
"messages": []
}现在您有了客户账户和客户用户(或服务用户),您需要创建一个区域 (zone)。
为此,向 /zones 端点发送一个 POST 请求(包含您在步骤 1中收到的客户账户 ID)。
curl "https://api.cloudflare.com/client/v4/zones" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"name": "example.com",
"account": {
"id": "<CUSTOMER_ACCOUNT_ID>"
}
}'现在您已为客户配置了区域,您可以根据您的经销商协议添加相应的区域计划。
要创建区域订阅(通常用于将区域的计划从 PARTNERS_FREE 升级到付费的区域计划),请向 /zones/{zone_id}/subscription 端点发送 POST 请求,并包含以下值:
-
rate_plan对象- 包含对应于客户在控制面板中订购的区域计划。有关可用值的列表,请参阅区域计划。
-
component_values数组- 视您的经销商协议而定的额外服务,例如额外的
page_rules。
- 视您的经销商协议而定的额外服务,例如额外的
-
frequency字符串- 订阅自动续订的频率(默认为
"monthly")。
- 订阅自动续订的频率(默认为
curl 'https://api.cloudflare.com/client/v4/zones/{zone_id}/subscription' \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"rate_plan": {
"id": "<RATE_PLAN>"
},
"frequency": "annual"
}'curl 'https://api.cloudflare.com/client/v4/zones/{zone_id}/subscription' \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"rate_plan": {
"id": "PARTNERS_BIZ"
},
"component_values": [
{
"name": "page_rules",
"value": 50
}
]
}'根据您的协议,您可能被允许转售其他附加服务。这些服务以账户级订阅的形式进行配置。
要创建账户订阅,请向 /accounts/{account_id}/subscriptions 端点发送 POST 请求,并包含以下值:
-
rate_plan对象- 包含对应于特定附加服务(add-on service)的账户订阅。有关可用值的列表,请参阅可用订阅。
-
component_values数组- 视您的经销商协议而定的额外服务,例如用于负载均衡 (load balancing) 的额外端点或 Cloudflare Zero Trust 的额外席位 (seats)。如果未包含,订阅将包含与每次购买相关联的默认值。
-
frequency字符串- 订阅自动续订的频率(默认为
"monthly")。
- 订阅自动续订的频率(默认为
curl 'https://api.cloudflare.com/client/v4/accounts/{account_id}/subscriptions' \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"rate_plan": {
"id": "<RATE_PLAN_NAME>"
}
}'添加必要的订阅后,您或您的客户可以继续配置各种服务并精细调整账户和区域设置。
任何有权访问该账户(且拥有正确用户权限)的人都可以进行配置。此过程与配置任何其他 Cloudflare 账户没有区别。如需其他指导,请参阅我们的产品文档。