Skip to content

Modèle des trois officiers

Doggy implémente le modèle de sécurité des trois officiers, conforme à la norme chinoise de protection par niveau (等保), avec contrôle des permissions via ThreeOfficersVoter.

Aperçu

Le modèle des trois officiers sépare les permissions de gestion du système en trois rôles indépendants, avec des contrôles de permission fins via App\Security\Voter\ThreeOfficersVoter :

RôlePérimètre des permissions
ROLE_SYS_ADMINConfiguration système, gestion des utilisateurs
ROLE_SEC_ADMINConfiguration des stratégies de sécurité
ROLE_AUDITORConsultation des journaux d'audit

Les trois officiers sont mutuellement indépendants et se limitent mutuellement ; aucun rôle unique ne peut contrôler entièrement le système.

Définition des permissions du Voter

php
// src/Security/Voter/ThreeOfficersVoter.php
class ThreeOfficersVoter extends Voter
{
    public const SYSTEM_CONFIG = 'SYSTEM_CONFIG';  // 系统管理员
    public const USER_MANAGE   = 'USER_MANAGE';     // 安全保密员
    public const AUDIT_VIEW    = 'AUDIT_VIEW';       // 安全审计员
    public const BUSINESS_DATA = 'BUSINESS_DATA';   // 普通用户访问业务数据
}

Responsabilités des rôles

Administrateur système (ROLE_SYS_ADMIN)

  • Gestion des comptes utilisateur
  • Maintenance de la configuration système (permission SYSTEM_CONFIG)
  • Gestion du déploiement de l'application
  • Ne peut pas consulter les journaux d'audit
  • Ne peut pas modifier les stratégies de sécurité

Agent de sécurité et de confidentialité (ROLE_SEC_ADMIN)

  • Configuration de la stratégie de mot de passe
  • Gestion des stratégies de permissions (permission USER_MANAGE)
  • Traitement des incidents de sécurité
  • Ne peut pas gérer les comptes utilisateur
  • Ne peut pas consulter les journaux d'audit

Auditeur de sécurité (ROLE_AUDITOR)

  • Consultation de tous les journaux d'opérations (permission AUDIT_VIEW)
  • Génération de rapports d'audit
  • Détection des comportements anormaux
  • Ne peut modifier aucune configuration système
  • Ne peut pas gérer les utilisateurs

Initialisation

Initialisez les trois comptes administrateur via la commande InitOfficersCommand :

bash
php bin/console app:init-officers

Après l'initialisation, trois comptes par défaut sont créés.

Comptes par défaut

RôleNom d'utilisateurMot de passe initial
Administrateur systèmeadminadmin123
Agent de sécurité et de confidentialitésecuritysecurity123
Auditeur de sécuritéauditorauditor123

⚠️ Tous les mots de passe par défaut doivent être modifiés en production.

Accès aux données métier

Les utilisateurs authentifiés ordinaires (ROLE_USER) peuvent accéder normalement aux données métier via la permission BUSINESS_DATA, mais ne peuvent pas effectuer d'opérations d'administration.

Open source sous licence MIT | Copyright © 2026 Doggy