跳转到内容
搜索文档

定义设备注册权限

最后更新 查看 MarkdownAgent 设置

设备注册权限决定了哪些用户可以将新设备连接到您组织的 Cloudflare Zero Trust 实例。一旦用户注册了其设备,Cloudflare One 客户端将存储其身份令牌,并使用它对您私有网络中的服务进行身份验证。

设置设备注册权限

  1. Cloudflare 仪表板中,转到 Zero Trust > Team & Resources(团队和资源) > Devices(设备) > Device profiles(设备配置文件) > Management

  2. Device enrollment(设备注册) > Device enrollment permissions(设备注册权限) 中,选择 Manage(管理)

  3. Policies(策略) 选项卡中,配置一个或多个 Access 策略来定义谁可以加入其设备。例如,您可以允许具有公司电子邮件地址的所有用户:

    规则类型 选择器
    Include(包含) Emails ending in(电子邮件结尾为) @company.com
  1. Login methods(登录方法) 选项卡中:

    a. 选择用户可用于身份验证的身份提供程序。如果您尚未集成身份提供程序,可以使用一次性 PIN 码

    b. (可选)如果计划仅允许通过单个 IdP 进行访问,请开启 Apply instant authentication(应用即时身份验证)。最终用户将不会看到 Cloudflare Access 登录页面。相反,Cloudflare 会将用户直接重定向到您的 SSO 登录事件。

  2. 选择 Save(保存)

  1. 向您的 cloudflare_api_token 添加以下权限:

    • Access: Apps and Policies Write
  2. 使用 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"
    			}
    		}
    	]
    }
  3. 使用 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.SHA1WithRSA

    x509.SHA256WithRSA

    x509.SHA384WithRSA

    x509.SHA512WithRSA

    x509.ECDSAWithSHA1

    x509.ECDSAWithSHA256

    x509.ECDSAWithSHA384

    x509.ECDSAWithSHA512

要检查 mTLS 证书:

  1. Cloudflare 仪表板中,前往 Zero Trust > Access controls(访问控制) > Service credentials(服务凭据) > Mutual TLS(双向 TLS)

  2. 选择 Add mTLS Certificate(添加 mTLS 证书)

  3. 为根 CA 输入任意名称。

  4. Certificate content 中,粘贴您的根 CA 内容。

    如果客户端证书由根 CA 直接签名,您只需上传根证书。如果客户端证书由中间证书签名,则必须上传完整的 CA 链(中间证书和根证书)。例如:

    -----BEGIN CERTIFICATE-----
    <intermediate.pem>
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    <rootCA.pem>
    -----END CERTIFICATE-----
  1. Associated hostnames 中,输入您的 Zero Trust 团队域<team-name>.cloudflareaccess.com

  2. 在您的设备注册权限中,添加 Common NameValid Certificate 规则。例如,以下策略要求具有特定常用名称的客户端证书:

    操作 规则类型 选择器
    Allow(允许) Require Common Name <CERT-COMMON-NAME>
  3. 在您的设备上,将客户端证书添加到系统钥匙串

  1. 向您的 cloudflare_api_token 添加以下权限:

    • Access: Mutual TLS Certificates Write
    • Access: Apps and Policies Write
  2. 使用 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"]
    }
  3. 创建以下 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"
    			}
    		}
    	]
    }
  4. 将策略添加到适用于 Cloudflare One 客户端的 cloudflared_zero_trust_access_application

  5. 在您的设备上,将客户端证书添加到系统钥匙串

最佳实践

大多数企业使用单一身份提供商作为其用户目录的单一事实来源。您应该使用此单一事实来源将您的公司用户引入 Zero Trust,例如要求使用您的主要身份提供商登录公司电子邮件地址。稍后,您可以根据需要为可能需要访问您的网络的任何承包商、供应商或被收购公司添加其他登录方法或身份提供商。

这篇文档对您有帮助吗?