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
|
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
oderfalse
. Der Standardwert istfalse
.Die vorkonfigurierten Nutzer admin
undeditor
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 |
---|---|---|
|
|
ArcGIS Online Administratoren werden zu map.apps Administratoren. |
|
|
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 |
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.
<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>
<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>
<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 EintragagolAllowedOrganizations
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
oderfalse
. 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 auftrue
. 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:.
// 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