Erweiterte Einstellungen
Die folgenden Parameter können in der Konfiguration geändert werden.
jsregistry.browsing.enabled
-
Dieser Parameter aktiviert bzw. deaktiviert die HTML basierte Suche in der JS-Registry (
/resources/jsregistry/root
). Standardmäßig ist die Funktion aktiviert (true
). 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.Beispiel:
security.embedding.allowed.origins=https://my‑example.com:8080,https://demos.de
Standard:<leer>
security.responseHeaders.common
-
Liste von HTTP Headern gemäß der Antwort-Header Syntax. Die Header werden an jede Antwort des map.apps Backend-Service geschrieben. Die Konfiguration sollte nur bei besonderen Sicherheitsanforderungen verändert werden.
Standardmäßig werden folgende Header ergänzt:
-
X-Content-Type-Options:nosniff
: Definiert, dass der Browser Serverantworten nur auf Basis desContent-Type
Headers interpretieren darf (MDN ). -
Strict-Transport-Security:max-age=604800
: Wirkt nur wenn map.apps via HTTPS verwendet wird. Definiert, dass der Browser sich merken soll, dass der Host für 7 Tage (604800 Sekunden) nicht mehr per HTTP angefragt werden darf (MDN ).
Beispiel:
security.responseHeaders.common=X-Content-Type-Options:nosniff,Strict-Transport-Security:max-age=604800
Standard:
X-Content-Type-Options:nosniff,Strict-Transport-Security:max-age=604800
-
security.responseHeaders.manager
-
Liste von HTTP Headern gemäß der Antwort-Header Syntax. Die Header werden beim Ausliefern der map.apps manager HTML Seiten, wie
/manager
oder/account/login/
, ergänzt. Die Konfiguration sollte nur bei besonderen Sicherheitsanforderungen verändert werden.Standardmäßig werden folgende Header ergänzt:
Beispiel:
security.responseHeaders.manager=Referrer-Policy:same-origin, Content-Security-Policy:default-src 'self'
Standard:
Referrer-Policy:same-origin, Content-Security-Policy:default-src 'self'; script-src 'self' https://demos.conterra.de https://api.github.com; connect-src 'self' https: http:; img-src 'self' data: https:; worker-src 'self' blob:; style-src 'self' 'unsafe-inline'; base-uri 'self'; form-action 'self'
security.responseHeaders.apps
-
Liste von HTTP Headern gemäß der Antwort-Header Syntax. Die Header werden beim Ausliefern der map.apps App HTML Seiten, wie
/resources/apps/<app>/index.html
, ergänzt. Die Konfiguration sollte nur bei besonderen Sicherheitsanforderungen verändert werden.Standardmäßig werden folgende Header ergänzt:
Beispiel:
security.responseHeaders.manager=Referrer-Policy:same-origin, Content-Security-Policy:default-src 'self'
Standard:
Referrer-Policy:same-origin,Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-eval' https: http:; worker-src 'self' blob:; connect-src 'self' https: http:; img-src 'self' data: blob: https: http:; style-src 'self' 'unsafe-inline'; base-uri 'self'; form-action 'self'
Antwort-Header Syntax
Um eine Liste von Antwortheadern zu definieren, verwenden Sie folgende Syntax:
|
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 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 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
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
...