diff --git a/Implementierungshandbuch-IIS-PHP-AD.-.md b/Implementierungshandbuch-IIS-PHP-AD.-.md new file mode 100644 index 0000000..c1e737d --- /dev/null +++ b/Implementierungshandbuch-IIS-PHP-AD.-.md @@ -0,0 +1,737 @@ + +# Technisches Implementierungshandbuch: PHP-basierte Active Directory-Verwaltung mit IIS auf Windows Server 2025 + +--- + +## Zusammenfassung + +Dieses Dokument beschreibt die detaillierte, produktionsreife Implementierung einer PHP-Webanwendung auf einem Windows Server 2025 Datacenter, die über die Internet Information Services (IIS) bereitgestellt wird. + +Die Anwendung erfüllt folgende hoch privilegierte Aufgaben: + +- Authentifizierung von Administratoren über LDAP +- Abfrage von Servermetriken über SNMP +- Erstellung von Active-Directory-(AD)-Benutzern (einzeln und als CSV-Massenimport) + +Die AD-Benutzererstellung wird durch die sichere Ausführung von PowerShell-Skripten aus PHP heraus realisiert. Die Skripte verarbeiten sowohl Einzelbenutzer als auch CSV-Massenimporte. + +Der Schwerpunkt dieses Handbuchs liegt auf der Konfiguration einer robusten und sicheren Architektur nach dem **Least-Privilege-Prinzip**, um Risiken durch Web-basierten Zugriff auf AD und Serverdienste zu minimieren. + +--- + +## Teil 1: Einrichtung der Basisinfrastruktur (IIS, PHP & FastCGI) + +Dieser Abschnitt legt das Fundament für die Webanwendung durch die Installation und Konfiguration des Webservers und der PHP-Laufzeitumgebung auf einem sauberen Windows Server 2025. + +### 1.1 Installation der IIS-Serverrolle + +1. Öffnen des Server-Managers. +2. Auswahl von **Verwalten → Rollen und Features hinzufügen**. +3. Im Assistenten zur Seite **Serverrollen** navigieren. +4. **Webserver (IIS)** auswählen. +5. Im erscheinenden Pop-up auf **Features hinzufügen** klicken. +6. Zur Seite **Rollendienste** fortfahren. +7. Unter **Webserver → Anwendungsentwicklung** den Knoten erweitern. +8. Das Kontrollkästchen **CGI** aktivieren. + +**Technische Erläuterung:** +Die Auswahl von **CGI** ist entscheidend. Diese Option installiert nicht nur klassisches CGI, sondern auch das moderne **FastCGI-Modul**, das für die performante und stabile Anbindung von PHP an IIS erforderlich ist. Ohne FastCGI kann IIS nicht mit `php-cgi.exe` kommunizieren. + +9. Den Assistenten abschließen und die Installation abwarten. + +--- + +### 1.2 Installation der PHP-Laufzeitumgebung + +Die Installation von PHP erfolgt manuell, da der Web Platform Installer (WPI) nicht mehr unterstützt wird. + +#### Voraussetzung: Visual C++ Redistributable + +PHP unter Windows benötigt das **Microsoft Visual C++ 2015–2022 Redistributable (x64)**. + +1. Neueste x64-Version von Microsoft herunterladen (`vc_redist.x64.exe`). +2. Installation ausführen und abschließen. + +#### PHP-Download + +1. Zur offiziellen Download-Seite für PHP unter Windows wechseln: + `https://windows.php.net/download/` +2. Die **x64 Non-Thread Safe (NTS)** Version der gewünschten PHP-Version (z.B. PHP 8.3) im **Zip-Format** auswählen. + +**Technische Erläuterung:** +Die NTS-Version ist für den Betrieb mit IIS + FastCGI optimiert. FastCGI übernimmt das Prozess-Pooling, daher ist Thread-Safety in PHP selbst nicht erforderlich. Die Verwendung einer Thread-Safe-Version (TS) kann hier zu Performance- und Stabilitätsproblemen führen. + +#### PHP-Installation + +1. Ein Verzeichnis für PHP erstellen, z.B.: + `C:\PHP` +2. Das heruntergeladene ZIP-Archiv nach `C:\PHP` entpacken. + +--- + +### 1.3 Konfiguration von IIS für PHP (Handler Mapping) + +Nun muss IIS angewiesen werden, wie `.php`-Dateien behandelt werden. Dies erfolgt über eine **Handler-Zuordnung**. + +1. IIS-Manager starten (`inetmgr`). +2. Im linken Bereich **Verbindungen** den Servernamen (oberste Ebene) auswählen. +3. Im mittleren Bereich auf **Handlerzuordnungen** doppelklicken. +4. Im rechten Bereich unter **Aktionen** auf **Modulzuordnung hinzufügen…** klicken. +5. Felder wie folgt ausfüllen: + + - **Anforderungspfad:** `*.php` + - **Modul:** `FastCgiModule` + - **Ausführbare Datei:** `C:\PHP\php-cgi.exe` (Pfad ggf. anpassen) + - **Name:** z. B. `PHP via FastCGI` + +6. Mit **OK** bestätigen. +7. Die Nachfrage, ob eine FastCGI-Anwendung angelegt werden soll, mit **Ja** bestätigen. + +--- + +### 1.4 Konfiguration der „Default Web Site“ + +1. Im IIS-Manager im linken Bereich **Websites** erweitern. +2. Rechtsklick auf **Default Web Site** → **Verwalten der Website → Erweiterte Einstellungen…** +3. Die Eigenschaft **Physischer Pfad** suchen. +4. Den Standardpfad (z.B. `%SystemDrive%\inetpub\wwwroot`) ändern auf den `public`-Ordner des Projekts, z.B.: + `C:\Web\AdAdminPanel\public` +5. Mit **OK** bestätigen. + +Ab jetzt leitet IIS Anfragen an `http://localhost/` in das Verzeichnis `C:\Web\AdAdminPanel\public`. + +--- + +### 1.5 Validierung der Basisinstallation + +1. Eine neue Textdatei `phpinfo.php` in + `C:\Web\AdAdminPanel\public` erstellen. +2. Folgenden Inhalt einfügen: + + ```php + + + +
+Angemeldet als:
+ +CPU-Last (Kern 1): %
+System Uptime:
+RAM-Auslastung: + +
+ +Die CSV-Datei muss die Spaltenüberschriften SamAccountName, GivenName, Surname und Password enthalten.