Einen Dienst absichern, der Authentifizierung erfordert

In diesem How-to wird beschrieben, wie Sie einen Dienst absichern, der HTTP Basic Authentication für den Zugriff erfordert.

Manche Server, die Sie mit dem security.manager for OGC absichern möchten, erfordern eine Nutzer-Authentifizierung über HTTP Basic Authentication. Sie können in der Server-Konfiguration einen Nutzername und ein Passwort hinterlegen, die security.manager for OGC für den Zugriff auf den Dienst verwenden soll.

Nutzername und Passwort hinterlegen

Nutzername und Passwort, die security.manager for OGC für den Zugriff auf den Dienst verwenden soll, geben Sie in der Server-Konfiguration für den gesamten geschützten Server an:

{
    "server": {
        "host": "https://gisserver.example.com",
        "serverAuthn": {
            "type": "basic",
            "username": "alice",
            "password": "alicespassword"
       },
        "services": [
            {
                "path": "/path/to/nature/wms",
                "type": "WMS",
                "policy-ref": "my-policy"
            }
        ]
    }
}

Die Werte für die serverAuthn-Eigenschaft werden in der Referenz der Server-Konfiguration beschrieben.

In diesem Beispiel authentifiziert sich security.manager for OGC mit dem Nutzernamen alice und dem Passwort alicespassword gegenüber dem Server https://gisserver.example.com. Die Authentifizierungsdaten werden für alle Dienste verwendet, die auf diesem Server konfiguriert sind.

Nutzername und Passwort als Umgebungsvariablen hinterlegen

Um zu vermeiden, dass sensible Daten wie Nutzername und Passwort in der Server-Konfiguration im Klartext gespeichert werden, können Sie diese auch als Referenzen auf Umgebungsvariablen hinterlegen. In der Server-Konfiguration verweisen Sie dann auf die entsprechenden Umgebungsvariablen:

{
    "server": {
        "host": "https://gisserver.example.com",
        "serverAuthn": {
            "type": "basic",
            "username": "${GISSERVER_USERNAME}",
            "password": "${GISSERVER_PASSWORD}"
        },
        "services": [
            {
                "path": "/path/to/nature/wms",
                "type": "WMS",
                "policy-ref": "my-policy"
            }
        ]
    }
}

In diesem Beispiel werden die Umgebungsvariablen GISSERVER_USERNAME und GISSERVER_PASSWORD für den Nutzernamen und das Passwort verwendet. Die Umgebungsvariablen müssen Sie so definieren, dass sie beim Start des Tomcat Servers, in dem security.manager for OGC läuft, verfügbar sind.

Nutzername und Passwort in secrets.properties speichern

Sie können sensible Daten wie Nutzername und Passwort in der secrets.properties-Datei in der Konfiguration hinterlegen. In dieser Datei können Sie beliebige Schlüssel mit den entsprechenden Werten definieren und diese dann in der server-config.json referenzieren.

Beispielsweise speichern Sie den Nutzernamen und das Passwort des zu schützenden GIS-Servers in der Datei secrets.properties:

secrets.properties
# Zugangsdaten für GIS-Server
gisserver.username=alice
gisserver.password=alicespassword

Dann referenzieren Sie die Schlüssel in der server-config.json-Datei:

server-config.json
{
    "server": {
        "host": "https://gisserver.example.com",
        "serverAuthn": {
            "type": "basic",
            "username": "${gisserver.username}",
            "password": "${gisserver.password}"
        },
        "services": [
            {
                "path": "/path/to/nature/wms",
                "type": "WMS",
                "policy-ref": "my-policy"
            }
        ]
    }
}