map.apps User Management

Durch eine Verbindung mit map.apps User Management entstehen folgende Möglichkeiten:

  • Rollen für die Nutzung des map.apps Managers vergeben

  • Apps absichern

  • Werkzeuge absichern

Verbindung zwischen map.apps und map.apps User Management herstellen

Bei Erwerb der map.apps Usermanagement Erweiterung wird eine funktional eingeschränkte security.manager Version zur Verfügung gestellt. Im Folgenden wird daher zum Teil von Einstellungen im security.manager gesprochen.

Betrieb von map.apps und security.manager unter gleichem Host

Die folgenden Parameter müssen in der globalen 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).

# Hostname of the server running map.apps
security.allowed.hostnames=example.com

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.

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

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 des Zugangs ein- bzw. ausblenden.

Beispiel
 <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.

Beispiel einer app.jsp Datei
 <%@ 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 globalen 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
 ...