设备注册权限决定了哪些用户可以将新设备连接到您组织的 Cloudflare Zero Trust 实例。一旦用户注册了其设备,Cloudflare One 客户端将存储其身份令牌,并使用它对您私有网络中的服务进行身份验证。
-
在 Cloudflare 仪表板 ↗中,转到 Zero Trust > Team & Resources(团队和资源) > Devices(设备) > Device profiles(设备配置文件) > Management。
-
在 Device enrollment(设备注册) > Device enrollment permissions(设备注册权限) 中,选择 Manage(管理)。
-
在 Policies(策略) 选项卡中,配置一个或多个 Access 策略来定义谁可以加入其设备。例如,您可以允许具有公司电子邮件地址的所有用户:
规则类型 选择器 值 Include(包含) Emails ending in(电子邮件结尾为) @company.com
-
向您的
cloudflare_api_token↗ 添加以下权限:Access: Apps and Policies Write
-
使用
cloudflare_zero_trust_access_policy↗ 资源创建一个可重用的 Access 策略:resource "cloudflare_zero_trust_access_policy" "allow_company_emails" { account_id = var.cloudflare_account_id name = "Allow company emails" decision = "allow" include = [ { email_domain = { domain = "@example.com" } } ] } -
使用
cloudflare_zero_trust_access_application↗ 资源创建类型为warp的应用程序。resource "cloudflare_zero_trust_access_application" "device_enrollment" { account_id = var.cloudflare_account_id type = "warp" name = "Warp device enrollment" allowed_idps = [cloudflare_zero_trust_access_identity_provider.microsoft_entra_id.id] auto_redirect_to_identity = true app_launcher_visible = false policies = [ { id = cloudflare_zero_trust_access_policy.allow_company_emails.id precedence = 1 } ] }
设备状态评估是在设备已注册到您的 Zero Trust 组织之后进行的。如果您只希望特定设备能够注册,我们建议向您的设备注册策略中添加一条 双向 TLS 身份验证(mTLS) 规则。该规则将检查注册设备上是否存在特定的客户端证书。
证书要求
-
CA 证书可以来自公开受信任的 CA 或自签名。
-
在证书
Basic Constraints中,CA属性必须设置为TRUE。 -
证书必须使用以下列出的签名算法之一:
允许的签名算法
x509.SHA1WithRSAx509.SHA256WithRSAx509.SHA384WithRSAx509.SHA512WithRSAx509.ECDSAWithSHA1x509.ECDSAWithSHA256x509.ECDSAWithSHA384x509.ECDSAWithSHA512
要检查 mTLS 证书:
-
在 Cloudflare 仪表板 ↗中,前往 Zero Trust > Access controls(访问控制) > Service credentials(服务凭据) > Mutual TLS(双向 TLS)。
-
选择 Add mTLS Certificate(添加 mTLS 证书)。
-
为根 CA 输入任意名称。
-
在 Certificate content 中,粘贴您的根 CA 内容。
如果客户端证书由根 CA 直接签名,您只需上传根证书。如果客户端证书由中间证书签名,则必须上传完整的 CA 链(中间证书和根证书)。例如:
-----BEGIN CERTIFICATE----- <intermediate.pem> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <rootCA.pem> -----END CERTIFICATE-----
-
向您的
cloudflare_api_token↗ 添加以下权限:Access: Mutual TLS Certificates WriteAccess: Apps and Policies Write
-
使用
cloudflare_zero_trust_access_mtls_certificate↗ 资源将 mTLS 证书添加到您的账户:resource "cloudflare_zero_trust_access_mtls_certificate" "example_mtls_cert" { account_id = var.cloudflare_account_id name = "WARP enrollment mTLS cert" certificate = <<EOT -----BEGIN CERTIFICATE----- xxxx xxxx -----END CERTIFICATE----- EOT associated_hostnames = ["your-team-name.cloudflareaccess.com"] } -
创建以下 Access 策略:
resource "cloudflare_zero_trust_access_policy" "warp_enrollment_mtls" { account_id = var.cloudflare_account_id name = "Allow employees with mTLS cert" decision = "allow" include = [ { email_domain = { domain = "@example.com" } } ] require = [ { common_name = { common_name = "Common name 1" } }, { common_name = { common_name = "Common name 2" } } ] } -
将策略添加到适用于 Cloudflare One 客户端的
cloudflared_zero_trust_access_application。 -
在您的设备上,将客户端证书添加到系统钥匙串。
大多数企业使用单一身份提供商作为其用户目录的单一事实来源。您应该使用此单一事实来源将您的公司用户引入 Zero Trust,例如要求使用您的主要身份提供商登录公司电子邮件地址。稍后,您可以根据需要为可能需要访问您的网络的任何承包商、供应商或被收购公司添加其他登录方法或身份提供商。