Skip to content

Drei-Rollen-Modell

Doggy implementiert das Drei-Rollen-Sicherheitsmodell gemäß der chinesischen Klassifizierungsschutz-(等保-)Norm. Die Zugriffskontrolle wird über ThreeOfficersVoter realisiert.

Übersicht

Das Drei-Rollen-Modell trennt die Systemverwaltungsrechte in drei unabhängige Rollen. Über App\Security\Voter\ThreeOfficersVoter werden feingranulare Berechtigungsprüfungen durchgeführt:

RolleBerechtigungsbereich
ROLE_SYS_ADMINSystemkonfiguration, Benutzerverwaltung
ROLE_SEC_ADMINKonfiguration der Sicherheitsrichtlinien
ROLE_AUDITORAudit-Protokolle einsehen

Die drei Rollen sind voneinander unabhängig und kontrollieren sich gegenseitig; keine einzelne Rolle kann das System vollständig kontrollieren.

Berechtigungsdefinition des Voters

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';   // 普通用户访问业务数据
}

Aufgaben der Rollen

Systemadministrator (ROLE_SYS_ADMIN)

  • Verwaltung der Benutzerkonten
  • Wartung der Systemkonfiguration (SYSTEM_CONFIG-Berechtigung)
  • Verwaltung der Anwendungsbereitstellung
  • Kann keine Audit-Protokolle einsehen
  • Kann keine Sicherheitsrichtlinien ändern

Sicherheitsbeauftragter (ROLE_SEC_ADMIN)

  • Konfiguration der Passwortrichtlinien
  • Verwaltung der Berechtigungsrichtlinien (USER_MANAGE-Berechtigung)
  • Bearbeitung von Sicherheitsvorfällen
  • Kann keine Benutzerkonten verwalten
  • Kann keine Audit-Protokolle einsehen

Sicherheitsauditor (ROLE_AUDITOR)

  • Alle Operationsprotokolle einsehen (AUDIT_VIEW-Berechtigung)
  • Erstellung von Audit-Berichten
  • Erkennung von auffälligem Verhalten
  • Kann keine Systemkonfiguration ändern
  • Kann keine Benutzer verwalten

Initialisierung

Über den Befehl InitOfficersCommand werden drei Administrator-Konten initialisiert:

bash
php bin/console app:init-officers

Nach der Initialisierung werden drei Standardkonten erstellt.

Standardkonten

RolleBenutzernameInitiales Passwort
Systemadministratoradminadmin123
Sicherheitsbeauftragtersecuritysecurity123
Sicherheitsauditorauditorauditor123

⚠️ Im Produktionsbetrieb müssen alle Standardpasswörter geändert werden.

Zugriff auf Geschäftsdaten

Normale authentifizierte Benutzer (ROLE_USER) können über die BUSINESS_DATA-Berechtigung normal auf Geschäftsdaten zugreifen, aber keine Verwaltungsoperationen ausführen.

Open Source unter MIT | Copyright © 2026 Doggy