security.manager - Enterprise Edition
Dieser Abschnitt bezieht sich ausschließlich auf die Verbindung von map.apps mit security.manager Enterprise Edition. |
Durch eine Verbindung mit security.manager entstehen folgende Möglichkeiten:
-
Rollen für die Nutzung des map.apps Managers vergeben
-
Apps absichern
-
Werkzeuge absichern
-
Abgesicherte Dienste ohne erneute Anmeldung (Single Sign-On) nutzen
Verbindung zwischen map.apps und security.manager herstellen
Betrieb von map.apps und security.manager unter gleichem Host
Die folgenden Parameter müssen in der map.apps Konfiguration ergänzt oder geändert werden.
security.mode=ONLY_AUTHN
# security.manager adminstration service location
security.administration.url=https://<yourserver>/administration
# Key Store Location.
# This is the path to the keystore (`.keystore` file) shared by security.manager and map.apps
security.keystore.location=C:/data/conterra/.keystore
Wenn im security.manager weitergehende Einstellungen zum Keystore verändert sind (z.B. Passwort), müssen diese ebenfalls in der map.apps Konfiguration ergänzt werden.
Betrieb von map.apps und security.manager auf unterschiedlichen Hosts
Wenn security.manager auf einem anderen Server installiert ist als map.apps, muss die keystore-Datei auf den map.apps Server kopiert werden.
Zusätzlich zu den im vorherigen Abschnitt beschriebenen Einstellungen muss zudem der folgende Parameter in der security.manager Konfiguration ergänzt oder geändert werden (wobei example.com
der Name des Hosts ist, auf dem map.apps installiert ist).
security.allowed.hostnames=example.com
Für map.apps ist es zudem notwendig die Option proxy.cors.trustedServers
zu konfigurieren.
# Kommaseparierte Liste von Servern:
proxy.cors.trustedServers=https://securitymanager.example.com:8443
Selbstregistrierung und Passwort-Wiederherstellungsoptionen verwenden
Um die Selbstregistrierungs- und/oder Passwort-Wiederherstellungsoptionen des security.manager zu nutzen, kann map.apps auf die Anmeldeseite des security.manager verwiesen werden (anstatt den integrierten Anmeldedialog zu verwenden).
Ändern Sie die folgende Eigenschaft:
security.login.service.url=https://yourserver/administration/account/login
Benutzung des map.apps Manager
Um in einem SSO-Szenario mit security.manager den map.apps Managers nutzen zu können, ist es erforderlich, eine map.apps Administrationsrolle zu vergeben.
Dazu muss die Rolle maAdmin
im security.manager angelegt werden und dem Zugang zugewiesen werden, mit welchem der map.apps Manager benutzt werden soll.
Geschützte Dienste verwenden
Dienste, die über security.manager geschützt sind, werden ähnlich wie nicht geschützte Dienste in einer App konfiguriert. Anstelle der Original-URL des Dienstes muss der vom security.manager bereitgestellte SSO-Endpunkt verwendet werden.
Nach der Authentifizierung wird das Domain-Cookie an jeder Anfrage ergänzt, die vom Browser gesendet wird (z.B. Aktualisierung der Karte). Der security.manager SSO-Endpunkt wird anschließend sämtliche Rechte anwenden, die in der Rechteverwaltung für den jeweiligen Zugang definiert sind (z.B. das Anzeigen bestimmter Layer eines Dienstes).
Nach einem Logout, wird das Domain-Cookie zerstört und der Zugriff auf die geschützten Dienste ist nicht länger möglich.
...
{
"id":"secured_countries",
"type":"AGS_DYNAMIC",
"url":"https://myserver:443/wss/service/myAGS/sso/MyData/MapServer",
"layers":[{
"id":"3",
"title":"Countries"
}]
}
...
Rollenbasierte Bereitstellung von Bundles und Widgets
Nachfolgendes gilt nur für Apps, die im Dateisystem - also bei Verzicht auf den map.apps Manager - abgelegt sind. |
Führen Sie folgende Schritte durch, um Funktionalität in Form von Bundles und Widgets rollenbasiert freizugeben.
Konfigurieren Sie zunächst eine App mit dem map.apps Manager und exportieren diese.
Die entpackte App wird danach im map.apps-Installationsverzeichnis unter folgendem Pfad abgelegt: {map.apps dir}\js\apps\YourApp
.
Der Unterordner apps/
muss ggf. vorher im Dateisystem erstellt werden und die Datei app.json
in app.jsp
umbenannt werden.
Es ist möglich, eine security.manager-Bibliothek zu verwenden, um spezielle Konfigurationen innerhalb einer App-Konfigurations-Datei ein- bzw. auszufiltern.
Dieses Vorgehen verwendet die security.manager Tag Library und erfordert die Definition einer JSP-Datei (app.jsp
) anstelle einer JSON-Datei (app.json
).
Bis auf eine spezielle Kopfzeile ist der Inhalt der Dateien jedoch identisch.
Sobald die JSP-Datei vom Server angefragt wird, wird sie in eine JSON-Datei ohne zusätzliche Kopfzeile transformiert.
Innerhalb der JSP-Datei können spezielle Tags definiert werden, die bestimmte Inhalte anhand der Rolle eines Zugangs ein- bzw. ausblenden.
<s:isInRole role="myRole">"selection"</s:isInRole>
In diesem Beispiel wird die Zeichenkette selection
nur dann innerhalb der Datei hinzugefügt, wenn die Person die Rolle myRole
besitzt.
Dieser tag
kann an jeder beliebigen Stelle in der Datei verwendet werden.
Beispielsweise wenn Sie verschiedene Komponenten aus der allowedBundles
-Definition oder Werkzeuge aus der Werkzeugliste aus- bzw. einschließen möchten.
<%@ page contentType="application/json; charset=UTF-8" pageEncoding="UTF-8" language="java" session="false" isThreadSafe="true" isELIgnored="true"%><%@ taglib uri="https://www.conterra.de/security/tags" prefix="s"%>{
"load": {
"allowedBundles": [
"system",
"map",
"themes",
"templates",
"templatelayout",
"windowmanager",
"coordinatetransformer",
"result-ui",
"contentviewer",
<s:isInRole role="sM_Administrator">"selection",</s:isInRole>
"infoviewer",
"toolset",
"toolrules",
"authentication"
]
},
"bundles": {
...
}
}
Um den Inhalt einer JSP-Datei in eine app.json
Datei umzuwandeln, ist es notwendig die Datei innerhalb der Konfiguration zu referenzieren und die App in die Liste der protectedAnonymousResources
aufzunehmen.
...
security.application.jspMappings=.......,/js/apps/{YourApp}/app.json
security.application.protectedAnonymousResources=/js/sample/,/js/sample/*.html,**/appauthorization/app.json,**/{YourApp}/app.json
...