RRZE – Projekte & Prozesse (P&P)

Das Blog der RRZE Stabsstelle "Projekte & Prozesse"

Content

WAID 1.0

Das Produkt hinter dem Identiy Management (IdM) Self Service aus technische Sicht vorgestellt.
(Input: Krasimir Zhelev, P&P CSA, Text: Hendrik Eggers)

, die Web Application for Identity Management, stellt die Basis des IdM Self Service dar. Im folgenden soll die technische Basis näher erläutert werden.
WAID basiert auf populären Java Entwicklungs Frameworks:

Außerdem nutzen wir auch 3rd-Party Erweiterungen, wie z.B. t5c-commons für den Slider-Effekt u.a. auf der Startseite.
Da diese Frameworks bei weitem nicht ausreichen würden im Rahmen der P&P Software Architecture (PPSA) Erweiterungen geschaffen, die nun als eigene Kompenenten eingebunden werden.

Tapestry Komponenten

Die Komponenten (ppsa-t5-commons, ppsa-t5-d7, ppsa-t5-jcaptcha) zur Erweiterung des Tapestry Framework sind bereits im Artikel PPSA T5 Komponenten im P&P Blog beschrieben worden. Ich spare mir also an dieser Stelle die Redundanz und verweise den interessierten Leser auf Krasimir Zhelevs Blog-Artikel.

Weitere neue Tapestry Komponenten

Neben den bereits erstellten Erweiterungen zu Tapestry wurden extra für WAID noch die folgenden Komponenten entwickelt:

ppsa-t5-pwdsuggestion – 0.8.0

Diese Komponente definiert die Schnittstellen für den Tapestry-basierten Passwortvorschlagservice und realisiert die zugehörige Oberfläche. Die Implementierung der Schnittstellen erfolgt wiederrum in WAID. Außerdem werden die folgenden Komponenten:

genutzt.

Business Logik Komponenten

Die Controller Schicht der Applikation wird neben in WAID selbst in den hier beschriebenen Komponenten realisiert.

pwd-man-api – 1.0.0

Hierbei handelt es sich “nur” um eine API also die Definition von Schnittellen und keine Implementierung. Diese Abstraktion dient dazu möglichst unabhängig von den Novell Produkten zu werden.
Die meistgenutzten Schnittstellen sind dabei der PasswordManager für alle Funktionen rund um das Passwort sowie der ChallengeResponseManager für den Zugriff auf die Novell eigenen Funktionen rund um die Sicherheitsfragen für das Password Recovery.

jpwgen – 1.0.4

Der Passwortgenerator ist das Herzstück des Passwortvorschlagservice und kann verschiedene Regeln berücksichtigen.
Anstatt viele Worte zu verlieren, sei auf die offiziellen Webseiten von jpwgen verweisen, denn diese ist bereits als Open Source Software unter der LGPL v2.1 released worden.

idmsec – 1.0.0

Diese Komponente adressiert alle Aufgaben rund um die Verschlüsselung (encryption) und das Hashing von Passworten. Hierzu implementiert sie eine ganze Reihe von Algorithmen:

Hashes:
  • MD5
  • SMD5
  • SHA
  • SSHA
  • UNIX CRYPT
  • UNIX SMD5 CRYPT
  • SMB
  • Apache MD5
  • HIS/SOS Apache MD5
  • OpenBSD-style Blowfish
  • LANMAN
  • NTUNICODE
  • APHELION
Crypts:
  • Blowfish

Außerdem stellen die Komponenten den LDAP Connection Manager zur Verfügung mittels dessen LDAP Verbindungen hergestellt und verwaltet werden können. Dieser kann mehrere Verbindungen gleichzeitig verwalten und unterstützt sowohl ldaps als auch StartTLS für sichere Verbindungen.

idmnovutil – 1.0.0

Um möglichst unabhängig von den Novell Produkten zu programmieren, wurde oben bereits die Komponenten pwd-man-api angesprochen. Bei der Komponenten idmnovutil handelt es sich nun um die Implementierung dieser Schnittstellen. Sie basiert auf verschiedenen Werkzeugen (Novell NMAS, OpenLDAP Java LDAP bzw. Novell LDAP Classes for Java und implementiert so den Teil, der für die Verwendung des Novell Identity Manager spezifisch ist.
Idealerweise müsste bei einer Verwendung von WAID mit dem MetaDirectory eines anderen Herstellers nur diese Komponente ausgetauscht werden. Allerdings harrt dieses Experiment noch seiner Erprobung. 😉

idmone-core – 0.5.0

In der Drei-Säulen-Architektur implementiert diese Komponente – wie der Name bereits suggeriert – die Kernfunktionen.
So beinhaltet es das Domänenmodel (domain model) also die Definition von persons, affiliations und entitlements.
Die Data Access Object (DAO) Schicht sorgt für die Verarbeitung dieser Objekte, also die Suche, das Anlegen, das Auslesen, Ändern und schlussendlich Löschen (CRUD) von Objekten.
Außerdem implementiert es verschiedene wesentliche Funktionen u.a. für die Aktivierung der Personen.

– 1.0.0

WAID obliegt schlussendlich die Integration der vorgenannten Komponenten und deren Darstellung in einer Web-Oberfläche.
Die Logik wurde hauptsächlich als Tapestry Services implementiert. Die Hauptfunktionen sind intern:

  • ChallengeResponse (C&R) – überprüft und setzt C&R für verschiedene Nutzer
  • LayoutBuilder – baut dynamisch das Menu und hilft bei der Sessionverwaltung. Die implementierte Schnittstelle ist im ppsa-t5-d7 definiert.
  • LoggedOnPerson – überprüft die Authentifizierung der Benutzer
  • ProofOfAuthority – überprüft Zugriffrechte (Autorisierung)
  • PwdSuggestion – Implementierung der in ppsa-t5-pwdsuggestion definierten Schnittstelle
  • UserASCreator – lädt via DAO Schicht die Daten des erfolgreich authentifizierten Benutzers

Außerdem verwendet die Oberfläche die obengenannten ppsa-t5-* Tapestry Komponenten.

Für den Benutzer sind in der Oberfläche folgende Funktionen nutzbar:

  • Datenschutzselbstauskunft (kurz: DSSA, aka: Benutzerinformation)
  • Dienstleistung(en) anzeigen
  • Passwort ändern
  • Callenge & Response (Sicherheitsfragen, kurz: C&R)
  • PDF Druck
    • Benutzer Info Brief
    • Dienstleistungs Info Brief
  • Funktionen für Administratoren
    • Suche nach Benutzern
    • (Initial-)Passwort setzen
    • Benutzer Info Brief drucken

Ausblick

Alle hier benannten Komponenten – so sie denn noch nichts bereits veröffentlicht wurden – sollen sukzessive heraus gegeben werden. Voraussetzung ist allerdings, dass sie sich in einem Zustand von Produktreife und Dokumentation befinden, dass Dritte sie verwenden können.
Sollten sie bereits vorab Interesse haben, so schreiben Sie bitte eine E-Mail an: idmone@rrze.uni-erlangen.de.
Außerdem können Sie sich an die gleiche E-Mail-Adresse wenden, wenn Sie Unterstützung für Ihr eigenes IdM-Projekt wünschen.

Leave a comment

Your email address will not be published Required fields are marked *

You can use the following HTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>