Zum Hauptinhalt springen
Version: Weekly Build

Einschränkung des Domain-Zugriffs

Der Zugriff auf Anwendungen und Services kann auf Domain- oder auf Anwendungs- und Service-Ebene eingeschränkt werden. Dieser Leitfaden beschreibt die verfügbaren Methoden, um den öffentlichen Zugriff auf Workloads in Codesphere zu begrenzen.

Verwendung der plattforminternen Einschränkungen

Codesphere bietet integrierte Plattformfunktionen zur Zugriffskontrolle auf Infrastrukturebene, einschließlich teambasierter Authentifizierung, Privatsphäre für Dev-Domains und Zugriffskontrolle auf Port-Ebene.

Einschränkung von benutzerdefinierten Domains auf das Team

Die Funktion Restrict to Team erzwingt die Authentifizierung auf Domain-Ebene. Wenn diese aktiviert ist, können nur Benutzer, die bei Codesphere angemeldet und Mitglieder des zugehörigen Teams sind, auf die Anwendungs-URL zugreifen.

So wird eine benutzerdefinierte Domain auf Teammitglieder eingeschränkt:

  1. Zum Tab Domains im Team Dashboard navigieren
  2. Die zu konfigurierende Domain oder Subdomain suchen
  3. Auf Settings (Zahnradsymbol) neben der Domain klicken
  4. Zum Tab Routing wechseln
  5. Den Schalter Domain Access auf Private stellen
  6. Auf Save changes klicken

Einstellungen für den Domain-Zugriff

So funktioniert es

Sobald diese Funktion aktiv ist, werden alle HTTP-Anfragen an die Domain abgefangen. Nicht authentifizierte Besucher werden zur Codesphere-Anmeldeseite weitergeleitet. Der Zugriff wird nur nach erfolgreicher Authentifizierung mit einem gültigen Teammitglied-Konto gewährt.

tipp

Weitere Informationen zum Hinzufügen und Konfigurieren benutzerdefinierter Domains finden sich im Leitfaden Benutzerdefinierte Domain verbinden.

Einschränkung von Dev-Domains

Dev-Domains sind automatisch generierte URLs, die Codesphere jedem Workspace zuweist. Sie folgen dem Format <workspace-id>.<data-center>.<your-codesphere-instance-domain> (z. B. 4220.1.codesphere.corp42.net).

So wird der Zugriff auf eine Dev-Domain eingeschränkt:

  1. Zu den Workspace-Einstellungen navigieren
  2. Den Dialog Edit Workspace öffnen
  3. Die Sichtbarkeit des Workspace auf Private setzen

Sobald die Domain privat ist, ist die Dev-Domain nur für Teammitglieder zugänglich, die in ihrem Codesphere-Konto angemeldet sind.

Zugriff auf eingeschränkte Domains

Wenn eine Domain auf eingeschränkt (privat) gesetzt ist, können nur Mitglieder des eigenen Teams auf die dort gehosteten Inhalte zugreifen. Benutzern stehen zwei Authentifizierungsoptionen zur Verfügung:

Option 1: Anmeldung im Browser

Teammitglieder können auf eingeschränkte Domains zugreifen, indem sie sich in ihrem Browser bei ihrem Codesphere-Konto anmelden. Nach erfolgreicher Authentifizierung haben sie Zugriff auf alle eingeschränkten Domains, die mit ihrem Team verknüpft sind.

Option 2: Authentifizierung per API-Key

Für programmatischen Zugriff oder Aufrufe der API einer Anwendung können sich Benutzer mit ihrem API-Key authentifizieren.

So wird die Authentifizierung per API-Key verwendet:

Den API-Key im Anfrage-Header angeben:

X-CS-Authorization: Bearer [YOUR-API-KEY]

Beispiel mit curl:

curl -H "X-CS-Authorization: Bearer YOUR-API-KEY" https://your-restricted-domain.com

API-Key abrufen

Der API-Key kann in den Codesphere-Benutzereinstellungen im Bereich API Keys erstellt und verwaltet werden.

Konfiguration des Zugriffs auf Port-Ebene

Standardmäßig geben Services ihre Ports nicht öffentlich frei. Services, die keinen öffentlichen Internetzugriff benötigen (z. B. Datenbanken, Worker-Knoten), können ausschließlich Internal Ports für die sichere Kommunikation innerhalb der Landscape nutzen. Der bevorzugte Weg, Services öffentlich verfügbar zu machen, ist die Verknüpfung eines internen Ports mit dem Path Router. Die Möglichkeit, öffentliche Workspace-Subdomains direkt für Ports freizugeben, dient der Kompatibilität mit eher traditionellen Frameworks.

So wird der Portzugriff konfiguriert:

  1. Den Landscape Config Editor über die Seitenleiste öffnen
  2. Auf Settings (Zahnradsymbol) für den jeweiligen Service klicken
  3. Zum Abschnitt Ports & Routes navigieren
  4. Die Einstellung der Portverfügbarkeit von Internal auf Public ändern

Ansicht der Ports- und Routen-Einstellungen mit Optionen für Routen-Freigabe und Netzwerkzugriff.

Service Discovery

Interne Ports verzichten auf eine öffentliche URL. Der Service bleibt für andere Services innerhalb desselben Workspace über den internen Hostnamen erreichbar: http://ws-server-<ws-id>-<service-name>:<port>.

Einschränkungen auf Anwendungsebene

Für Anforderungen an die Zugriffskontrolle, die nicht durch Plattformeinstellungen abgedeckt werden – etwa IP-Whitelisting oder benutzerdefinierte Authentifizierung für Nicht-Codesphere-Benutzer – müssen Einschränkungen über Anwendungs-Middleware implementiert werden.

Gängige Muster auf Anwendungsebene

  • IP-Whitelisting: Middleware implementieren (z. B. express-ipfilter für Node.js), um den Header X-Forwarded-For zu prüfen und Anfragen von nicht autorisierten IP-Adressen abzulehnen
  • Basic Auth: Eine Bibliothek verwenden (z. B. express-basic-auth für Node.js), um einen Benutzernamen und ein Passwort zu verlangen, die innerhalb der Anwendungsumgebung definiert sind
  • Custom OAuth/SSO: Authentifizierungsanbieter von Drittanbietern für den Zugriff externer Benutzer integrieren

Granulare Kontrolle

Die Implementierung von Sicherheitsmaßnahmen auf Code-Ebene ermöglicht granulare Einschränkungen, etwa den Schutz bestimmter API-Routen, während statische Assets öffentlich bleiben.

Anwendungsfälle

Zugriffseinschränkungen sind besonders nützlich für:

  • Staging-Umgebungen – Verhindern des öffentlichen Zugriffs auf Test- und QA-Umgebungen
  • Interne Tools – Einschränkung des Zugriffs auf Admin-Panels und interne Dashboards
  • Entwicklungs-Workspaces – Anwendungen in Bearbeitung privat halten
  • Datenbank-Services – Verwendung interner Ports, um direkten externen Zugriff zu verhindern
  • Compliance-Anforderungen – Erfüllung von Sicherheitsrichtlinien, die eine Zugriffskontrolle vorschreiben