Zum Einsatz kommt unser SSO (AuthType shibboleth), Details (z. B. zur Gruppenabfrage) mit dem ZID klären!
Die Datei attribute-map.xml schaut dabei so aus:
<Attribute name="urn:oid:CO-TCSMAIL-C" id="TCSMAIL" /> <Attribute name="urn:oid:CO-ACCOUNTTYPE-STATUS-C-oid" id="STATUS" /> <Attribute name="urn:oid:TUGONLINE-GROUPMEMBERSHIP" id="groupMembership" /> <Attribute name="urn:oid:1.3.6.1.4.1.5923.1.1.1.11" id="ASSURANCE" />In der httpd.conf sind dann solche Zeilen einzutragen:
Beispiel für TLP:WHITE , TLP:GREEN und TLP:AMBER
<VirtualHost *:80> ServerName ihr_server.tugraz.at Redirect permanent / https://ihr_server.tugraz.at/ <VirtualHost> <VirtualHost ihr_server.tugraz.at:443> ServerName ihr_server.tugraz.at … DocumentRoot /path/to/white … <Directory "/path/to/green/"> AuthType shibboleth ShibRequireSession On <RequireAll> Require shib-attr STATUS ~ BEDIENSTETE:OK </RequireAll> </Directory> … <Directory "/path/to/amber/"> AuthType shibboleth ShibRequireSession On <RequireAll> Require shib-attr groupMembership "CN=…" </RequireAll> </Directory> </VirtualHost>
Die als
TLP:RED
klassifizierten Daten sollten am besten gar nicht auf einem öffentlich
erreichbaren Webserver landen, da sie bei einer Fehlkonfiguration oder einem
Angriff öffentlich werden könnten.
Wenn der Webserver aber z. B. als Archiv dient, sollte der Zugriff auf
den eigenen User (oder sehr wenige berechtigte User) eingeschränkt werden:
<Directory "/path/to/red/"> AuthType shibboleth ShibRequireSession On require valid-user <RequireAll> Require shib-attr USERNAME ihr_username </RequireAll> </Directory>oder
<Directory "/path/to/red/"> AuthType shibboleth ShibRequireSession On require valid-user <RequireAll> Require shib-attr TCSMAIL ihre_email_adresse </RequireAll> </Directory>
# ungeprüfte Identität: # der User hat seine Daten eingegeben, diese wurden aber von Mitarbeitenden # der TU Graz noch nicht verifiziert # geprüft Identität: # die vom User eingegeben Daten wurden von Mitarbeitenden gegen eine Kopie # eines amtlichen Lichtbildausweises geprüft # # 1 = 00000000001 # ungeprüfte Identität (ungeprüft) # 2 = 00000000010 # Basisanwender/Studierendenvoranmeldung (ungeprüft) # (= über TUGRAZonline) # 4 = 00000000100 # Basisanwender/Bulk-Registrierung (ungeprüft) # (= über TUGRAZonline) # 8 = 00000001000 # Basisanwender/Selbstregistrierung (geprüft) # (= über Keycloak) # 16 = 00000010000 # Mitarbeitende (geprüft) # (= Bediensteten Profil) # 32 = 00000100000 # Alumni (geprüft) (= Alumni Profil) # 64 = 00001000000 # Studierende/TU (geprüft) (= Studierenden Profil) # 128 = 00010000000 # Studierende/Mitbeleger NAWI (geprüft) # (= Studierenden Profil + NAWI Studium) # 256 = 00100000000 # Studierende/Mitbeleger Entwicklungsverbund Süd-Ost (geprüft) # (= Studierenden Profil + Lehramtsstudium) # 512 = 01000000000 # externe Lehrende # (Studienkooperationen z.b. NAWI, ohne DV zur TU Graz) # 1024 = 10000000000 # Benutzer aus Förderation (fremd geprüft) # (über Keycloak) # set binary_array = (0 0 0 0 0 0 0 0 0 0 0) @ length = 12 # convert to binary @ binary = $ASSURANCE while ($binary > 0) @ length -- @ digit = $binary % 2 @ binary_array[$length] = $digit @ binary /= 2 end if ($binary_array[11] == 1) echo "ungeprüft " if ($binary_array[10] == 1) echo "Basisanwender/in (Voranmeldung) " if ($binary_array[9] == 1) echo "Basisanwender/in (Bulk) " if ($binary_array[8] == 1) echo "Basisanwender/in (Selbstregistrierung) " if ($binary_array[7] == 1) echo "Mitarbeiter/in " if ($binary_array[6] == 1) echo "Alumni " if ($binary_array[5] == 1) echo "Studierende/r " if ($binary_array[4] == 1) echo "NAWI Graz " if ($binary_array[3] == 1) echo "Lehramtsstudium " if ($binary_array[2] == 1) echo "Externe/r Lehrende/r " if ($binary_array[1] == 1) echo "Föderation" # Beispiel: # ASSURANCE = 112 = 00001110000 # → Mitarbeiter/in Alumni Studierende/r