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