デバイス登録の権限は、どのユーザーが組織の Cloudflare Zero Trust インスタンスに新しいデバイスを接続できるかを決めます。
-
Cloudflare ダッシュボード ↗ で、Zero Trust > Team & Resources > Devices > Device profiles > Management を開きます。
-
Device enrollment > Device enrollment permissions で Manage を選択します。
-
Policies タブで、デバイスを参加できるユーザーを定義する Access ポリシー を 1 つ以上設定します。たとえば、会社のメールアドレスを持つすべてのユーザーを許可できます。
ルールタイプ セレクター 値 Include Emails ending in @company.com
-
Login methods タブで:
a. ユーザーが認証に使える アイデンティティプロバイダー を選びます。アイデンティティプロバイダーを統合していない場合は、ワンタイム PIN を使えます。
b. (任意)単一の IdP だけでアクセスを許可する場合は、Apply instant authentication をオンにします。エンドユーザーには Cloudflare Access のログインページは表示されません。代わりに、Cloudflare が SSO ログインへ直接リダイレクトします。
-
Save を選択します。
-
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 } ] }
ユーザーは、アイデンティティプロバイダーにログインして デバイスを登録 できます。登録後にユーザーが組織からログアウトできないようにするには、デバイスクライアント設定の 組織からの離脱を許可する を無効にします。
ユーザーに資格情報での認証を求めず、サービストークン で、ユーザー操作なしにデバイスを登録できます。アイデンティティプロバイダーへのログインが不要なため、これらのデバイスにはアイデンティティベースのポリシーを適用できません。
サービストークンでデバイスを登録するには:
-
サービストークンを作成 します。
-
トークンの Client ID と Client Secret をコピーします。
-
Access controls > Policies を開き、次のポリシーを作成します。
ルールアクション ルールタイプ セレクター 値 Service Auth Include Service Token <TOKEN-NAME>Action は Allow ではなく Service Auth にしてください。
-
Access ポリシーを デバイス登録の権限 に追加します。
-
MDM の デプロイパラメーター に、次のフィールドを追加します。
auth_client_id: サービストークンの Client ID。auth_client_secret: サービストークンの Client Secret。
-
cloudflare_api_token↗ に次の権限を追加します。Access: Apps and Policies WriteAccess: Service Tokens Write
-
サービストークンを作成 し、Client ID と Client Secret をコピーします。
-
次の Access ポリシーを作成します。
resource "cloudflare_zero_trust_access_policy" "warp_enrollment_service_token" { account_id = var.cloudflare_account_id name = "Allow service token" decision = "non_identity" include = [ { service_token = { token_id = cloudflare_zero_trust_access_service_token.example_service_token.id } } ] } -
ポリシーを Cloudflare One Client 向けの
cloudflared_zero_trust_access_applicationに追加します。 -
MDM の デプロイパラメーター に、次のフィールドを追加します。
auth_client_id: サービストークンの Client ID。auth_client_secret: サービストークンの Client Secret。
MDM プロバイダーで Cloudflare One Client をデプロイすると、Cloudflare One Client はデバイスを Zero Trust 組織へ自動で接続します。
登録済みデバイスは、Team & Resources > Devices で確認できます。サービストークン(またはほかの Service Auth ポリシー)で登録したデバイスは、Email フィールドが non_identity@<team-name>.cloudflareaccess.com と表示されます。
Enterprise のお客様は、デバイス登録時に 相互 TLS 認証 を強制できます。
証明書の要件
-
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 を開きます。
-
Add mTLS Certificate を選択します。
-
ルート CA の名前を任意で入力します。
-
Certificate content にルート CA の内容を貼り付けます。
クライアント証明書がルート CA で直接署名されている場合は、ルートだけをアップロードします。クライアント証明書が中間証明書で署名されている場合は、CA チェーン全体(中間とルート)をアップロードする必要があります。例:
-----BEGIN CERTIFICATE----- <intermediate.pem> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <rootCA.pem> -----END CERTIFICATE----- -
Associated hostnames に、Zero Trust の チームドメイン を入力します:
<team-name>.cloudflareaccess.com -
デバイス登録の権限 に、Common Name または Valid Certificate のルールを追加します。たとえば、次のポリシーは特定のコモンネームを持つクライアント証明書を要求します。
アクション ルールタイプ セレクター 値 Allow Require Common Name <CERT-COMMON-NAME> -
デバイスで、クライアント証明書を システムキーチェーン に追加します。
-
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 Client 向けの
cloudflared_zero_trust_access_applicationに追加します。 -
デバイスで、クライアント証明書を システムキーチェーン に追加します。
ユーザーが Cloudflare One Client から Zero Trust 組織にログイン するとき、接続するにはデバイスが有効なクライアント証明書を提示する必要があります。