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/WFSServer wie folgt einschränken können:

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

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

Die Nutzung von Rollen, die durch den Identitätsanbieter zur Verfügung gestellt werden, wird im How-to Rollen eines Identitätsanbieter in Zugriffsrechten referenzieren.

Voraussetzung

Dieses Tutorial baut auf den Dateien auf, die Sie im Tutorial Zugriff auf WFS 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 beim 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 Zugriffsrecht-Datei aus dem Tutorial Zugriff auf WFS erlauben. Aktuell sind alle FeatureTypes für alle Personen freigegeben. Beschränken Sie das Zugriffsrecht auf den FeatureType World, wie im Tutorial Zugriff auf FeatureTypes steuern beschrieben:

${user.home}/.secman-ogc/policies/policies-grenzen-wfs.json
{
  "policies": [{
    "layers": ["World"],
    "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. Dieses soll für die Rolle enhancedSecurity_authenticated gelten und die FeatureTypes Bundeslaender und Kreise erlauben.

${user.home}/.secman-ogc/policies/policies-grenzen-wfs.json
{
  "policies": [
    {
      "layers": ["World"],
      "roles": ["enhancedSecurity_any"]
    },{
      "layers": ["Bundeslaender", "Kreise"],
      "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: http://localhost:8080/secman-ogc/arcgis/services/common/grenzen/MapServer/WFSServer?request=GetCapabilities&service=WFS.

In den Capabilities sehen Sie, dass Sie ohne Authentifizierung lediglich auf den FeatureType 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/WFSServer?request=GetCapabilities&service=WFS

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