2. Erweitertes Beispiel (extended.cfg)

Im nachfolgenden Beispiel werden die vom IdP gelieferten Attribute auf Standardnamen gemappt und die Benutzer über das Attribute role in Gruppen eingeteilt:

MAP SAML_ATTRIBUTE_MAPPER
   Rolle => role
   Name => name
   Vorname => firstname
   Mail => email
END_MAP

MAP SAML_GROUPS ! by role
   Benutzer => user
   Administrator => admin
   DEFAULT => user
END_MAP

! saml.lib MUSS immer eingebunden werden !!!
|INCL \script\saml.lib

'saml_' . SAML_ATTRIBUTES.role . '.usr' => VAR.TEMPLATE_USER
IF OPT.user_dir . '\users\' . VAR.TEMPLATE_USER SERIAL.LOAD_OBJECT THEN
   => VAR.USER
   &VAR.USER 'order.name1' SAML_ATTRIBUTES.firstname . ' ' . SAML_ATTRIBUTES.name MAPINS
   &VAR.USER 'order.email' SAML_ATTRIBUTES.email MAPINS
   OPT.output &VAR.USER SERIAL.SAVE_OBJECT
ELSE
   'Der Template Benutzer ' . VAR.TEMPLATE_USER . ' existiert nicht' => VAR.MESSAGE
   VAR.MESSAGE SAML_APPEND_LOG
   VAR.MESSAGE SAML_SEND_ERROR
END_IF

Folgende Bemerkungen zum Skript:

[Anmerkung]

Von den IdP's werden nicht immer die gleichen Benutzerattribute geliefert. Das Attribut role ist z.B. nicht immer vorhanden. Typischerweise werden mindestens name, firstname und email geliefert. Fragen Sie dazu den Betreiber des IdP.