Tags:
create new tag
, view all tags

Polybox für die EMPA

Szenario eines Self-Service

  1. User geht auf die Registrierungs-Seite (z.B. http://polybox.ethz.ch/register)
  2. die Seite ist mit Shibboleth geschützt
  3. der User wird auf die WAYF (Where are you from) - Seite von Switch geleitet
  4. der User authentisiert sich an seiner Heimuniversität (in diesem Fall die EMPA) und wird – im Falle eines Erfolges – auf die Registrierungs-Seite zurückverwiesen
  5. die Shibboleth-Attribute werden ausgelesen:
    • Vorname
    • Nachname
    • Username
    • E-Mail-Adresse
    • Präferierte Sprache
    • uniqueID zwecks eindeutiger Identifikation
  6. aufgrund der E-Mail-Adresse oder uniqueID wird nach einem User in unserem Open-LDAP gesucht
  7. Fall 1: DONE User wird gefunden (via E-Mail-Adresse)
    • User kann sein Passwort für Polybox neu setzen
    • User kann seinen Polybox-Account löschen
    • TODO Prozess des Löschens muss von Seite Polybox behandelt werden können
  8. Fall 2: TODO User wird gefunden (via uniqueID)
    • User wird automatisch umbenannt, da Mailadresse geändert hat
    • weiter wie Fall 1
  9. Fall 3: DONE User wird nicht gefunden
    • User wählt ein Passwort für seinen Polybox-Account
    • Account wird erstellt, User wird per Mail benachrichtigt
    • User wird auf die polybox-Loginseite weitergeleitet, wo er sich mit Username (= E-Mail-Adresse) und dem gewählten Passwort einloggen kann

User ändert seine Mailadresse

  • die Haupt-Mailadresse des Users entspricht dem Login-Namen
  • wenn diese ändert, funktioniert auch polybox ev. nicht mehr
  • in diesem Fall muss wieder über die Registrierungsseite ein AAI-Login gemacht werden
  • über das Attribut swissEduPersonID wird gleichwohl das Objekt gefunden
  • das Objekt wird umbenannt
    • TODO Prozess des Umbenennens von Usern muss bei Polybox behandelt werden

Lifecycle

  • TODO über den Shibboleth-Backchannel wird regelmässig überprüft, welche Kontos noch aktiv sind und welche nicht
  • inaktive Kontos werden zunächst deaktiviert (Passwort wird zufallsmässig geändert), später komplett gelöscht

Erweiterbarkeit / Skalierbarkeit

  • mit der Selbstregistrierung via Shibboleth können auch andere Universitäten von diesem Angebot Gebrauch machen
  • die Anzahl User per se (max. 800 User im Falle EMPA) stellt für unser Authentisierungssystem LDAPS kein Problem dar
  • die Abgrenzung zu ETH-User ist klar (uniqueID, Mailadresse als Usernamen)

Implementationsdetails

Komponente Beschreibung
http://polybox.ethz.ch/register  Einstiegs-Seite für die Registrierung. Wird automatisch weitergeleitet (HTTP-Redirect) nach https://idn.ethz.ch/cgi-bin/polybox/register.pl
AAI Shibboleth die Seite ist Shibboleth-geschützt und bei Switch registriert
Deutsch, Englisch unterstützte Sprachen. Aufgrund des AAI-Attributs preferredLanguage (oder alternativ: Browser-Sprache) wird entschieden, ob Deutsch oder Englisch verwendet wird
~/cgi-bin/polybox/ Verzeichnis auf dem Produktionsserver idnp, wo sich die Applikation befindet
~/htdocs/polybox/ Verzeichnis auf dem Produktionsserver idnp, wo sie die statischen Seiten (CSS, Java-Script, Polybox-Logo) befinden
https://svn.id.ethz.ch/nethz/cgi-bin/polybox
https://svn.id.ethz.ch/nethz/htdocs/polybox
Ort des Quellcodes auf dem SVN-Server
register.pl Registrierungs-Applikation
organisations.cfg Konfigurations-File für die Empa-spezifischen Dinge. Weitere zugelassene Organisationen müssen hier eingetragen werden. Die Syntax ist im INI-Stil (lesbar, da kein XML!). Es enthält z.B. die URL des Empa-Logos, Empa-Hilfe-Links, Empa-Passwort-Policy etc. Um weitere Institutionen anzuschliessen, muss nur dieses Konfigurationsfile angepasst werden.
CGI CPAN-Modul für einfache Applikationen
Text::Template CPAN-Modul für die Templates
Config::Std CPAN-Modul um das Konfigurationsfile einzulesen
Method::Signatures CPAN-Modul für Typen-Prüfung bei Subroutinen
Basis nethz-Modul, welches ein paar Grundfunktionalitäten zur Verfügung stellt (liest auch die Basiskonfiguration ein, damit die Applikation sich mit LDAPS verbinden kann)
Nethz::LDAPS::PosixAccount nethz-Modul, welches die Kontos in LDAPS verwaltet
_en.tmpl, _de.tmpl Endungen bei allen verwendeten Templates, je nach gewählter Sprache
create_account Template für Einstiegsseite / Erstellen eines polybox-Kontos (mit Endung _en.tmpl oder _de.tmpl)
edit_account Template für die Verwaltung eines bestehenden polybox-Kontos (Passwort setzen, Konto löschen)
confirmation_mail Template für die Mail, welche beim Erstellen des polybox-Kontos versandt wird
header, footer, password Teil-Templates
sorry Template welches angezeigt wird, falls die Organisation nicht zugelassen ist

TODO

  • TODO Test-Kontos vor der Inbetriebnahme löschen
  • TODO Sicherheitsaspekte: wer soll informiert werden, wenn ein Konto Probleme bereitet?
  • DONE prüfen, weshalb das Shibboleth-Attribut preferredLanguage nicht korrekt übermittelt wird
  • TODO Lösch-Schnittstelle zu polybox etablieren
  • TODO Änderung des Benutzer-Accounts (bei Änderung der Mail-Adresse): Schnittstelle zu polybox etablieren
  • TODO Backchannel-cronjob für das periodische Aufräumen von verloschenen Empa-Accounts

-- SwenVermeul - 2014-09-30

Topic revision: r4 - 2014-11-25 - vermeul
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback