Gestion des Identites et des Acces (IAM)

Concepts IAM

La gestion des identites et des acces (IAM - Identity and Access Management) est un pilier de la securite. Elle repond a deux questions fondamentales : qui es-tu ? (authentification) et que peux-tu faire ? (autorisation).

Authentification vs Autorisation

Concept Question Mecanisme Exemple
Authentification Qui es-tu ? Mot de passe, certificat, biometrie, token Login avec identifiant + MFA
Autorisation Que peux-tu faire ? Roles, groupes, ACL, RBAC Acces en lecture seule a un dossier

Principe du moindre privilege

Chaque utilisateur ou service ne recoit que les droits strictement necessaires a l'exercice de sa fonction. C'est un principe fondamental de securite qui limite l'impact d'une compromission de compte.

Protocoles d'authentification

Protocole Type Fonctionnement Usage
Kerberos Ticket-based Le KDC delivre un TGT (Ticket Granting Ticket), puis des tickets de service. Pas de mot de passe transmis sur le reseau. Active Directory, FreeIPA
SAML 2.0 XML-based federation L'IdP (Identity Provider) emet une assertion XML signee vers le SP (Service Provider). Applications web entreprise
OIDC Token-based (OAuth 2.0) L'IdP emet un ID Token JWT apres authentification. Plus leger que SAML. Applications modernes, SPA
LDAP Directory query Interrogation directe de l'annuaire pour verifier les credentials (bind). Applications legacy

SSO, MFA et Federation

Concept Definition Benefice
SSO (Single Sign-On) Une seule authentification pour acceder a tous les services Moins de mots de passe, meilleure UX
MFA (Multi-Factor Authentication) Au moins 2 facteurs parmi : savoir, avoir, etre Bloque 99.9% des attaques par credentials
Federation Confiance entre domaines d'identite distincts Un compte FreeIPA peut acceder aux ressources AD

Architecture IAM

Notre architecture IAM repose sur trois piliers interconnectes pour couvrir les environnements Linux, Windows et Cloud :

graph TB
    ENTRA["Microsoft Entra ID<br/>Cloud SSO + MFA<br/>SAML 2.0 / OIDC"]

    subgraph ONPREM["Infrastructure On-Premise"]
        subgraph FREEIPA_G["FreeIPA - Linux"]
            MASTER["INF-IIDA20A<br/>10.15.100.225<br/>Master"]
            REPLICA["INF-IIDA20B<br/>10.15.100.226<br/>Replica"]
            MASTER <-->|"Replication<br/>multi-master"| REPLICA
        end

        subgraph AD_G["Active Directory - Windows"]
            DC["Domain Controller<br/>Durci CIS L2"]
        end

        FREEIPA_G <-->|"Cross-realm<br/>Kerberos Trust"| AD_G
    end

    ENTRA <-->|"SAML 2.0"| AD_G
    ENTRA <-->|"OIDC Federation"| FREEIPA_G

    subgraph BASTION["Bastion"]
        GUAC["INF-ABAS14A<br/>10.15.100.129<br/>Apache Guacamole"]
    end

    FREEIPA_G -->|"HBAC + SUDO"| LINUX["Serveurs Linux<br/>Rocky 9"]
    AD_G -->|"GPO + LAPS"| WIN["Serveurs Windows"]
    ENTRA -->|"SSO + MFA"| CLOUD["M365, Azure<br/>Applications Cloud"]
    GUAC -->|"SSH / RDP"| LINUX
    GUAC -->|"RDP"| WIN

Active Directory - Hardening

Active Directory est durci selon les recommandations ANSSI et le CIS Benchmark Level 2, avec une architecture en tiers pour isoler les comptes privilegies.

Modele Tier 0 / 1 / 2

Le modele de tiering isole les niveaux de privilege pour empecher un attaquant de pivoter depuis un poste utilisateur jusqu'aux controleurs de domaine :

Tier Perimetre Exemples de ressources Acces autorise
Tier 0 Identite (coeur AD) Domain Controllers, PKI AD CS, ADFS Uniquement depuis PAW Tier 0
Tier 1 Serveurs Serveurs applicatifs, BDD, fichiers PAW Tier 0 ou Tier 1
Tier 2 Postes de travail Stations utilisateurs, peripheriques PAW Tier 0, 1 ou 2
graph TB
    subgraph T0["Tier 0 - Identite"]
        DC_T["Domain Controllers"]
        PAW0["PAW Tier 0<br/>Acces exclusif DC"]
    end

    subgraph T1["Tier 1 - Serveurs"]
        SRV["Serveurs applicatifs"]
        PAW1["PAW Tier 1<br/>Admin serveurs"]
    end

    subgraph T2["Tier 2 - Postes"]
        WKS["Postes utilisateurs"]
        PAW2["PAW Tier 2<br/>Support IT"]
    end

    PAW0 -->|"Autorise"| DC_T
    PAW1 -->|"Autorise"| SRV
    PAW2 -->|"Autorise"| WKS

    PAW1 -.->|"INTERDIT"| DC_T
    PAW2 -.->|"INTERDIT"| SRV
    PAW2 -.->|"INTERDIT"| DC_T

Pourquoi le tiering est critique

Sans tiering, un attaquant qui compromet un poste utilisateur (Tier 2) peut potentiellement recuperer les credentials d'un admin qui s'y est connecte, puis pivoter vers les serveurs et enfin vers les DC. Le tiering brise cette chaine d'attaque.

Mesures de durcissement AD

Mesure Description Impact securite
PAW (Privileged Access Workstation) Stations dediees par tier, jamais utilisees pour la navigation web Isole les credentials privilegies
LAPS (Local Admin Password Solution) Rotation automatique du mot de passe admin local, unique par machine Empeche le lateral movement via comptes locaux
NTLMv1 desactive Protocole d'authentification obsolete et crackable force desactive Bloque les attaques pass-the-hash legacy
SMBv1 desactive Protocole de partage de fichiers vulnerable (EternalBlue/WannaCry) Elimine un vecteur d'attaque majeur
LLMNR desactive Protocole de resolution de noms local, facilement spoofable Bloque les attaques LLMNR poisoning (Responder)
NetBIOS desactive Protocole legacy de resolution de noms Reduit la surface d'attaque reseau
Audit avance Journalisation des evenements Kerberos, logons, modifications AD Detection des attaques (DCSync, Golden Ticket)

FreeIPA

FreeIPA est la solution d'identite pour l'ensemble des serveurs Linux. Elle integre un annuaire LDAP (389 DS), Kerberos, DNS, NTP et une PKI dans une solution unifiee.

Fonctionnalites FreeIPA

Fonctionnalite Description Exemple concret
HBAC (Host-Based Access Control) Controle quel utilisateur peut se connecter a quel serveur L'equipe SOC peut acceder uniquement aux serveurs SIEM
SUDO granulaire Regles SUDO centralisees par role, hote et commande L'admin BDD peut faire sudo systemctl restart postgresql mais pas sudo su -
SELinux User Maps Associe un contexte SELinux a un utilisateur FreeIPA Les utilisateurs non-privilegies sont confines au contexte user_u
PKI integree Autorite de certification pour les certificats de service Delivrance automatique de certificats TLS pour Apache, LDAP
Kerberos Realm Authentification ticket-based sans mot de passe sur le reseau kinit user puis acces transparent a tous les services kerberises

HBAC en pratique

Sans HBAC, tout utilisateur FreeIPA peut se connecter a n'importe quel serveur Linux. Avec HBAC, on definit des regles granulaires : l'equipe reseau accede aux routeurs, l'equipe monitoring au serveur Zabbix, etc. C'est le moindre privilege applique au SSH.

Lab : FreeIPA Master + Replica

VM IP Role CPU RAM Services
INF-IIDA20A 10.15.100.225 FreeIPA Master 2 vCPU 8 Go LDAP, Kerberos, DNS, NTP, PKI
INF-IIDA20B 10.15.100.226 FreeIPA Replica 2 vCPU 8 Go LDAP, Kerberos, DNS, NTP

Les deux serveurs FreeIPA servent egalement de DNS autoritaire et de serveur NTP pour l'ensemble de l'infrastructure. La replication est multi-master : les modifications peuvent etre faites sur l'un ou l'autre noeud.


Bastion Apache Guacamole

Le bastion est le point d'entree unique pour l'administration des serveurs. Aucun acces SSH ou RDP direct n'est autorise depuis le reseau utilisateur.

Fonctionnalites du bastion

Fonctionnalite Description
Acces HTML5 Interface web, aucun client SSH/RDP a installer
Protocoles SSH, RDP, VNC, Telnet via un navigateur web
Enregistrement Toutes les sessions sont enregistrees (video) pour l'audit et la forensique
MFA Authentification obligatoire via Microsoft Entra ID (OIDC)
Controle d'acces Acces granulaire par utilisateur/groupe a chaque serveur
Audit trail Historique complet des connexions (qui, quand, ou, combien de temps)
VM IP VLAN Role
INF-ABAS14A 10.15.100.129 VLAN Admin Bastion Apache Guacamole

Securite du bastion

Le bastion est un composant critique : sa compromission donnerait acces a tous les serveurs. Il est place dans un VLAN d'administration dedie, durci (SELinux enforcing, CIS), et ses logs sont envoyes en temps reel au SIEM pour detection d'anomalies.


Flux d'authentification complet

Le diagramme suivant illustre le parcours complet d'un administrateur qui se connecte a un serveur via le bastion :

sequenceDiagram
    participant User as Administrateur
    participant Browser as Navigateur
    participant Guac as Guacamole<br/>INF-ABAS14A
    participant Entra as Microsoft Entra ID
    participant IPA as FreeIPA<br/>INF-IIDA20A/B
    participant AD as Active Directory
    participant Target as Serveur cible

    User->>Browser: 1. Ouvre guacamole.infra.indio
    Browser->>Guac: 2. Requete HTTPS
    Guac->>Entra: 3. Redirection OIDC (SSO)
    Entra->>User: 4. Challenge MFA (Authenticator / SMS)
    User->>Entra: 5. Validation du 2e facteur
    Entra->>Guac: 6. ID Token JWT valide
    Guac->>Guac: 7. Verification des ACL Guacamole

    alt Serveur Linux (SSH)
        Guac->>IPA: 8a. Verification HBAC
        IPA-->>Guac: 9a. Acces autorise + ticket Kerberos
        Guac->>Target: 10a. Session SSH (certificat ou Kerberos)
        IPA-->>Target: 11a. Regles SUDO appliquees
    else Serveur Windows (RDP)
        Guac->>AD: 8b. Authentification Kerberos
        AD-->>Guac: 9b. Ticket de service
        Guac->>Target: 10b. Session RDP securisee (NLA)
        AD-->>Target: 11b. GPO appliquees
    end

    Note over Guac: Session video enregistree
    Note over Guac: Logs envoyes au SIEM en temps reel

Etapes detaillees du flux

Etape Action Protocole Securite
1-2 Acces au portail Guacamole HTTPS TLS 1.3 Certificat Vault PKI
3-6 Authentification SSO + MFA OIDC / OAuth 2.0 Token JWT signe, MFA obligatoire
7 Verification des ACL locales Interne Guacamole L'utilisateur ne voit que ses serveurs
8-9 Verification identite backend Kerberos / LDAP HBAC (Linux) ou GPO (Windows)
10-11 Connexion au serveur cible SSH ou RDP (NLA) Certificat SSH CA ou Kerberos ticket

Zero Trust en pratique

Ce flux illustre une approche Zero Trust : chaque etape est verifiee independamment. L'identite est confirmee par Entra ID (MFA), les droits sont verifies par FreeIPA/AD, et la connexion est enregistree pour audit. Aucune confiance implicite n'est accordee.