Files
terraform-cloudflare-tunnel…/Team_Resources-Devices-Enrollment_Permissions.tf
T
hcornet 04e0f318f4
Terraform Apply / Terraform Apply (push) Failing after 20s
Update 31-07-2026
2026-07-31 09:50:42 +02:00

57 lines
2.2 KiB
Terraform

# =============================================================================
# CLOUDFLARE : Team & Resources : Devices : Enrollment permissions
# =============================================================================
# BRIQUE AGENT WARP (1/2) : qui a le droit d'enrôler son poste ?
#
# L'"agent" Cloudflare installé sur les postes est le client WARP. Avant de
# pouvoir rejoindre l'organisation Zero Trust (var.cloudflare_team_name),
# l'utilisateur doit s'authentifier : cette application spéciale de type
# "warp" définit les règles d'enrôlement.
#
# Parcours utilisateur :
# 1. Installer le client WARP (https://one.one.one.one ou MDM)
# 2. Préférences > Compte > "Login with Cloudflare Zero Trust"
# 3. Saisir le nom d'équipe : var.cloudflare_team_name
# 4. Authentification via Authentik (ou Azure si la brique est activée)
# 5. Le poste applique alors le profil WARP correspondant
# (Team_Resources-Devices-Device_profiles.tf) et les vérifications de
# posture (Team_Resources-Devices-Device_posture.tf)
# =============================================================================
resource "cloudflare_zero_trust_access_application" "warp_device_enrollment" {
account_id = local.cloudflare_account_id
type = "warp"
name = "Warp device enrollment"
session_duration = "24h"
app_launcher_visible = false
# Les deux briques IdP peuvent servir à l'enrôlement :
# Authentik toujours, Azure Entra ID si la brique est activée.
allowed_idps = concat(
[cloudflare_zero_trust_access_identity_provider.authentik_oidc.id],
var.azure_idp_enabled ? [cloudflare_zero_trust_access_identity_provider.azure_entra_id[0].id] : []
)
auto_redirect_to_identity = false
policies = [{
name = "Device enrollment policy"
decision = "allow"
# Seuls les membres du domaine mail de l'organisation peuvent enrôler
# un poste. Durcir avec un rule group si besoin (ex : admins seulement).
include = [{
email_domain = {
domain = var.cloudflare_email_domain
}
}]
# MFA exigée au moment de l'enrôlement
require = [{
auth_method = {
auth_method = "mfa"
}
}]
}]
}