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
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
oderlog@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 Chemnitzmember@tu-chemnitz.de
– Mitarbeiter/innen und eingeschriebene Studierende der TU ChemnitzExtern@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_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:zlb_studenten urz:zlb_mitarbeiter | Studierende bzw. Mitarbeiter des Zentrums für Lehrerbildung |
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 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.
.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:
Attribut | Umgebungsvariable | .htaccess hinter Require | Beispiel |
---|---|---|---|
Nutzerkennzeichen | 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 |
.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$
Use Campusnetz
- 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
Use Campusnetz
</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