Wissen, was gut ist. Studieren in Chemnitz.

Zugangssteuerung über das Web-Trust-Center mit Shibboleth

Authentifizierung

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

  • AuthType shibboleth aktiviert Shibboleth als AuthType
  • ShibRequireSession On erlaubt das Betreten des geschützten Bereichs nur nach gültiger Authentifizierung
  • ShibRedirectToSSL 443 lenkt alle Zugriffe auf verschlüsselte Übertragung um (https)

Autorisierung

   Require user ...   

user - einzelne Benutzer, durch Leerzeichen getrennt
  • Loginkennzeichen für Angehörige der TU Chemnitz
  • Loginkennzeichen@Domain für externe Identitäten
  • Die Angabe Require valid-user ist auch gültig. 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 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)
  • alum@tu-chemnitz.de - Absolventen/Ehemalige der TU Chemnitz (Chemnitzer Absolventennetz CAN)
  • Eine Erweiterung dieser Gruppen ist geplant.

  • z.B. Require affiliation Mitarbeiter@tu-chemnitz.de

   Require unscoped-affiliation ...   

unscoped-affiliation - Zugehörigkeit ohne @Domain: Mitarbeiter, Student, member, Extern, alum
  • z.B. Require unscoped-affiliation Student - Studierende beliebiger Einrichtungen

   Require orgUnitNumber ...   

orgUnitNumber - Strukturnummer der TU Chemnitz
  • z.B. Require orgUnitNumber 134200

   Require afsgroup ...   

afsgroup - TU-Angehörige mit gültigem Loginkennzeichen, die zu einer AFS-Gruppe gehören. Mehrere AFS-Gruppen durch Leerzeichen trennen = ODER-Verknüpfung. Verschachtelte AFS-Gruppen (Gruppen, deren Mitglieder wieder AFS-Gruppen sind) sind z.Z. nicht möglich.
  • z.B. Require afsgroup urz:phil_mitarbeiter - Mitarbeiter der Phil. Fak.
  • z.B. Require afsgroup urz:wiwi_studenten urz:wiwi_mitarbeiter - sowohl Studierende als auch Mitarbeiter der Fakultät für Wirtschaftswissenschaften
  • Definierte AFS-Gruppen:
urz:nawi_studenten urz:nawi_mitarbeiter Studierende bzw. Mitarbeiter der Fakultät für Naturwissenschaften
urz:chemie_studenten urz:chemie_mitarbeiter Studierende bzw. Mitarbeiter des Institutes für Chemie
urz:physik_studenten urz:physik_mitarbeiter Studierende bzw. Mitarbeiter des Institutes für Physik
urz:etit_studenten urz:etit_mitarbeiter Studierende bzw. Mitarbeiter der Fakultät für Elektrotechnik und Informationstechnik
urz:hsw_studenten urz:hsw_mitarbeiter Studierende bzw. Mitarbeiter der Fakultät für Human- und Sozialwissenschaften
urz:informatik_studenten urz:informatik_mitarbeiter Studierende bzw. Mitarbeiter der Fakultät für Informatik
urz:maschinenbau_studenten urz:maschinenbau_mitarbeiter Studierende bzw. Mitarbeiter der Fakultät für Maschinenbau
urz:mathematik_studenten urz:mathematik_mitarbeiter Studierende bzw. Mitarbeiter der Fakultät für Mathematik
urz:phil_studenten urz:phil_mitarbeiter Studierende bzw. Mitarbeiter der Philosophischen Fakultät
urz:wiwi_studenten urz:wiwi_mitarbeiter Studierende bzw. Mitarbeiter der Fakultät für Wirtschaftswissenschaften
urz:dezernate_mitarbeiter Mitarbeiter der Zentralen Universitätsverwaltung
urz:ub_mitarbeiter Mitarbeiter der Universitätsbibliothek
urz:mitarbeiter Mitarbeiter 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 affiliation ~ ^.+@tu-chemnitz\.de$
  • z.B. alle, die irgendwo in .de Studenten sind: Require affiliation ~ ^Student@.+\.de$

Mit mehreren Require -Angaben sind Kombinationen möglich:
  • ShibRequireAll on bestimmt, dass alle "requires" erfüllt sein müssen (UND-Verknüpfung)
  • ShibRequireAll off das Zutreffen ein mind. ein "require"-Statement erlaubt den Zugriff (ODER-Verknüpfung)

Beispiel: Verzeichnis dir22 soll nur für Mitarbeiter der TU Chemnitz einsehbar sein, welche im URZ arbeiten. So sieht das .htaccess aus:
AuthType shibboleth
ShibRequireSession On

ShibRequireAll on
Require affiliation Mitarbeiter@tu-chemnitz.de
Require orgUnitNumber ~ 134[0-9]{3}
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   
   ShibRequireSession Off
   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: .../dir24/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 Athentifizierung 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:

Attribut Umgebungsvariable .htaccess hinter Require Beispiel
Loginkennzeichen REMOTE_USER user alf
bei externem Identity-Provider wird die Domain angehangen: alf@htwm.de
Zugehörigkeit HTTP_SHIB_EP_AFFILIATION affiliation Mitarbeiter@tu-chemnitz.de
Zugehörigkeit (ohne Scope) HTTP_SHIB_EP_UNSCOPEDAFFILIATION unscoped-affiliation Student
Vorname Name HTTP_SHIB_PERSON_COMMONNAME (nicht verfügbar) Alfons Bitmeister
Nachname HTTP_SHIB_PERSON_SURNAME (nicht verfügbar) Bitmeister
Vorname HTTP_SHIB_INETORGPERSON_GIVENNAME (nicht verfügbar) Alfons
Struktureinheit HTTP_SHIB_ORGPERSON_ORGUNIT (nicht verfügbar) Zentrale Einrichtungen der Universität
mehrere durch ; getrennt
Hierarchie durch | getrennt
Strukturnummer HTTP_SHIB_ORGPERSON_ORGUNITNUMBER orgUnitNumber 024400
mehrere durch ; getrennt
E-Mail-Adresse HTTP_SHIB_ORGPERSON_EMAILADDRESS (nicht verfügbar) alf.bitmeister@hrz.tu-chemnitz.de

Beispiel: Verzeichnis dir23 soll nur für alle Mitarbeiter und Studenten der TU Chemnitz einsehbar sein. So sieht das .htaccess aus:
AuthType shibboleth
ShibRequireSession On
Require affiliation Mitarbeiter@tu-chemnitz.de Student@tu-chemnitz.de
In .../dir23/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, Ehemalige):
  AuthType shibboleth   
  ShibRequireSession On
  Require affiliation ~ ^.+@tu-chemnitz\.de$

  • Benutzer/innen der TU Chemnitz außer Ehemalige:
  AuthType shibboleth   
  ShibRequireSession On
  Require affiliation ~ ^[^Aa][^Ll].+@tu-chemnitz\.de$