Zugriff an Rollen knüpfen

In diesem Tutorial lernen Sie, wie Sie den Zugriff auf den Ziel-Dienst https://services.conterra.de/arcgis/services/common/grenzen/MapServer/WMSServer wie folgt einschränken können:

  • alle Personen sollen auf den Layer World zugreifen dürfen

  • alle authentifizierte Personen sollen zudem auf die Layer Bundeslaender und Kreise zugreifen dürfen

Voraussetzung

Dieses Tutorial baut auf den Dateien auf, die Sie im Tutorial Zugriff auf WMS erlauben erstellt haben. Es gelten folgende Voraussetzungen:

  • Sie haben security.manager for OGC mit dem Identity Service verbunden.

  • Identity Service und security.manager for OGC sind im Browser über die gleiche Domäne erreichbar. In diesem Tutorial wird davon ausgegangen, dass

    • security.manager for OGC als localhost:8080/secman-ogc verfügbar ist und

    • Identity Service als localhost:8080/identity.

  • Sie besitzen einen Account bei dem Identitätsanbieter, der mit dem Identity Service verbunden ist. Das kann zum Beispiel ein Account in ArcGIS Portal oder Keycloak sein.

Zugriffsrecht für alle Nutzer:innen

Die Liste roles nennt alle Rollen, für die ein Zugriffsrecht gilt. Diese Rollen sind unter Rollen genauer beschrieben.

Öffnen Sie die Zugriffsrechte-Datei aus dem Tutorial Zugriff auf WMS erlauben. Aktuell sind alle Layer für alle Personen freigegeben. Beschränken Sie das Zugriffsrecht auf den Layer World (Name: 0), wie im Tutorial Zugriff auf Layer steuern beschrieben:

${user.home}/.secman-ogc/policies/policies-grenzen-wms.json
{
  "policies": [{
    "layers": ["0"],
    "roles": ["enhancedSecurity_any"]
  }]
}

Zugriffsrecht für authentifizierte Nutzer:innen

Nun fehlt noch ein Zugriffsrecht für den authentifizierten Zugriff. Fügen Sie deshalb ein weiteres Zugriffsrecht zur Liste policies hinzu. Diese soll für die Rolle enhancedSecurity_authenticated gelten und die Layer Bundeslaender (Name: 1) und Kreise (Name: 2) erlauben.

${user.home}/.secman-ogc/policies/policies-grenzen-wms.json
{
  "policies": [
    {
      "layers": ["0"],
      "roles": ["enhancedSecurity_any"]
    },{
      "layers": ["1", "2"],
      "roles": ["enhancedSecurity_authenticated"]
    }
  ]
}

Tomcat neustarten

Speichern Sie die Änderungen und starten den Tomcat neu, um die Änderungen zu übernehmen.

Konfiguration überprüfen

Die nächsten beiden Schritte demonstrieren, wie sich die Dienst-Antwort ändert, abhängig davon, ob Sie beim Identity Service ausgeloggt oder eingeloggt sind.

Zugriff ohne Authentifizierung

Für den Zugriff ohne Authentifizierung stellen Sie sicher, dass Sie beim Identity Service ausgeloggt sind, bevor Sie den geschützten Dienst aufrufen. Öffnen Sie hierzu einen neuen privaten Browser und rufen die URL des geschützten Dienstes auf: localhost:8080/secman-ogc/arcgis/services/common/grenzen/MapServer/WMSServer?request=GetCapabilities&service=WMS.

In den Capabilities sehen Sie, dass Sie ohne Authentifizierung lediglich auf den Layer World zugreifen können.

Zugriff mit Authentifizierung

Für den Zugriff mit Authentifizierung müssen Sie sich zuerst beim Identity Service einloggen, bevor Sie den geschützten Dienst erneut aufrufen. Rufen Sie hierzu die Startseite des konfigurierten Identity Service localhost:8080/identity/ auf und melden sich unter Login an. Anschließend rufen Sie wieder den geschützten Dienst auf: http://localhost:8080/secman-ogc/arcgis/services/common/grenzen/MapServer/WMSServer?request=GetCapabilities&service=WMS

Als authentifizierte Person können Sie nun neben dem Layer World auch auf die Layer Bundeslaender und Kreise zugreifen.