Erweiterte Einstellungen
Die folgenden Parameter können in der Konfiguration geändert werden.
- security.ssl.trustAny
-
Dieser Parameter aktiviert die Unterstützung für selbst signierte Zertifikate bei HTTPS-Verbindungen. Standardmäßig ist die Funktion deaktiviert (
false
). - security.login.redirect.trusted.hosts
-
Komma-separierte Liste von akzeptierten Hostnamen. Diese Liste definiert, welche Ziele zur Weiterleitung (Redirect) akzeptiert werden, wenn map.apps am Ende des Login-Prozesses den Browser zur nächsten Seite weiterleitet. Dies stellt sicher, dass Angreifer den Nutzer nicht unter Vorlage einer entsprechenden URL auf eine bösartige Seite lenken können.
Wenn eine Applikation den Nutzer zum Login auf map.apps umleitet und die Applikation unter einem anderen Hostnamen als map.apps aufgerufen wird, müssen hier die entsprechenden Hostnamen hinzugefügt werden. Dies ist z.B. häufig bei der Nutzung von Entwicklungsprojekten der Fall.
Sie können Wildcards verwenden, um z.B. Redirects auf alle Rechner einer Domäne zu erlauben.
Beispiel:
*.gishost.org
Standard:localhost
- security.embedding.allowed.origins
-
Komma-separierte Liste von Quellen, die map.apps in einem iFrame einbetten dürfen. Ist die einbettende Seite nicht erlaubt, wird den Responses der Anfrage der
X-Frame-Options: DENY
Header hinzugefügt.Wenn die einbettende Seite die gleiche Quelle wie das einzubettende map.apps hat, wird der Zugriff erlaubt und der
X-Frame-Options: SAMEORIGIN
Header gesetzt.Beispiel:
security.embedding.allowed.origins=https://my‑example.com:8080,https://demos.de
Standard:<leer>
Verwendung von SAML2 Single Sign-on
Für die nachfolgenden Einstellungen ist eine Verknüpfung von map.apps mit security.manager oder map.apps Usermanagement erforderlich. |
Es ist nicht möglich, den integrierten map.apps-Anmeldedialog und SAML2 gleichzeitig zu verwenden. |
map.apps kann in SAML2 Single Sign-on-Szenarien verwendet werden. Die verwendete security.manager Instanz muss in diesem Fall mit mindestens einem Indentity Provider (IDP) vorkonfiguriert sein. Es ist möglich die security.manager Anmeldeseite mit einer integrierten IDP-Auswahl zu verwenden. Für diesen Fall wird folgende Konfiguration benötigt:
##### Security Properties ##############
...
# security.manager service locations
security.administration.url=https://myserver:443/administration
Um den IDP direkt zu verwenden, ohne die security.manager Anmeldeseite anzuzeigen, ist folgende Konfiguration erforderlich:
##### Security Properties ##############
...
# security.manager service locations
security.administration.url=https://myserver:443/administration
Nutzerspezifische Bereitstellung von Bundles und Widgets
Nachfolgendes gilt nur für Apps, die im Dateisystem - also bei Verzicht auf den map.apps Manager - abgelegt sind. Außerdem ist eine Verknüpfung von map.apps mit security.manager oder map.apps Usermanagement erforderlich. |
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-lib
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 Nutzers 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 der Nutzer die Rolle myRole
besitzt.
Dieser tag
kann an jeder beliebigen Stelle in der Datei verwendet werden (zum Beispiel um verschiedene Komponenten aus der allowedBundles
-Definition oder Werkzeuge aus der Werkzeugliste aus- bzw. einzuschließen).
<%@ 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",
"resultcenter",
"contentviewer",
<s:isInRole role="sM_Administrator">"selection",</s:isInRole>
"infoviewer",
"toolset",
"toolrules",
"authentication"
]
},
"bundles": {
...
}
}
Um den Inhalt einer JSP-Datei in eine app.json
umzuwandeln, ist es notwendig die Datei innerhalb der Konfiguration zu referenzieren.
...
security.application.jspMappings=.......,/js/apps/{YourApp}/app.json
...