Beispielkonfiguration Shibboleth-Authentifizierung

Zurück zur Shibboleth-Übersicht

Account im Shibboleth

Angenommen, der Benutzer "Hello World" existiert mit folgenden Daten in der Shibboleth-Föderation. Die Attributnamen sind für das Beispiel frei gewählt, sie sind im Shibboleth-System konfigurierbar und daher nicht bindend. Auch werden höchstwahrscheinlich noch mehr Attribute als gezeigt zur Verfügung stehen.

eppn               user0815@example.com
userId             user0815
firstName          Hello
lastName           World
groups             student:assistant
department         compsci,math

Folgende Eigenschaften stehen zur Verfügung:

  • ein innerhalb der Föderation eindeutiger Bezeichner (eppn)
  • ein nur innerhalb der Heimatorganisation eindeutiger Bezeichner (userId)
  • Vor- und Nachname des Benutzers (firstName, lastName)
  • eine Zuordnung zu Status-Gruppen (groups)
  • eine Zuordnung zu Fachbereichen (department)

Gruppen in der easydb

Der Inhalt der Gruppen-Tabelle in der easydb sieht in etwa so aus:

id name shib2_gruppe shib2_department
1 Administratoren    
2 Studenten student  
3 Hilfskräfte assistent  
4 Dozenten lecturer  
5 FB Informatik   compsci
6 FB Mathematik   math
7 FB Geologie   geology

Konfiguration

SHIB2_ATTR_USER_ID=eppn
SHIB2_ATTR_DISPLAYNAME_FORMAT=%(firstName)s %(lastName)s
SHIB2_ATTR_GROUP_1=groups
SHIB2_GROUP_DIVIDER_1=:
SHIB2_ATTR_GROUP_2=department
SHIB2_GROUP_DIVIDER_2=,
SHIB2_WHERE_GROUP_SQL_FORMAT=shib2_gruppe IN (%(groups:dbarr)s) OR shib2_department IN (%(department:dbarr)s)

Ziel der Konfiguration sind folgende Punkte:

  • den Benutzer authenitifizieren: dies passiert, weil das Attribut eppn gesetzt ist, eine Einschränkung ist nur über die Apache-Konfiguration möglich.
  • den Anzeigenamen des Benutzers aus dem Vor- und Nachnamen zusammensetzen: hierfür ist SHIB2_ATTR_DISPLAYNAME_FORMAT zuständig.
  • die Zuordnung des Benutzers zu den entsprechenden easydb-Gruppen. Hier werden die entsprechenden Attribute (SHIB2_ATTR_GROUP_*) und Trennzeichen (SHIB2_GROUP_DIVIDER_*) konfiguriert mit SHIB2_WHERE_GROUP_SQL_FORMAT angegeben, wie die ermittelten Attributwerte mit den easydb-Gruppen verglichen werden müssen.

Es würde also ein Benutzer mit dem Namen "Hello World" angemeldet werden, dieser wird intern als "user0815@example.com" referenziert (das ist für die Wiedererkennung des Benutzers z.B. zur Vergabe von Rechten wichtig). Dem Benutzer würden die easydb-Gruppen "Studenten", "Hilfskräfte", "FB Informatik" und "FB Mathematik" zugeordnet werden.