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ôle | Périmètre des permissions |
|---|---|
ROLE_SYS_ADMIN | Configuration système, gestion des utilisateurs |
ROLE_SEC_ADMIN | Configuration des stratégies de sécurité |
ROLE_AUDITOR | Consultation 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
// 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 :
php bin/console app:init-officersAprès l'initialisation, trois comptes par défaut sont créés.
Comptes par défaut
| Rôle | Nom d'utilisateur | Mot de passe initial |
|---|---|---|
| Administrateur système | admin | admin123 |
| Agent de sécurité et de confidentialité | security | security123 |
| Auditeur de sécurité | auditor | auditor123 |
⚠️ 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.