ArcGIS Enterprise-Portal und ArcGIS Online
Da die folgenden Angaben für ArcGIS Enterprise-Portal und ArcGIS Online gleichermaßen gelten, wird zur besseren Lesbarkeit nur von ArcGIS Enterprise-Portal gesprochen. |
ArcGIS Enterprise-Portal kann als Nutzerverwaltung für map.apps verwendet werden. Dies bedeutet, dass sich ein Nutzer mit seinem Portal-Account bei map.apps anmelden kann. Gruppen und Rollen eines Portal-Nutzers werden in Rollen für map.apps übersetzt. Durch eine Verknüpfung mit ArcGIS Enterprise-Portal 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 Portal-Nutzerverwaltung.
Mögliche Werte sindtrue
oderfalse
. Der Standardwert istfalse
.Die vorkonfigurierten Nutzer admin
undeditor
können weiterhin genutzt werden. security.integrated.agol.organization
-
Portal oder ArcGIS Online Organisation, mit dem map.apps verbunden wird.
Der Standardwert istwww.arcgis.com
. Um map.apps mit einem ArcGIS Enterprise-Portal zu verknüpfen, tragen Sie hier den Portal-Hostnamen inkl. Pfad des Web Adaptors ein, z.B.gis.example.com/portal
. Bei einer Verknüpfung mit ArcGIS Online tragen Sie hier den voll qualifizierten Hostnamen der Organisation ein, z.B.myorganization.maps.arcgis.com
. security.integrated.agol.expirationInMinutes
-
Lebensdauer des Tokens, das im Rahmen des Login beim Portal abgefragt wird.
Der Standardwert ist60
(1 Stunde). Dieser Wert beeinflusst, nach welcher Zeit ein erneuter Login notwendig ist, wenn geschützte Portal-Ressourcen genutzt werden. security.integrated.agol.tokenreferer
-
Externe Basis-URL der map.apps-Installation, z.B.
https://apps.example.com/mapapps
. Der Wert muss mit der URL im Browser des Nutzers übereinstimmen. Andernfalls ist das vom Portal erzeugte Token nicht anwendbar und es können keine geschützten Ressourcen abgefragt werden, selbst wenn der Login erfolgreich ist.
security.integrated.agol.enabled=true
security.integrated.agol.organization=gis.example.com/portal
security.integrated.agol.tokenreferer=https://apps.example.com/mapapps
security.integrated.agol.enabled=true
security.integrated.agol.organization=myorg.maps.arcgis.com
security.integrated.agol.tokenreferer=https://apps.example.com/mapapps
Eigenschaften von Portal-Nutzern als Rollen in map.apps verwenden
Automatische Zuordnung
Rollen
Rollen von Portalnutzern werden standardmäßig wie folgt übersetzt:
Rolle Portal | map.apps Rolle | Beschreibung |
---|---|---|
|
|
Portal-Administratoren werden zu map.apps Administratoren. |
|
|
Portal-Publisher werden zu map.apps Editoren. |
Alle anderen Rollen werden ohne Änderung vom Portal übernommen, z.B. org_user
.
Gruppen
Portal-Gruppen bestehen aus einer ID, einem Titel und einem Besitzer.
Da die ID einer Gruppe im Portal 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.
Portal-Gruppe | map.apps Rolle |
---|---|
Wald (ID: a24534, Owner: user1) |
|
Wasser (ID: a345b4, Owner: user2) |
|
Anpassung der Zuordnung
Die Art, wie Portal-Rollen, -Gruppen und Organisationen (nur ArcGIS Online) 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">
<!-- Portal-Administrator wird zu map.apps Administrator -->
<entry key="org_admin" value="maAdmin"/>
<!-- Portal-Publisher wird zu map.apps Editor -->
<entry key="org_publisher" value="maEditor"/>
<!-- Portal-Nutzer bekommt "user" Rolle in map.apps -->
<entry key="org_user" value="user"/>
</util:map>
<util:map id="agolRoleMapping">
<!-- Portal-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 (nur ArcGIS Online)
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>myorg.maps.arcgis.com</value>
</util:set>
Geschützte Webmaps und Dienste konsumieren
Anmeldung am Portal
Sobald eine geschützte Portal-Ressource (z.B. eine Webmap) geladen wird, öffnet sich ein Anmeldefenster, in dem sich der Nutzer mit seinem Portal-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 sindtrue
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 Enterprise-Portal Installation.
Der Standardwert ist//www.arcgis.com
. Der Wert kann auf den Hostnamen einer 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 Portal ist die Verwendung des OAuth2-Protokolls. Ist es aktiviert, wird der Nutzer bei einer erforderlichen Anmeldung auf eine zentrale Login-Seite des Portals weitergeleitet. Die Voraussetzung zur Nutzung des Protokolls ist die Registrierung der map.apps App beim Portal. Die folgenden zwei Optionen sind möglich:
-
Popup-Modus:
https://<server>:<port>/<mapapps_context>/account/oauth-callback.html
-
Browser Redirect Modus:
https://<server>:<port>/<mapapps_context>/resources/apps/<appname>/index.html
(URL der App index.html)
Nach der Registrierung der App im Portal 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>"
-
App ID, die bei der Registrierung der App im Portal erstellt worden ist.
"oauthUsePopup": false
-
Legt fest, ob der Anmeldeprozess in einem Popup Fenster oder direkt durch Umleitung des Browsers erfolgt.
Dieser Parameter ist optional. Der Standardwert istfalse
. "arcgisPortalUrl": "<organization-url>"
-
Überschreibt die globale Einstellung
esri.api.arcgisPortalUrl
.
Diese Einstellung ist optional. Wenn der Wert auf eine ArcGIS Online Organisation zeigt, so wird ein organisationsspezifischer Anmeldedialog verwendet. "portalItemId": "<item-id>"
-
Item ID der map.apps App im Portal.
Diese Einstellung ist optional, wird aber benötigt um den Zugriff auf diese App mit der Freigabe eines Portal-Items zu verknüpfen. Nach erfolgreicher Authentifizierung eines Nutzers wird der Zugriff auf das Portal-Item getestet. Ist der Zugriff verboten, so wird auch der Zugriff auf die App verboten.
Die Parameter können über den App-Editor 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
-
portal-app-security