Zscaler Integration einrichten¶
TCM365 unterstützt seit v2.0.0 die vollständige Integration mit Zscaler Internet Access (ZIA) und Zscaler Private Access (ZPA) über das VendorAdapter Pattern. Dieser Guide erklaert die Einrichtung der API Credentials, Rate Limits und den Verbindungstest.
Übersicht¶
TCM365 Backend
│
├── ZscalerZiaClient ──► ZIA API (cloud.zscaler.net)
│ ├── Cookie-Auth (28 min TTL)
│ ├── 12 Endpoint-Gruppen
│ └── Rate Limit: 80 read/10s, 10 write/10s
│
└── ZscalerZpaClient ──► ZPA API (config.private.zscaler.com)
├── OAuth 2.0 Client Credentials
├── 9 Endpoint-Gruppen
└── Rate Limit: 15 req/10s
Unterstützte Funktionen¶
| Funktion | ZIA | ZPA | Beschreibung |
|---|---|---|---|
| Snapshot Capture | Ja | Ja | Konfigurationserfassung aller Resource Types |
| Drift Detection | Ja | Ja | Erkennung von Konfigurationsänderungen |
| Rollback | Ja | Ja | Zurücksetzen auf vorherigen Stand |
| Audit Logs | Ja | Ja | Aenderungsprotokoll abrufen |
| Baselines | Ja | Ja | 4 Zscaler Baseline Templates verfügbar |
Voraussetzungen¶
Bevor Sie beginnen, stellen Sie sicher:
- Zugang zur Zscaler Admin Console (ZIA und/oder ZPA)
- API-Zugriff ist für Ihren Zscaler Account aktiviert
- Ein dedizierter API-Admin-Account (empfohlen, kein persoenlicher Account)
- TCM365 läuft und Sie haben einen
SUPER_ADMINoderTENANT_ADMINAccount
Dedizierter API Account
Verwenden Sie einen dedizierten Admin-Account für die API-Integration, nicht Ihren persönlichen Account. Dies ermöglicht separate Passwort-Rotation, klarere Audit Trails und verhindert Unterbrechungen bei persönlichen Passwortaenderungen.
ZIA Credentials einrichten¶
Schritt 1: ZIA API Key beschaffen¶
- Melden Sie sich an der ZIA Admin Console an
- Navigieren Sie zu Administration > API Key Management
- Kopieren Sie den API Key
ZIA Cloud Instanzen
Die ZIA Cloud Instanz hängt von Ihrem Zscaler Account ab. Gaengige Werte:
zscaler.net(US)zscalerone.net(US)zscalertwo.net(EU)zscalerthree.net(EU)zscloud.net(Sonstige)
Schritt 2: Admin Credentials vorbereiten¶
Notieren Sie die folgenden Informationen:
| Feld | Beschreibung | Beispiel |
|---|---|---|
| ZIA Cloud | Ihre ZIA Cloud Instanz | zscalertwo.net |
| ZIA API Key | API Key aus der Admin Console | abc123def456... |
| ZIA Admin Username | E-Mail des API Admin Accounts | zia-api@example.com |
| ZIA Admin Password | Passwort des API Admin Accounts | (gesichert) |
Schritt 3: In TCM365 konfigurieren¶
- Navigieren Sie zu Tenants > Neuer Tenant > Zscaler
- Geben Sie die ZIA Credentials ein
- Der Wizard führt automatisch einen Verbindungstest durch
- Nach erfolgreichem Test werden die Credentials verschlüsselt gespeichert
curl -X POST http://localhost:8000/api/v1/tenants/vendor \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"vendor": "zscaler",
"name": "Zscaler Production",
"zia_cloud": "zscalertwo.net",
"zia_api_key": "abc123def456...",
"zia_admin_username": "zia-api@example.com",
"zia_admin_password": "your-password"
}'
ZIA Authentifizierung im Detail¶
Die ZIA API verwendet Cookie-basierte Authentifizierung:
- TCM365 sendet eine Authentifizierungsanfrage mit API Key + Username + obfuskiertem Passwort
- ZIA gibt ein Session Cookie zurück
- Das Cookie hat eine TTL von 28 Minuten
- Die
ZscalerAuthFactoryverwaltet die automatische Token-Erneuerung
Login Request → ZIA API → Session Cookie (28 min TTL)
│
▼
ZscalerZiaClient verwendet Cookie für alle API Aufrufe
│
▼
Automatische Erneuerung vor Ablauf
ZPA Credentials einrichten¶
Schritt 1: OAuth Client erstellen¶
- Melden Sie sich an der ZPA Admin Console an
- Navigieren Sie zu Administration > API Keys
- Erstellen Sie einen neuen API Client:
- Client Type: Service
- Enabled: Ja
- Notieren Sie Client ID und Client Secret
Schritt 2: Customer ID beschaffen¶
- In der ZPA Admin Console unter Administration > Company Profile
- Kopieren Sie die Customer ID (auch "Company ID" genannt)
Schritt 3: Credentials zusammenfassen¶
| Feld | Beschreibung | Beispiel |
|---|---|---|
| ZPA Customer ID | Ihre ZPA Customer/Company ID | 123456789 |
| ZPA Client ID | OAuth Client ID | aBcDeFgHiJkLmN... |
| ZPA Client Secret | OAuth Client Secret | (gesichert) |
| ZPA Cloud | ZPA Cloud Instanz | config.private.zscaler.com |
ZPA Cloud Instanzen
Gaengige ZPA Cloud Endpunkte:
config.private.zscaler.com(Standard)config.zpabeta.net(Beta)
Schritt 4: In TCM365 konfigurieren¶
Erweitern Sie den bestehenden Zscaler Tenant um ZPA Credentials:
- Öffnen Sie den bestehenden Zscaler Tenant
- Navigieren Sie zum Tab ZPA Configuration
- Geben Sie Customer ID, Client ID und Client Secret ein
- Verbindungstest durchführen
curl -X PATCH http://localhost:8000/api/v1/tenants/vendor/<tenant-id> \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"zpa_customer_id": "123456789",
"zpa_client_id": "aBcDeFgHiJkLmN...",
"zpa_client_secret": "your-client-secret",
"zpa_cloud": "config.private.zscaler.com"
}'
ZPA Authentifizierung im Detail¶
Die ZPA API verwendet OAuth 2.0 Client Credentials:
- TCM365 fordert ein Access Token mit Client ID + Client Secret an
- ZPA gibt ein Bearer Token zurück
- Die
ZscalerAuthFactoryerneuert das Token 5 Minuten vor Ablauf (Pre-Expiry Buffer)
Rate Limits¶
Die Zscaler APIs haben strikte Rate Limits, die von der ZscalerRateLimiter Klasse in TCM365 automatisch eingehalten werden:
ZIA Rate Limits¶
| Operation | Limit | Fenster | Beschreibung |
|---|---|---|---|
| Read | 80 Requests | 10 Sekunden | GET Anfragen (Snapshot, Drift) |
| Write | 10 Requests | 10 Sekunden | PUT/POST/DELETE (Rollback, Apply) |
ZPA Rate Limits¶
| Operation | Limit | Fenster | Beschreibung |
|---|---|---|---|
| Alle | 15 Requests | 10 Sekunden | Alle API Anfragen (Read + Write) |
Rate Limiter Verhalten¶
Die ZscalerRateLimiter implementiert ein Sliding-Window Verfahren:
- Requests werden in einem Zeitfenster gezaehlt
- Bei Erreichen des Limits werden weitere Requests verzögert (nicht abgelehnt)
- Die Verzögerung wird automatisch berechnet bis das Fenster zurückgesetzt wird
- Retry-Logik bei
429 Too Many RequestsAntworten
Rate Limit Ueberschreitung
Eine wiederholte Ueberschreitung der Zscaler Rate Limits kann zu einer temporaeren IP-Sperre führen. TCM365 verhindert dies durch den eingebauten Rate Limiter. Deaktivieren Sie den Rate Limiter niemals in Produktionsumgebungen.
Zscaler Resource Types¶
ZIA Resource Types (12 Gruppen)¶
| Resource Type | Beschreibung | Endpoint-Gruppe |
|---|---|---|
zscaler.zia.urlFilteringRules |
URL Filtering Regeln | URL Filtering |
zscaler.zia.firewallRules |
Firewall Regeln | Firewall |
zscaler.zia.dlpDictionaries |
DLP Woerterbuecher | DLP |
zscaler.zia.dlpEngines |
DLP Engines | DLP |
zscaler.zia.sslInspectionRules |
SSL Inspection Regeln | SSL Inspection |
zscaler.zia.locationManagement |
Standortverwaltung | Location |
zscaler.zia.userManagement |
Benutzerverwaltung | Users |
zscaler.zia.adminUsers |
Admin-Benutzer | Admin |
zscaler.zia.vpnCredentials |
VPN Credentials | VPN |
zscaler.zia.trafficForwarding |
Traffic Forwarding | Forwarding |
zscaler.zia.securityPolicy |
Sicherheitsrichtlinien | Security |
zscaler.zia.sandboxSettings |
Sandbox Einstellungen | Sandbox |
ZPA Resource Types (9 Gruppen)¶
| Resource Type | Beschreibung | Endpoint-Gruppe |
|---|---|---|
zscaler.zpa.appSegments |
Application Segments | App Segments |
zscaler.zpa.segmentGroups |
Segment Groups | Segment Groups |
zscaler.zpa.serverGroups |
Server Groups | Server Groups |
zscaler.zpa.appConnectorGroups |
App Connector Groups | Connectors |
zscaler.zpa.accessPolicies |
Access Policies | Policies |
zscaler.zpa.timeoutPolicies |
Timeout Policies | Policies |
zscaler.zpa.forwardingPolicies |
Forwarding Policies | Policies |
zscaler.zpa.inspectionPolicies |
Inspection Policies | Policies |
zscaler.zpa.provisioningKeys |
Provisioning Keys | Provisioning |
Zscaler Baseline Templates¶
TCM365 beinhaltet 4 Zscaler-spezifische Baseline Templates:
| Template | Regeln | Fokus |
|---|---|---|
| ZIA Security Best Practices | 10 | ZIA Sicherheitskonfiguration |
| ZPA Zero Trust Access | 9 | ZPA Access Policies und Segmentierung |
| ZIA DLP | 8 | Data Loss Prevention Regeln |
| Zscaler Hardening | 8 | Cross-Produkt Hardening |
Cross-Vendor Framework Mapping
Zscaler Baseline Rules enthalten isoMapping und nis2Mapping Felder, die Zscaler-spezifische Regeln mit ISO 27001 und NIS2 Anforderungen verknüpfen. Dies ermöglicht Cross-Vendor Compliance Reporting.
Credential-Speicherung¶
Alle Zscaler Credentials werden verschlüsselt in der Datenbank gespeichert:
| Feld | Entity | Verschlüsselung |
|---|---|---|
zia_api_key |
ZscalerVendorTenant |
AES-256 (EncryptionService) |
zia_admin_password |
ZscalerVendorTenant |
AES-256 (EncryptionService) |
zpa_client_secret |
ZscalerVendorTenant |
AES-256 (EncryptionService) |
In Produktionsumgebungen wird die Azure Key Vault SecretBackend verwendet. Im Entwicklungsmodus wird LocalAES mit dem APP_SECRET_KEY genutzt.
Troubleshooting¶
ZIA Authentifizierung schlägt fehl¶
Ursache: Falscher API Key oder ungueltige Admin Credentials.
Lösung:
- API Key in der ZIA Admin Console verifizieren
- Admin Account ist nicht gesperrt prüfen
- Cloud Instanz ist korrekt verifizieren (z.B.
zscalertwo.netstattzscaler.net)
ZPA Token Request schlägt fehl¶
Ursache: Ungueltiger Client ID/Secret oder deaktivierter API Client.
Lösung:
- API Client ist in der ZPA Console als "Enabled" markiert verifizieren
- Client Secret wurde korrekt kopiert (keine Leerzeichen am Anfang/Ende)
- Customer ID stimmt mit dem ZPA Account ueberein
Rate Limit Warnungen in Logs¶
Symptome: Warnmeldungen über Rate Limiting in den Backend Logs.
Lösung: Dies ist normales Verhalten. Der ZscalerRateLimiter verzögert Requests automatisch. Bei haefigen Warnungen den Snapshot-Intervall reduzieren.
Leere Snapshot-Daten für einzelne Resource Types¶
Ursache: Der API Account hat keine Berechtigung für diesen Resource Type.
Lösung: Admin-Berechtigungen des API Accounts in der Zscaler Console prüfen. Der Account benötigt mindestens Lesezugriff auf alle zu erfassenden Resource Types.