Zum Hauptinhalt springen
Version: Weekly Build

Domänenzugriff einschränken

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

Verwendung der integrierten Plattform-Einschränkungen​

Codesphere bietet integrierte Plattformfunktionen zur Zugriffskontrolle auf Infrastrukturebene, darunter teambasierte Authentifizierung, Datenschutz für Dev-Domains und Zugriffskontrolle auf Port-Ebene.

Benutzerdefinierte Domains auf Team beschränken​

Die Funktion Restrict to Team erzwingt eine Authentifizierung auf Domänenebene. 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 beschränkt man eine benutzerdefinierte Domain auf Teammitglieder:​

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

Domain Access Einstellungen

So funktioniert es

Wenn diese Option aktiv ist, werden alle HTTP-Anfragen an die Domain abgefangen. Nicht authentifizierte Besucher werden zur Codesphere-Anmeldeseite umgeleitet. Der Zugriff wird erst nach erfolgreicher Authentifizierung mit einem gültigen Teammitglieder-Konto gewährt.

tipp

Mehr über das Hinzufügen und Konfigurieren von benutzerdefinierten Domains erfährt man im Leitfaden Benutzerdefinierte Domain verbinden.

Dev-Domains einschränken​

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 noch 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 im Browser bei ihrem Codesphere-Konto anmelden. Nach der Authentifizierung haben sie Zugriff auf alle eingeschränkten Domains, die ihrem Team zugeordnet sind.

Option 2: Authentifizierung per API-Schlüssel​

Für programmatischen Zugriff oder Aufrufe der Anwendungs-API können Benutzer sich mit ihrem API-Schlüssel authentifizieren.

So wird die Authentifizierung per API-Schlüssel verwendet:​

Der API-Schlüssel muss im Request-Header enthalten sein:

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-Schlüssel abrufen

Der eigene API-Schlüssel kann in den Codesphere-Benutzereinstellungen im Bereich API Keys erstellt und verwaltet werden.

Zugriffskontrolle auf Port-Ebene konfigurieren​

Standardmäßig geben Services keine Ports öffentlich frei. Services, die keinen öffentlichen Internetzugriff benötigen (z. B. Datenbanken, Worker-Knoten), können ausschließlich Internal Ports für eine sichere Kommunikation innerhalb der Landscape nutzen. Der bevorzugte Weg, Services öffentlich zugänglich 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 (Zahnrad-Symbol) 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 Routes-Einstellungen mit Optionen für Route-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 validieren und Anfragen von nicht autorisierten IP-Adressen abzulehnen
  • Basic Auth: Eine Bibliothek verwenden (z. B. express-basic-auth für Node.js), um Benutzername und Passwort abzufragen, die in der Anwendungsumgebung definiert sind
  • Benutzerdefiniertes OAuth/SSO: Drittanbieter-Authentifizierungsdienste für den Zugriff externer Benutzer integrieren
Granulare Kontrolle

Die Implementierung von Sicherheit auf Code-Ebene ermöglicht granulare Einschränkungen, etwa den Schutz bestimmter API-Routen bei gleichzeitig öffentlich zugänglichen statischen Assets.

Anwendungsfälle​

Zugriffsbeschrä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 – Geheimhaltung von Anwendungen, die sich noch in Bearbeitung befinden
  • Datenbank-Services – Nutzung interner Ports, um direkten externen Zugriff zu verhindern
  • Compliance-Anforderungen – Erfüllung von Sicherheitsrichtlinien, die eine Zugriffskontrolle vorschreiben