Zum Hauptinhalt springen
Version: Weekly Build

Zugriff auf Domains einschränken

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 integrierten Plattform-Einschränkungen​

Codesphere bietet integrierte Plattformfunktionen zur Zugriffskontrolle auf Infrastrukturebene, darunter Authentifizierung auf Basis von Resource Groups, Privatsphäre-Einstellungen für Dev-Domains und Zugriffskontrolle auf Portebene.

Benutzerdefinierte Domains auf eine Resource Group beschränken​

Die Funktion Restrict to Resource Group erzwingt eine Authentifizierung auf Domain-Ebene. Ist diese Funktion aktiviert, können nur Benutzer, die bei Codesphere angemeldet und Mitglied der zugehörigen Resource Group sind, auf die Anwendungs-URL zugreifen.

So wird eine benutzerdefinierte Domain auf Mitglieder einer Resource Group beschränkt:​

  1. Im Resource Group Dashboard zum Tab Domains navigieren
  2. Die zu konfigurierende Domain oder Subdomain auswählen
  3. Auf das Symbol Settings (Zahnrad) 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

Funktionsweise

Bei aktivierter Einstellung werden alle HTTP-Anfragen an die Domain abgefangen. Nicht authentifizierte Besucher werden zur Codesphere-Anmeldeseite weitergeleitet. Der Zugriff wird erst nach erfolgreicher Authentifizierung mit einem gültigen Konto eines Resource-Group-Mitglieds gewährt.

tipp

Mehr über das Hinzufügen und Konfigurieren benutzerdefinierter Domains erfährst du 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 eine Dev-Domain privat ist, kann nur noch auf sie zugegriffen werden, wenn man Mitglied der Resource Group ist und bei seinem Codesphere-Konto angemeldet ist.

Zugriff auf eingeschränkte Domains​

Wenn eine Domain auf eingeschränkt (privat) gesetzt ist, können nur Mitglieder der jeweiligen Resource Group auf die dort gehosteten Inhalte zugreifen. Dafür stehen zwei Authentifizierungsoptionen zur Verfügung:

Option 1: Anmeldung über den Browser​

Mitglieder einer Resource Group 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 mit ihrer Resource Group verknüpft sind.

Option 2: Authentifizierung per API-Key​

Für den programmatischen Zugriff oder Aufrufe an die API der Anwendung kann die Authentifizierung über einen API-Key erfolgen.

Verwendung der API-Key-Authentifizierung:​

Den API-Key im Request-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 erhalten

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

Steuerung der Erreichbarkeit von Services​

Services in einer Landscape sind standardmäßig nicht aus dem öffentlichen Internet erreichbar. Der gesamte externe Datenverkehr gelangt über einen einzigen Einstiegspunkt in die Landscape, das Landscape Gateway. Ein Service ist nur dann öffentlich erreichbar, wenn er selbst das Gateway ist oder wenn der Workspace Router einen Pfad an ihn weiterleitet.

Services, die keinen öffentlichen Internetzugriff benötigen (z. B. Datenbanken, Worker-Knoten), deklarieren nur ihre Ports und erhalten keine Pfadzuordnung im Router. Sie bleiben für die anderen Services innerhalb derselben Landscape über ihren internen Hostnamen erreichbar: http://ws-server-<ws-id>-<service-name>.workspaces:<port>.

Um festzulegen, welche Services öffentlich erreichbar sind, müssen das Landscape Gateway oder die Pfadzuordnungen des Workspace Router angepasst werden. Details dazu findest du unter Landscape Networking.

Einschränkungen auf Anwendungsebene​

Für Anforderungen an die Zugriffskontrolle, die von den Plattformeinstellungen nicht abgedeckt werden – wie etwa IP-Whitelisting oder benutzerdefinierte Authentifizierung für Nicht-Codesphere-Benutzer – müssen Einschränkungen über Anwendungs-Middleware umgesetzt 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 in der Anwendungsumgebung definiert sind
  • Benutzerdefiniertes OAuth/SSO: Authentifizierungsanbieter von Drittanbietern für den Zugriff externer Benutzer einbinden
Granulare Kontrolle

Durch die Implementierung von Sicherheitsmaßnahmen auf Code-Ebene lassen sich granulare Einschränkungen umsetzen, etwa der Schutz bestimmter API-Routen, während statische Assets weiterhin öffentlich zugänglich 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 – Geheimhaltung von Anwendungen, die sich noch in Arbeit befinden
  • Datenbank-Services – Verwendung interner Ports, um direkten externen Zugriff zu verhindern
  • Compliance-Anforderungen – Erfüllung von Sicherheitsrichtlinien, die eine Zugriffskontrolle vorschreiben