Springe zum Hauptinhalt
Universitäts­rechen­zentrum
WTC / Shibboleth

Zugangssteuerung über das Web-Trust-Center mit Shibboleth

  1. Authentifizierung
  2. Autorisierung
  3. Eigene Autorisierung
  4. Attribute
  5. Wie macht man ...?

Authentifizierung

Wenn Sie eine Authentifizierung über das Web-Trust-Center der TU Chemnitz (WTC) verlangen wollen, schreiben Sie in die .htaccess-Datei:

AuthType shibboleth
ShibRequestSetting requireSession 1

Soll nur eine einzelne Datei geschützt werden, kann dieser Codeblock bspw. in einen <Files>-Block geschrieben werden.

Die Authentifizierung wird jedoch erst durch Angabe der Autorisierung erzwungen.

Autorisierung

Require user …

user – einzelne Benutzer, durch Leerzeichen getrennt

  • Nutzerkennzeichen für Angehörige der TU Chemnitz
  • Nutzerkennzeichen@Domain für externe Identitäten, z. B. login@tu-dresden.de oder log@hs-mittweida.de (derzeit nur für www.tu-chemnitz.de möglich)
  • Die Angabe Require shib-session ist auch gültig (früher: valid-user). Hier ist aber zu beachten, dass damit alle vom Web-Trust-Center authentifizierten Benutzer zugelassen werden, auch Benutzer anderer Identity-Provider (z. B. anderer Hochschulen).
Require shib-attr affiliation …

affiliation – Zugehörigkeit mit @Domain: Definiert sind z. Z.:

  • Mitarbeiter@tu-chemnitz.de – Mitarbeiter/innen der TU Chemnitz (mit Arbeitsvertrag) ohne An-Institute usw.
  • Student@tu-chemnitz.de – eingeschriebene Studierende der TU Chemnitz
  • member@tu-chemnitz.de – Mitarbeiter/innen und eingeschriebene Studierende der TU Chemnitz
  • Extern@tu-chemnitz.de – alle anderen authentisierbaren Personen (An-Institute, Externe)
  • z. B. Require shib-attr affiliation Mitarbeiter@tu-chemnitz.de
Require shib-attr unscoped-affiliation …

unscoped-affiliation – Zugehörigkeit ohne @Domain: Mitarbeiter, Student, member, Extern, alum

  • z. B. shib-attr unscoped-affiliation Student – Studierende beliebiger Einrichtungen
Require shib-attr orgUnitNumber …

orgUnitNumber – Strukturnummer der TU Chemnitz

  • z. B. Require shib-attr orgUnitNumber 134200
Require shib-attr idmgroup …

idmgroup – TU-Angehörige mit gültigem Nutzerkennzeichen, die zu einer IdM-Gruppe mit Zielsystem „LDAP für URZ-Dienste“ gehören. Mehrere Gruppen durch Leerzeichen trennen = ODER-Verknüpfung.

  • z. B. Require shib-attr idmgroup urz:phil_mitarbeiter – Mitarbeiter der Philosophischen Fakultät
  • z. B. Require shib-attr idmgroup urz:wiwi_studenten urz:wiwi_mitarbeiter – sowohl Studierende als auch Mitarbeiter der Fakultät für Wirtschaftswissenschaften
  • Definierte Gruppen:
urz:nawi_studenten urz:nawi_mitarbeiterStudierende bzw. Mitarbeiter der Fakultät für Naturwissenschaften
urz:chemie_studenten urz:chemie_mitarbeiterStudierende bzw. Mitarbeiter des Institutes für Chemie
urz:physik_studenten urz:physik_mitarbeiterStudierende bzw. Mitarbeiter des Institutes für Physik
urz:etit_studenten urz:etit_mitarbeiterStudierende bzw. Mitarbeiter der Fakultät für Elektrotechnik und Informationstechnik
urz:hsw_studenten urz:hsw_mitarbeiterStudierende bzw. Mitarbeiter der Fakultät für Human- und Sozialwissenschaften
urz:informatik_studenten urz:informatik_mitarbeiterStudierende bzw. Mitarbeiter der Fakultät für Informatik
urz:maschinenbau_studenten urz:maschinenbau_mitarbeiterStudierende bzw. Mitarbeiter der Fakultät für Maschinenbau
urz:mathematik_studenten urz:mathematik_mitarbeiterStudierende bzw. Mitarbeiter der Fakultät für Mathematik
urz:phil_studenten urz:phil_mitarbeiterStudierende bzw. Mitarbeiter der Philosophischen Fakultät
urz:wiwi_studenten urz:wiwi_mitarbeiterStudierende bzw. Mitarbeiter der Fakultät für Wirtschaftswissenschaften
urz:zlb_studenten urz:zlb_mitarbeiterStudierende bzw. Mitarbeiter des Zentrums für Lehrerbildung
urz:dezernate_mitarbeiterMitarbeiter der Zentralen Universitätsverwaltung
urz:ub_mitarbeiterMitarbeiter der Universitätsbibliothek
urz:mitarbeiterMitarbeiter des Universitätsrechenzentrums

Reguläre Ausdrücke (wie in Perl) sind möglich:

  • z. B. alle, die in der TU Chemnitz ein gültiges Login haben: Require shib-attr affiliation ~ ^.+@tu-chemnitz\.de$
  • z. B. alle, die irgendwo in .de Studenten sind: Require shib-attr affiliation ~ ^Student@.+\.de$

Mit mehreren Require -Angaben sind Kombinationen möglich:

  • Normalerweise muss eine der angegebenen Bedingungen erfüllt sein (ODER-Verknüpfung).
  • Möchten Sie, dass alle Bedingungen erfüllt sein müssen (UND-Verknüpfung), verwenden Sie <RequireAll>, siehe Beispiel.
Beispiel: Verzeichnis dir22 soll nur für Mitarbeiter der TU Chemnitz einsehbar sein, welche im URZ arbeiten. So sieht das .htaccess aus:
AuthType shibboleth
ShibRequestSetting requireSession 1
<RequireAll>
    Require shib-attr affiliation Mitarbeiter@tu-chemnitz.de
    Require shib-attr orgUnitNumber ~ 134[0-9]{3}
</RequireAll>
Ergebnis: .../dir22/

Eigene Autorisierung

Wenn man die Nutzer-Authentisierung über das Web-Trust-Center abwickeln, den Zugang aber selbst regeln möchte (z. B. bei Webanwendungen, die Berechtigungen in einer Datenbank speichern, oder wenn die oben aufgeführten Autorisierungsmechanismen nicht ausreichen), kann man die Autorisierung auch selbst programmieren. .htaccess-Datei:

AuthType shibboleth
ShibRequestSetting requireSession 0
Require shibboleth

Dazu muss man eine Login-Seite erstellen, die die Autorisierung vornimmt. Diese wird angesprochen via: <a href="/Shibboleth.sso/Login?target=https://www.tu-chemnitz.de/pfad/zur/loginseite.html">…

Ein Beispiel erläutert dies: .../dir23/index.html darf von allen angesehen werden. Bei Klick auf Login muss man sich via Web-Trust-Center authentisieren, den Zugang regelt dann das PHP-Skript – So wird’s programmiert.

Attribute

Nach erfolgreicher Authentifizierung beim Web-Trust-Center und „bestandener“ Autorisierung stellt das WTC dem WWW-Server einige Attribute der angemeldeten Person zur Verfügung. Diese Attribute sind Umgebungsvariablen, die der Web-Autor benutzen kann, z. B. in CGI-Programmen oder PHP-Skripts:

AttributUmgebungsvariable.htaccess hinter RequireBeispiel
NutzerkennzeichenREMOTE_USERuseralf
bei externem Identity Provider wird die Domain angehangen: alf@htwm.de
ZugehörigkeitHTTP_SHIB_EP_AFFILIATIONaffiliationMitarbeiter@tu-chemnitz.de
Zugehörigkeit (ohne Scope)HTTP_SHIB_EP_UNSCOPEDAFFILIATIONunscoped-affiliationStudent
Vorname NameHTTP_SHIB_PERSON_COMMONNAME(nicht verfügbar)Alfons Bitmeister
NachnameHTTP_SHIB_PERSON_SURNAME(nicht verfügbar)Bitmeister
VornameHTTP_SHIB_INETORGPERSON_GIVENNAME(nicht verfügbar)Alfons
StruktureinheitHTTP_SHIB_ORGPERSON_ORGUNIT(nicht verfügbar)Zentrale Einrichtungen der Universität
mehrere durch ; getrennt
Hierarchie durch | getrennt
StrukturnummerHTTP_SHIB_ORGPERSON_ORGUNITNUMBERorgUnitNumber024400
mehrere durch ; getrennt
E-Mail-AdresseHTTP_SHIB_ORGPERSON_EMAILADDRESS(nicht verfügbar)alf.bitmeister@hrz.tu-chemnitz.de
Beispiel: Verzeichnis dir24 soll nur für alle Mitarbeiter und Studenten der TU Chemnitz einsehbar sein. So sieht das .htaccess aus:
AuthType shibboleth
ShibRequestSetting requireSession 1
Require shib-attr affiliation Mitarbeiter@tu-chemnitz.de Student@tu-chemnitz.de
In .../dir24/index.php werden einige Attribute der authentifizierten Person angezeigt – So wird’s programmiert.

Wie macht man ...?

  • Nur Benutzer/innen mit Login an der TU Chemnitz (Studierende, Mitarbeiter, Externe):
AuthType shibboleth
ShibRequestSetting requireSession 1
Require shib-attr affiliation ~ ^.+@tu-chemnitz\.de$
  • Externe Abfragen mit Login über Web-Trust-Center, intern ohne:
AuthType shibboleth
ShibRequestSetting requireSession 1
Require shib-attr affiliation ~ ^.+@tu-chemnitz\.de$
Require host tu-chemnitz.de
  • Zugriff nur von Rechnern in der TU Chemnitz mit Login über Web-Trust-Center, nur Mitarbeiter:
AuthType shibboleth
ShibRequestSetting requireSession 1
<RequireAll>
    Require shib-attr affiliation Mitarbeiter@tu-chemnitz.de
    Require host tu-chemnitz.de
</RequireAll>
  • Zugriff für Mitarbeiter außer einigen:
AuthType shibboleth
ShibRequestSetting requireSession 1
<RequireAll>
    Require shib-attr affiliation Mitarbeiter@tu-chemnitz.de
    <RequireNone>
        Require user login1 login2
    </RequireNone>
</RequireAll>
  • Einen Unterordner eines geschützten Ordners wieder ohne Authentisierung freigeben:
AuthType None
ShibRequestSetting requireSession 0
Require all granted