2. Aktivierung und Konfiguration des SAMLAdapter

2.1. Überblick

Die Installation des SAMLAdapter umfasst folgende Schritte:

  • Aktivierung. Der SAMLAdapter muss im GeoShop aktiviert und als GeoShop Dienst ausgeführt werden.

  • Konfiguration. Die notwendigen SAMLAdapter Parameter müssen in appserver.opt des GeoShop gesetzt werden.

  • Login Skript: Es muss ein Login Skript konfiguriert / erstellt werden. Der Login Skript bildet die externen SAML Benutzer des IdP auf interne GeoShop Benutzer ab.

  • GeoShop Neustart: Der SAMLAdapter wird geladen und die Konfigurationsparameter gelesen. Der GeoShop ist für SAML Anfragen bereit

2.2. Aktivierung des SAMLAdapter

Der SAMLAdapter muss zuerst als GeoShop Dienst aktiviert werden. Dazu muss ein zusätzlicher Eintrag in der Services Datei services.srv des GeoShop erstellt werden (s.a. GeoShop Benutzerhandbuch).

LIST
   ... 
   MAP
      name STRING samladapter
      description STRING 'SAMLAdapter'
      module STRING SAMLAdapter
      server STRING appserver
   }
   ...
}

2.3. Konfiguration des SAMLAdapter

Als Nächstes können die Parameter des SAMLAdapter in appserver.opt des GeoShop konfiguriert werden:

MAP
   ...
   SAMLAdapter MAP
      [ CERTDB_STORE STRING <CertDbStore> ]
      [ CERTDB_STORE_PASSWORD STRING <CertDbStorePassword> ]
      [ CERTDB_KEY_PASSWORD STRING <CertDbKeyPassword> ]
      [ CERTDB_ALIAS STRING <CertDbAlias> ]
      GEOSHOP_ENTITYID STRING <EntityId>
      GEOSHOP_CLIENT_URL STRING <ClientUrl>
      IDP_SIGNON_URL STRING <SignOnUrl>
      IDP_CERTIFICATE STRING <IdpCertificate>
      VALIDATE_SIGNATURE STRING <ON | OFF>
      LOG_SAML_REQUESTS STRING <ON | OFF>
      DEBUG STRING <ON | OFF>
   }
   ...
}

Folgende Felder sind einzutragen:

Parameterreq/optTypBeschreibung
CERTDB_STOREoSTRINGName der Zertitifikatdatenbank (Default: saml.pfx). Die Zertifikatdatenbank muss sich im Ordner \user\certs befinden und im PKCS12 Format abgespeichert sein. Falls die Zertifikatdatenbank nicht existiert, wird saml.pfx beim Start des GeoShop automatisch aus einem selbst signierten Zertifikat erstellt.
CERTDB_STORE_PASSWORDoSTRINGPasswort für die Zertifikatdatenbank.
CERTDB_KEY_PASSWORDoSTRINGPasswort für den private Key in der Zertifikatdatenbank.
CERTDB_ALIASoSTRINGAlias unter dem das Zertifikat / private Key in der Zertifikatdatenbank abgelegt ist (Default: geoshop). Falls der Alias in der Zertifikatdatenbank nicht existiert, wird vom GeoShop das erste Zertifikat / der erste private Key in der Zertifikatdatenbank gewählt.
GEOSHOP_ENTITYIDrSTRINGEindeutige Id, welche den GeoShop gegenüber dem IdP identifiziert. Es ist üblich dafür eine URL zu verwenden, z.B. https://geoshop.com/SAMLAdapter
GEOHOP_CLIENT_URLrSTRING

URL der GeoShop Client Anwendung, z.B. https://geoshop.com/client5/index.html

IDP_CERTIFICATErSTRING

X509 Zertifikat des IdP als Base64 codierte Zeichenkette (ohne Header, Trailer, Zeilenumbrüche). Wird vom IdP beim Metadatenaustausch geliefert (s.a. Kapitel 3).

IDP_SIGNON_URLrSTRING

URL an den der GeoShop einen SAML AuthnRequest weiterleiten soll. Wird vom IdP beim Metadatenaustausch geliefert (s.a. Kapitel 4).

VALIDATE_SIGNATUREoSTRINGON |OFF. Signatur des IdP mit dem Zertifikat des IdP prüfen. Default: ON.
LOG_SAML_REQUESTSoSTRINGON |OFF. SAML Meldungen in appserver.log aufzeichnen. Default: OFF.
DEBUGoSTRINGON |OFF. Zusätzliche Meldungen in appserver.log ausgeben. Default: OFF.

2.4. Konfiguration des Login Skript

Schliesslich muss noch in appserver.opt im Abschnitt GeoShopServer der Parameter LOAD_USER gesetzt werden.

MAP
   ...
   GeoShopServer MAP
      ...
      LOAD_USER STRING saml,/script/saml/simple.cfg
   }
   ...
}

Im Standard Skript /script/saml/simple.cfg werden alle via SAML authentifizierten Benutzer auf einen GeoShop Benutzer gemappt, der die gleichen Rechte hat wie der Benutzer \users\saml_template.usr. Der Skript simple.cfg und die Benutzerdatei saml_template.usr können an die eigenen Bedürfnisse angepasst werden (z.B. Mapping auf verschiedene GeoShop Benutzer Gruppen, s.a. Anhang).

2.5. GeoShop Neustart

Der GeoShop muss frisch gestartet werden, damit der SAMLAdapter geladen wird. In appserver.log müssen folgende Meldungen erscheinen:

--------------------------------------
module SAMLAdapter 2022.0x
--------------------------------------
testing environment ...
   GeoShop EntityID is https://<GeoShop-URL>/SAMLAdapter
   GeoShop Client URL is https://<GeoShop-URL>/client5/index.html
   GeoShop private key loaded from saml.pfx
   GeoShop certificate loaded from saml.pfx, valid until <Date>
   GeoShop key and certificate match
   IdP SignOn URL is <IdP-SignOnURL>
   IdP certificate loaded, valid until <Date>

Falls Fehlermeldungen angezeigt werden (z.B. ungültiges Zertifikat), müssen die Ursachen behoben werden. Nach der Fehlerbehebung sollte der GeoShop nochmals gestartet werden.