ArcGIS Online und Portal for ArcGIS

Da die folgenden Angaben für ArcGIS Online und Portal for ArcGIS gleichermaßen gelten, wird zur besseren Lesbarkeit nur von ArcGIS Online gesprochen.

ArcGIS Online kann als Nutzerverwaltung für map.apps verwendet werden. Dies bedeutet, dass ein Nutzer sich mit einem ArcGIS Online Account bei map.apps anmelden kann. Gruppen und Rollen eines ArcGIS Online Nutzers werden in Rollen für map.apps übersetzt. Durch eine Verknüpfung mit ArcGIS Online entstehen folgende Möglichkeiten:

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

  • Absicherung von Apps

  • Absicherung von Werkzeugen

  • Nutzung von nicht öffentlichen Inhalten wie Webmaps oder Layern ohne erneute Anmeldung (Single Sign-On)

Einschränkungen
  • Dieser Modus ist nicht für dynamische Lastverteilung geeignet.

  • Bei der Anmeldung an ArcGIS Online wird ein Token für die Nutzung geschützter Ressourcen registriert. Da dieses nicht automatisch erneuert wird, ist nach einiger Zeit ein erneuter Login notwendig.

Konfiguration der Verknüpfung

Die folgenden Parameter müssen in der map.apps Konfiguration ergänzt oder geändert werden.

security.integrated.agol.enabled

Aktiviert die ArcGIS Online Nutzerverwaltung. Mögliche Werte sind true oder false. Der Standardwert ist false.

Die vorkonfigurierten Nutzer admin und editor können weiterhin genutzt werden.
security.integrated.agol.organization

Dieser Parameter enthält den Domain-Namen der ArcGIS Online Organisation. Der Standardwert ist www.arcgis.com. Wenn der Wert auf eine Organisation gesetzt wird, sind Anmeldungen nur für Nutzer dieser Organisation möglich.

security.integrated.agol.expirationInMinutes

Dieser Wert definiert die Lebensdauer des Tokens, welches mit dem Login bei ArcGIS Online abgefragt wird. Der Standardwert ist 60 (1 Stunde). Dieser Wert beeinflusst, nach welcher Zeit ein erneuter Login notwendig ist, wenn geschützte Ressourcen von ArcGIS Online genutzt werden.

security.integrated.agol.tokenreferer=<mapapps basis url>

Dieser Parameter muss die externe Basis-URL der map.apps-Installation enthalten (z.B. https://<yourserver>/mapapps). Stimmt der Wert nicht mit der URL im Browser des Nutzers überein, so ist das von ArcGIS Online erzeugte Token nicht anwendbar und es können keine geschützten Ressourcen abgefragt werden, selbst wenn der Login erfolgreich ist.

Die Konfiguration sieht also z.B. wie folgt aus:

security.integrated.agol.enabled=true
security.integrated.agol.organization=myorg.maps.arcgis.com
security.integrated.agol.tokenreferer=https://<yourserver>/mapapps

Nutzung von ArcGIS Online Eigenschaften als Rollen in map.apps

Automatische Zuordnung

Rollen

ArcGIS Online Rollen werden standardmäßig wie folgt übersetzt:

Rolle ArcGIS Online map.apps Rolle Beschreibung

org_admin

maAdmin

ArcGIS Online Administratoren werden zu map.apps Administratoren.

org_publisher

maEditor

ArcGIS Online Publisher werden zu map.apps Editoren.

Alle anderen Rollen werden ohne Änderung von ArcGIS Online übernommen, z.B. org_user.

Gruppen

ArcGIS Online Gruppen bestehen aus einer ID, einem Titel und einem Besitzer. Da die ID einer Gruppe in ArcGIS Online nicht direkt ersichtlich ist und eine Zuordnung somit schwierig wäre, wird eine Gruppe standardmäßig in eine map.apps Rolle der Form <Titel>::<Besitzer> übersetzt.

ArcGIS Online Gruppe map.apps Rolle

Wald (ID: a24534, Owner: user1)

Wald::user1

Wasser (ID: a345b4, Owner: user2)

Wasser::user2

Organisation

Gehört der ArcGIS Online Nutzer zu einer Organisation, so wird der Domain-Name der Organisation als map.apps Rolle registriert.

Beispiel: myorg.maps.arcgis.com

Anpassung der Zuordnung

Die Art, wie ArcGIS Online Rollen, Gruppen und Organisationen in map.apps Rollen übersetzt werden, kann in der Datei spring-security-agol-config.xml angepasst werden. Dazu muss der Eintrag agolRoleMapping editiert werden.

Eine ArcGIS Online Rolle umbenennen
<util:map id="agolRoleMapping">
    <!-- ArcGIS Online Administrator wird zu map.apps Administrator -->
    <entry key="org_admin" value="maAdmin"/>

    <!-- ArcGIS Online Publisher wird zu map.apps Editor -->
    <entry key="org_publisher" value="maEditor"/>

    <!-- ArcGIS Online Nutzer bekommt "user" Rolle in map.apps -->
    <entry key="org_user" value="user"/>
</util:map>
Eine ArcGIS Online Gruppe in eine map.apps Rolle umbenennen
<util:map id="agolRoleMapping">
    <!-- ArcGIS Gruppe "Test" mit ID "Q123469" und Besitzer "auser" wird zu Rolle "TestUser" in map.apps -->
    <entry key="Q123469" value="TestUser"/>

    <!-- Alternativ kann das Standard-Mapping verwendet werden -->
    <entry key="auser@@Test" value="TestUser"/>
</util:map>
Eine ArcGIS Online Organisation in eine map.apps Rolle umbenennen
<util:map id="agolRoleMapping">
    <!-- ArcGIS Organisation "myorganization.maps.arcgis.com" wird zu Rolle "MyOrganization" in map.apps -->
    <entry key="myorganization.maps.arcgis.com" value="MyOrganization"/>
</util:map>

Anmeldung auf Nutzer bestimmter Organisationen beschränken

Um die ArcGIS Online Anmeldung auf bestimmte Organisationen einzuschränken, gibt es folgende Möglichkeiten:

  • Konfiguration des Parameters security.integrated.agol.organization mit dem Domain-Namen einer konkreten Organisation

  • Änderung der Konfiguration in der Datei spring-security-agol-config.xml. Der Eintrag agolAllowedOrganizations muss editiert werden

<util:set id="agolAllowedOrganizations">
    <!-- Konkrete Domain-Namen hinzufügen -->
    <value>myorga.maps.arcgis.com</value>
</util:set>

Geschützte Webmapps und Dienste konsumieren

ArcGIS Online Nutzeranmeldung

Sobald eine geschützte Ressource (z.B. Webmap) von ArcGIS Online geladen wird, öffnet sich ein Anmeldefenster, in dem sich der Nutzer mit seinem ArcGIS Online Account einloggen muss.

Die folgenden beiden Optionen haben Einfluss auf den Mechanismus.

client.config.allowCredentialsOverHTTP

Definiert, ob die Anmeldeinformation auch über HTTP übertragen werden dürfen. Mögliche Werte sind true oder false. Im Falle von ArcGIS Online wird immer HTTPS verwendet. Um einen geschützten ArcGIS Server einzuladen, der ausschließlich HTTP unterstützt, setzen Sie diesen Parameter auf true.

client.config.persistIdentityManagerState

Definiert, ob der Zustand des JavaScript-Objektes esri/IdentityManager im Browser gespeichert wird. Es werden nur Token gespeichert, nicht Nutzername oder Passwort. Solange die gespeicherten Token gültig sind, muss sich ein Nutzer nicht erneut anmelden, wenn er eine App erneut aufruft.

esri.api.arcgisPortalUrl

Definiert die Basis URL von ArcGIS Online oder einer zentralen ArcGIS Portal Installation. Der Standardwert ist //www.arcgis.com. Der Wert kann auf die zentrale ArcGIS Online Organisation geändert werden. Dies ist interessant, wenn OAuth verwendet wird, da dann ein spezifischer Anmeldedialog angezeigt wird.

OAuth

Eine Abwandlung des Anmeldeverfahrens bei ArcGIS Online ist die Verwendung des OAuth2-Protokolls. Ist es aktiviert, wird der Nutzer bei einer erforderlichen Anmeldung auf eine zentrale Login-Seite von ArcGIS Online weitergeleitet. Die Voraussetzung zur Nutzung des Protokolls ist die Registrierung der map.apps bei ArcGIS Online.

Bei der App-Registrierung muss eine Redirect-URL angegeben werden. Die folgenden zwei Optionen sind möglich:.

OAuth Redirect URLs
// Popup Modus
https://<server>:<port>/<mapapps_context>/account/oauth-callback.html

// Browser Redirect Modus -> URL der App index.html
https://<server>:<port>/<mapapps_context>/resources/apps/<appname>/index.html

Nach der Registrierung der App in ArcGIS Online bekommt diese eine "App-ID".

Um OAuth zu aktivieren, müssen folgende Parameter im "properties" Abschnitt der App-Konfiguration ergänzt werden:

oauthEnabled = true

Aktiviert den OAuth Support.

oauthAppId = <app-ID>

Dies ist die App ID, die bei der Registrierung der App in ArcGIS Online erstellt worden ist.

oauthUsePopup = false

Dieser Parameter ist optional. Der Standardwert ist false. Legt fest, ob der Anmeldeprozess in einem Popup Fenster oder direkt durch Umleitung des Browsers erfolgt.

arcgisPortalUrl = <organistations url>

Diese Einstellung ist optional. Der Wert überschreibt die globale Einstellung esri.api.arcgisPortalUrl. Wenn der Wert auf eine ArcGIS Online Organisation zeigt, so wird ein organisationsspezifischer Anmeldedialog verwendet.

Die Parameter können über die manuelle Konfiguration im map.apps Manager editiert werden.

Zusätzlich muss die App folgende Bundles enthalten, damit OAuth bei Aufruf der App in map.apps angewandt wird:

  • agolauthn

  • authentication

  • forcelogin

oauth config properties