Single Sign-On mit Portal for ArcGIS und ArcGIS Online

Seit 4.8.0

security.manager ermöglicht Client-Applikationen, mittels Single Sign-on auf security.manager Dienste und Portal for ArcGIS (inklusive ArcGIS Online) zuzugreifen. Damit soll erreicht werden, dass sich Nutzer mit ihrer Portal-Identität am Portal anmelden und security.manager-Dienste oder geschützte Applikationen ohne eine weitere Anmeldung nutzen können. Dies kann durch die folgenden Ansatz erreicht werden:

security.manager Domain Cookie

Bei dieser Art der Integration von Portalnutzern wird verlangt, dass Client-Applikationen eine zusätzliche Anfrage zum security.manager schicken. Mit dieser Anfrage wird ein Domain Cookie für den Portalnutzer abgerufen, sobald ein Portal-Token für den Nutzer vorliegt. Durch diese zusätzliche Anfrage wird der Portalnutzer im security.manager identifiziert. Für nachfolgende Anfragen verwendet der Client dann das Domain Cookie, um den Nutzer zu identifizieren.

Dieses Verfahren erfordert zusätzliche Client-Logik in Form des Absendens einer zusätzlichen Anfrage. Es erlaubt aber, neben security.manager-geschützten Dienste andere Applikationen mittels Single Sign-On zu nutzen, deren Zugriff über das security.manager Domain Cookie abgesichert werden. Dieses Verfahren wird derzeit nicht direkt von den Standard Esri Clients und APIs unterstützt.

Hierfür ist es notwendig, dass security.manager und die Portal-Instanz (bzw. ArcGIS Online Organisation) miteinander „verbunden“ sind: Sobald security.manager eine Client-Anfrage erhält, müssen die Nutzerinformationen des anfragenden Nutzers auf Basis der mitgegebenen Identitätsinformationen (sei es ein Token oder das Domain Cookie) beim Portal abgerufen werden. Die Identität des Portalnutzers wird dann über den Nutzernamen einem Nutzerkonto im security.manager zugeordnet. Üblicherweise werden Portal und security.manager dasselbe LDAP oder Active Directory nutzen, so dass die Nutzerkonten auf denselben Daten beruhen. Es ist allerdings möglich, die security.manager-eigene Nutzerdatenbank zu verwenden. Dann muss sichergestellt werden, dass es für jeden Portalnutzer ein zum Nutzernamen passendes Nutzerkonto im security.manager gibt.

Konfiguration

1 Aktivierung der Portalintegration

Um die Portal-Integration zu aktivieren, müssen Sie eine Portal-URL spezifizieren. Dazu tragen Sie die Eigenschaft security.login.portal.url in die application.properties Konfigurationsdatei ein. Lesen Sie den Abschnitt Portalintegration, in dem alle relevanten Konfigurationsparameter beschrieben werden.

2 Verknüpfen der Nutzerkonten

Single Sign-On mit Portal for ArcGIS und ArcGIS Online wird über gleichlautende Nutzernamen erreicht. Für jeden Nutzer im Portal muss es einem gleichnamigen Nutzer im security.manager geben, bevor per Single Sign-On auf geschützte Ressourcen zugegriffen werden kann. Dies geschieht idealerweise über die Nutzung desselben LDAP oder Active Directory. Andernfalls müssen die Nutzerkonten manuell im security.manager angelegt werden.

Bei aktivierter Portalintegration werden Rollen und Zugriffsberechtigungen für geschützte Dienste weiterhin im security.manager angelegt und zugeordnet. Angenommen im Portal existiert ein Nutzer mit dem Nutzernamen p.mueller. Um Single Sign-On zu erreichen, muss im security.manager ebenfalls ein Nutzerkonto mit dem Nutzernamen p.mueller existieren. Um dem Nutzer Zugriff auf einen Dienst zu gewähren, muss eine Rolle im security.manager angelegt werden und dem Nutzer p.mueller zugeordnet werden. Weiterhin müssen Berechtigungen angelegt werden, die Zugriff auf Ressourcen geschützter Dienste erlauben.

Um ein Portal-Token in ein Domain-Cookie umzuwandeln, muss der Client das Portal-Token an den Endpunkt /token/cookie des security.manager senden:

Beispiel einer Portal-Token Anfrage
https://[HOST][:PORT]/administration/token/cookie?portaltoken=02YuGX3aoYxRPzcylglzIEPwcRA-2pKCErNdKXHoAzVp-B826fNrCUTTfTi9uqc...

security.manager gibt eine Antwort zurück, die das Domain-Cookie schreibt.

Beispielantwort
HTTP/1.1 200 OK
Server Apache-Coyote/1.1 is not blacklisted
Server: Apache-Coyote/1.1
Set-Cookie: ct_SSO=*|040ee5fb86c3772c46d77413c8f65474|586eeb64716ec700bab9c83ad8e4dce1141ee45f; Version=1; Comment=""; Path=/
Content-Length: 0
Date: Mon, 01 Jan 2017 00:00:01 GMT
Im Fehlerfall wird eine leere HTTP Antwort mit Status-Code 403 zurück gegeben. Dies kann der Fall sein, wenn das Portal-Token insgesamt ungültig oder dessen zeitliche Gültigkeit abgelaufen ist.