You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The **PHP-API** module implements **LDAP-based Single Sign-On (SSO)** with **Active Directory**, designed to operate across an **entire AD forest** using the **Global Catalog (GC)**.
11
+
The **PHP-API** module provides a **lightweight, secure, and enterprise-aligned LDAP Single Sign-On (SSO)** implementation for **Active Directory** environments, designed to operate **forest-wide** using the **Global Catalog (GC)**.
11
12
12
-
It provides a **lightweight, auditable, and secure authentication layer** for both **legacy and modern PHP applications**, following the same security and design principles used across the **Windows-SysAdmin-ProSuite**.
13
+
This integration follows the same **design principles, security posture, and documentation standards** adopted across the **Windows‑SysAdmin‑ProSuite**, ensuring predictable behavior, auditable authentication flows, and compatibility with legacy or modern PHP deployments.
13
14
14
-
This integration is ideal for environments where:
15
-
- IIS/Apache-based applications still rely on PHP
16
-
- Forest-wide authentication is required
17
-
- Minimal privileges and predictable behavior are mandatory
15
+
The solution supports both:
16
+
- **Transparent SSO** (via `REMOTE_USER`, when available), and
17
+
- **Credential-based fallback authentication**, maintaining usability without weakening security controls.
18
+
19
+
---
20
+
21
+
## ✅ Key Features
22
+
23
+
- 🔐 **Forest‑Wide Authentication**
24
+
- Uses **Global Catalog (port 3268)** for multi-domain AD forests
25
+
- No hard dependency on a single domain controller
26
+
27
+
- 🧩 **Dual Authentication Model**
28
+
- Automatic SSO via web server integration (`REMOTE_USER`)
29
+
- Secure manual login fallback (`login.php`)
30
+
31
+
- 🛡️ **Security‑First Design**
32
+
- Service account with **read-only permissions**
33
+
- Explicit blocking of **inetOrgPerson** objects
34
+
- No credential persistence in source code
35
+
36
+
- 📜 **Auditable and Deterministic Flow**
37
+
- Centralized LDAP logic
38
+
- Clear authentication boundaries
39
+
- Predictable session lifecycle
40
+
41
+
- 🧱 **Enterprise Compatibility**
42
+
- Works with Apache or Nginx
43
+
- Compatible with legacy PHP apps and modern PHP 8+ stacks
18
44
19
45
---
20
46
21
47
## 📁 Folder Structure
22
48
23
49
```text
24
50
ActiveDirectory-SSO-Integrations/
25
-
│
26
-
├── PHP-API/
27
-
│ ├── public/
28
-
│ │ ├── index.php # Entry point with SSO auto-detection
29
-
│ │ ├── login.php # Manual login fallback
30
-
│ │ ├── dashboard.php # Protected resource
31
-
│ │ └── logout.php # Session termination
32
-
│ │
33
-
│ ├── config/
34
-
│ │ ├── env.php # Loads environment variables
35
-
│ │ └── ldap.php # LDAP bind and authentication logic
36
-
│ │
37
-
│ ├── .env.example # Environment template
38
-
│ ├── composer.json # Dependency definitions
39
-
│ └── README.md # Module documentation
51
+
└── PHP-API/
52
+
├── public/
53
+
│ ├── index.php # Entry point with SSO detection
54
+
│ ├── login.php # Manual authentication fallback
55
+
│ ├── dashboard.php # Protected application area
56
+
│ └── logout.php # Session termination
57
+
│
58
+
├── config/
59
+
│ ├── env.php # Loads environment variables
60
+
│ └── ldap.php # Central LDAP authentication logic
61
+
│
62
+
├── .env.example # LDAP credential template
63
+
├── composer.json # Dependency definitions
64
+
└── README.md # Module documentation
40
65
```
41
66
42
67
---
43
68
44
69
## 🛠️ Prerequisites
45
70
46
-
- **PHP 8.0 or later**
47
-
- **Active Directory** with **Global Catalog enabled**
48
-
- **Apache or Nginx** with PHP support
49
-
- **Composer** (dependency manager)
50
-
- PHP extensions:
51
-
- `ldap`
52
-
- `mbstring`
53
-
- `openssl`
71
+
### 1) ⚙️ Platform Requirements
72
+
- **PHP 8.0+**
73
+
- **Apache or Nginx** with PHP enabled
74
+
- **OpenLDAP / Active Directory** with Global Catalog enabled
0 commit comments