59 lines
2.4 KiB
Terraform
59 lines
2.4 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
|
|
|
|
# NOTE : pas de app_launcher_visible ici — cet attribut n'est autorisé que
|
|
# pour les types self_hosted/ssh/vnc/rdp/saas/bookmark ; une app de type
|
|
# "warp" n'apparaît de toute façon jamais dans l'App Launcher.
|
|
type = "warp"
|
|
name = "Warp device enrollment"
|
|
session_duration = "24h"
|
|
|
|
# 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"
|
|
}
|
|
}]
|
|
}]
|
|
}
|