Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Documentation for "Nutzerselbstverwaltung"

jlxq0
July 10, 2009

Documentation for "Nutzerselbstverwaltung"

Accompanying documentation for the slidedeck of the same name.

jlxq0

July 10, 2009
Tweet

More Decks by jlxq0

Other Decks in Education

Transcript

  1. Abschlussarbeit Für die IHK-Abschlussprüfung zum Informatikkaufmann im Jahr 2009 Nutzerselbstverwaltung

    und sichere Übermittlung von Kennwörtern vorgelegt von Julian Lindner Ketsch, den 10. Juni 2009
  2. Die Titelgraphik zeigt eine sogenannte word cloud mit den 250

    meistgenutzten (allerdings US- amerikanischen) Kennwörtern. Die Schriftgröße der einzelnen Kennwörter steht hierbei in linearer Relation zu der Häufigkeit ihrer Verwendung. Die am größten gesetzten Begriffe repräsentieren die am häufigsten als Kennwort benutzten Zeichen- oder Ziffernfolgen. Die Datenbasis stammt von rund 57 000 Login-Daten für die Social-Networking Seite my- space.com.[1] Die word cloud wurde mit dem Onlinegenerator von wordle.net erstellt und steht unter einer Creative Commons Attribution 3.0 United States License. ii
  3. Inhaltsverzeichnis 1 Allgemeines 1 1.1 Hinweise an den Leser .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Projektumfeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2.1 Unternehmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2.2 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2.3 Aufgabe und Ansatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Planung 5 2.1 Bestandsaufnahme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Feinkonzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.1 interne Applikation: User Self Service . . . . . . . . . . . . . . . . . . 6 2.2.2 externe Applikation: Password Reset . . . . . . . . . . . . . . . . . . . 6 2.3 Zeitplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 Ressourcenplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.5 Kostenplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3 Durchführung 9 3.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2 User Self Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3 Password Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.4 Tests und Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4 Abschluss 15 4.1 Kosten-Nutzen-Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2 Soll-Ist-Vergleich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.3 Fazit und Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Abbildungsverzeichnis I Fachtermini II Glossar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II Abkürzungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III Quellcodeauszüge IV Literaturverzeichnis VI iii
  4. 1 Allgemeines 1.1 Hinweise an den Leser Die vorliegende Projektdokumentation

    ist Teil meiner Abschlussprüfung im Rahmen meiner Aus- bildung zum Informatikkaufmann. Ein Glossar der in dieser Projektarbeit auftauchenden Fachter- mini und Abkürzungen, ein Literaturverzeichnis, ein Abbildungs- und Tabellenverzeichnis sowie einige Quellcodeauszüge finden Sie im Anhang. Möglicherweise sensible Daten wie z.B. Kenn- wörter oder Nutzerkennungen wurden aus Datenschutzgründen durch Platzhalter oder sinnvolle Beispiele ersetzt. 1.2 Projektumfeld 1.2.1 Unternehmen Die Unternehmensgruppe Freudenberg ist ein international agierendes Familienunternehmen mit Stammsitz in Weinheim. Freudenberg ist Zulieferer verschiedener Branchen, wie der Automobil-, Maschinenbau-, Textil-, Bau- und Telekommunikationsindustrie. Das Unternehmen beschäftigt heute rund 33 000 Mitarbeiter in 54 Ländern und erzielte im Geschäftsjahr 2008 einen Um- satz von 5 050 Millionen Euro. Die dem Endverbraucher geläufigsten Produkte sind die Vileda Reinigungsartikel der Freudenberg Haushaltsprodukte KG. Die Freudenberg Service KG, der Geschäftsbereich, für den ich während meiner Ausbildung tätig war, ist eine Servicegesellschaft, welche für den Betrieb der Industrieparks Weinheim und Neuenburg zuständig ist. In diesen Zuständigkeitsbereich fallen verschiedene Tätigkeiten, wie z.B. Telekommunikation und IT, industrielle Umzüge, Instandhaltung von Maschinen und An- lagen oder die Energieversorgung und -optimierung der Standorte. Die IT Abteilung der Freudenberg Service KG ist Betreiber eigener Rechenzentren mit einer vielfältigen Serverlandschaft, sowie für die IT-seitige Betreuung von circa 800 Anwendern, deren Clients und der zugehörigen Infrastruktur zuständig. 1.2.2 Problemstellung Im Folgen sei exemplarisch ein Gespräch zwischen einem Anwender und einem IT-Administrator nachgestellt: Helpdesk: Hallo, IT. Hier Maxwell. Wie kann ich Ihnen helfen? Anwender: Doe hier, hallo. Ich habe mein Kennwort vergessen. 1
  5. 1 Allgemeines 2 Helpdesk: Um welches Kennwort handelt es sich

    bitte? Anwender: Das Kennwort, das ich morgens immer eingeben muss. Bei der Anmeldung. Helpdesk: Kein Problem. Das können wir Ihnen zurücksetzen. Wie lautet denn Ihr Anmel- dename? Anwender: Ich heiße John Doe, oder was meinen Sie? Helpdesk: Augenblick bitte, Herr Doe. Es entsteht eine kurze Pause. Der Helpdesk-Mitarbeiter sucht die Anmeldekennung von John Doe heraus und setzt über die Active Directory (AD)-Verwaltung ein neues Kennwort. Helpdesk: So, Herr Doe. Danke fürs Warten. Sie können sich nun wieder anmelden. Ihr neues Kennwort lautet Sommer09. Großes S. Funktioniert die Anmeldung? Anwender: Das Kennwort wurde nicht angenommen. Aber ich habe es ganz genau so ein- gegeben, wie Sie gesagt haben. Helpdesk: Moment, ich schalte mich mal kurz auf Ihren Desktop. So … o.k. Jetzt funktioniert es. Bitte geben Sie hier gleich ein neues Kennwort ein. Mit Sonderzeichen und einer Ziffer. Anwender: Das geht jetzt irgendwie auch nicht. Helpdesk: Sie brauchen mindestens acht Zeichen. Davon ein Sonderzeichen und eine Ziffer. Anwender: Das geht jetzt irgendwie wieder nicht. Helpdesk: Sie haben auch nur fünf Zeichen eingegeben… Anwender: Aha. Aha, okay. Ja, jetzt geht das. Danke. Helpdesk: Kein Problem. Auf Wiederhören. Obiges Gespräch ist eine der Standardsituationen für den Helpdesk. So oder ähnlich tritt es täg- lich mehrfach auf. Diese Situation zeigt, dass ein häufiger Grund, den Helpdesk zu kontaktieren, vergessene oder abgelaufene und nicht rechtzeitig geänderte Kennwörter sind. Hinzu kommen seltener, aber immer noch von relevanter Häufigkeit, Gespräche ähnlicher Natur spätabends oder am Wochenende. Abgesehen von der Zeit und den damit verbundenen Kosten, die ein solcher Vorgang mit sich bringt, birgt dieses Verfahren auch Sicherheitsrisiken. So sind der IT-Administration zwar viele der Anrufer persönlich bekannt, eine eindeutige Authentifizierung der Anwender erfolgt jedoch nicht. Auch die temporär vergebenen Kennwörter sind, zu Gunsten der Les- und Übermittelbar- keit, sicherheitstechnisch meist nicht optimal. Abbildung 1.1 visualisiert den bisherigen Prozess im günstigsten Falle, d.h. der Anwender hat keine zusätzlichen Probleme beim Ändern seines gesetzten Kennworts.
  6. 1 Allgemeines 3 Anruf bei Helpdesk Kennwort mitteilen Mit Active

    Directory verbinden Eigenes Kennwort setzen Kennwort setzen Userhelpdesk Anwenderfehler möglich Übermittlungsfehler möglich Abbildung 1.1: Bisheriger Prozess 1.2.3 Aufgabe und Ansatz Ein solcher Anwendungsfall tritt im Schnitt zweimal am Tag auf und dauert, bis er vollständig abgearbeitet ist, circa zehn Minuten. Die Kosten errechnen sich somit also wie folgt: Jahreskosten = 35 280€ Gehalt MA Helpdesk · 1, 41 Lohnkosten (1.1) Stundensatz = Jahreskosten 7, 24 h pro Tag · 220 Arbeitstage pro Jahr ≈ 31, 23€ (1.2) pro Fall = Stundensatz · 1/6 Stunde pro Fall ≈ 5, 20€ (1.3) Ziel meines Projekts ist es, eine Möglichkeit zu finden, o.g. Prozess soweit wie möglich zu automatisieren und damit die Kosten deutlich zu senken, ohne hierbei jedoch die Sicherheit zu gefährden. Angestrebt werden sollte eine Lösung, welche die bereits vorhandenen Ressourcen optimal nutzt.
  7. 1 Allgemeines 4 Der ohne Zögern angenommene Vorschlag an die

    Leitung der IT war die Implementierung einer webbasierten Lösung, welche auf dem Sicherheitsfragen-Prinzip beruht. Das Konzept sieht vor, dass sich der – sich im Firmennetz befindliche und damit korrekt authentifizierte – Nutzer für eine Kennwort-vergessen-Funktion registriert, bei der er nach einer Sicherheitsfrage und der zugehörigen Antwort gefragt wird. Hat der Nutzer sein Kennwort einmal vergessen, so kann er sich von einem beliebigen Rechner aus, mit Hilfe seines Namens und der korrekten Beantwortung der Sicherheitsfrage, ein neues Kennwort setzen und zustellen lassen. Für die sichere Übermittlung des neu gesetzten Kennworts sind verschiedene Lösungen zu evaluieren.
  8. 2 Planung 2.1 Bestandsaufnahme Für die Umsetzung des Projekts stehen

    in der IT-Landschaft der Service KG verschiedene Mög- lichkeiten zur Verfügung, die jeweils Vor- und Nachteile haben: Aufsetzen eines neuen Servers Ein vollständig neuer Server würde keinerlei Abhängigkeiten mit sich bringen. Die Wahl der Entwicklungsumgebung und eingesetzten Sprachen hinge lediglich von den internen Vorgaben der Service KG ab. Die Kosten für Beschaffung und Betrieb sowohl von Hard- als auch von Software wären hoch. Der Server muss von außen erreichbar gemacht werden. (Auf Grund der Konstellation im Konzern ist auch dies mit nicht unerheblichen Kosten verbunden.) Aufsetzen eines neuen virtuellen Servers Abgesehen von den Beschaffungs- und Betriebs- kosten der Hardware – der virtuelle Server könnte in der bereits bestehenden Cloud Com- puting Lösung der Service KG installiert werden – sind die Aufwände für eine virtualisierte Lösung analog zu denen eines neuen Servers. Nutzung des Intranetservers Die Service KG betreibt bereits einen – teilweise auch aus dem Internet erreichbaren – Intranetserver unter Windows 2003 Server Standard. Sowohl die Internet Information Services (IIS) als auch eine MS SQL Datenbank stehen zur Verfügung. Dieser Server soll mittelfristig vollständig durch eine MS Sharepoint Server Lösung ersetzt werden. Nutzung des Sharepoint Servers Es existiert bereits eine vollständig lauffähige Installation einer MS Sharepoint Serverfarm, die sich jedoch noch im Teststadium befindet. Eine Außenanbindung existiert hier noch nicht, wird jedoch zukünftig auf jeden Fall auch für andere Anwendungsfälle benötigt werden. Nutzung des Internetservers Der Internetauftritt der Freudenberg Service KG wird extern bei einem großen Provider gehostet und läuft unter Windows 2003 Server. IIS und SQL Datenbank stehen auch hier zur Verfügung und könnten genutzt werden. Der Server wird jedoch völlig unabhängig vom Netz der Service KG betrieben; ein Zugriff von diesem Server aus auf das AD besteht bisher in keiner Weise und wäre nur äußerst aufwendig herzustellen. Auf Grund dieser Tatsache kommt diese Lösung nicht in Betracht. In Tabelle 2.1 wurden die o.g. Argumente für und gegen die einzelnen Plattformen mit ein (schlecht) bis fünf (gut) Punkten bewertet. Es zeigt sich, dass die Nutzung der bestehenden Intranetplattform momentan die beste Alternative darstellt. 5
  9. 2 Planung 6 eigener Server virtueller Server Intranet- server Sharepoint-

    server Kosten Hardware 1 5 5 5 Kosten Software 1 1 5 5 Außenanbindung 1 1 5 3 Abhängigkeiten 5 5 3 1 Summe 8 12 18 14 Tabelle 2.1: Entscheidungsmatrix Produktivplattform 2.2 Feinkonzept Das Feinkonzept sieht vor, den Prozess in zwei Subprozesse zu unterteilen und diese beiden Subprozesse getrennt voneinander als Webapplikation abzubilden. 2.2.1 interne Applikation: User Self Service Die interne Applikation soll ausschließlich aus dem Freudenberg-internen Netz erreichbar sein. Es ist somit sichergestellt, dass der Anwender gegenüber dem System authentifiziert und auto- risiert ist. Über eine Weboberfläche, die der Anwender über das ihm bekannte Intranet erreicht, hat er die Möglichkeit, sich für die Rücksetzfunktionalität freizuschalten und seine persönliche Sicherheitsfrage sowie die dazu passende Antwort einzugeben. Sollte sich der Anwender dazu entscheiden, die Rücksetzfunktionalität nicht mehr nutzen zu wollen, kann er diese auf derselben Seite wieder deaktivieren. Die Statūs der Rücksetzfunktionalität der Anwender sowie deren persönliche Sicherheitsfragen und die dazu passenden Antworten sollen verschlüsselt in einer Datenbank gespeichert werden. 2.2.2 externe Applikation: Password Reset Die externe Applikation ist sowohl innerhalb des Freudenbergnetzes als auch von außen er- reichbar. Der Anwender, der sein Kennwort zurücksetzen möchte, wird auf einer Weboberfläche nach seinem vollen Namen gefragt. Existiert dieser Name und ist der zugehörige Anwender für die Rücksetzfunktionalität registriert, bekommt er seine Sicherheitsfrage gestellt. Kann er die- se korrekt beantworten, so wird ein neues Kennwort gesetzt und dieses wird dem Anwender zugestellt. Für die Übermittlung des neu gesetzten Kennworts kommen verschiedene Möglichkeiten in Betracht: per E-Mail Der Anwender bekommt sein neues Kennwort an eine von ihm zuvor definierte Backup-Adresse zugestellt. Diese Adresse muss beim Anlegen verifiziert werden, so dass
  10. 2 Planung 7 sichergestellt werden kann, dass sie gültig ist

    und der Anwender darauf Zugriff hat. Die Adresse darf sich ausschließlich über die interne Applikation ändern lassen. per SMS Die Telekommunikation der Service KG betreibt einen Unified Messaging Service (UMS), über den es möglich ist, über eine Simple Mail Transfer Protocol (SMTP)- Schnittstelle SMS per E-Mail zu versenden. Diese Schnittstelle kann genutzt werden, um das neue Kennwort an eine zuvor vom Anwender definierte Mobilfunknummer zu senden. Auf expliziten Wunsch der IT-Leitung sowie auf Grund der eleganten zweiten Lösung wird die E-Mail-Variante außer Acht gelassen. Da quasi jeder Anwender ein Mobiltelefon hat und die SMS-Lösung den zusätzlichen Vorteil hat, dass das neu gesetzte Kennwort nicht unverschlüsselt in firmenfremden Mailboxen liegt, ist die E-Mail-Variante momentan nicht interessant. 2.3 Zeitplan Für die Implementierung zweier kleiner Webapplikationen sowie deren Dokumentation ist die vorgegebene Zeit von 35h realistisch. Abbildung 2.1 zeigt einen Überblick. Projektarbeit Zustandsanalyse 2 Kostenkalkulation Planung Durchführung 2,25 Tage Tests 2 Dokumentation 1,25 Tage Kundenabnahme 12 16 20 0 4 8 12 16 20 0 4 8 12 16 20 0 4 8 12 16 20 0 4 8 12 16 20 0 4 8 12 16 Tag -1 Tag 1 Tag 2 Tag 3 Tag 4 Tag 5 Abbildung 2.1: Zeitplanung 2.4 Ressourcenplan Für die Entwicklung der Software sowie deren Test ist eine entsprechende Entwicklungsum- gebung nötig. Da der Zugriff auf das AD auch entwickelt und getestet werden soll, dies aus Sicherheitsgründen jedoch nicht im Produktivnetz der Service KG geschehen kann, ist außerdem eine Testdomäne notwendig. Es reicht jedoch vollkommen aus, die benötigte Landschaft auf der am Arbeitsplatz vorhandenen Workstation virtuell abzubilden.
  11. 2 Planung 8 • Entwicklungsumgebung – Visual Studio 2008 –

    Windows Server 2003 mit IIS und AD • Produktivumgebung – Intranetserver 2.5 Kostenplan Sämtliche für die Entwicklungsumgebung benötigten Ressourcen stehen dauerhaft zur Verfü- gung. Lizenzkosten für Entwicklungs- und Testsysteme fallen im Rahmen des Microsoft Enter- prise Agreements nicht an. Die Kosten für den Arbeitsplatz eines Auszubildenden, sowie alle damit zusammenhängenden Kosten für Software, Hardware oder Verbrauchsmittel sind durch die Verwaltungspauschale abgedeckt. Es fallen somit ausschließlich Personalkosten und die Kos- ten für den Betrieb einer Anwendung auf dem Intranetserver an. Auf letztere sind die Kosten für die Beschaffung der Serverhard- und software umgelegt. Der Stundensatz für einen Auszubildenden bei der Freudenberg Service KG errechnet sich wie folgt: Jahreskosten = 10 850€ Gehalt · 1, 41 Lohnkosten + 7000€ Pauschale (2.1) Stundensatz = Jahreskosten · 5/3 Anwesenheit 7, 24 h pro Tag · 220 Arbeitstage pro Jahr ≈ 23, 33€ (2.2) Hierbei wird davon ausgegangen, dass das Jahr 220 Arbeitstage (250 Tage laut Steuerjahr minus 30 Tage Urlaub) hat, von denen der Auszubildende 3 von 5 Tagen in der Woche anwesend ist (Übrige Zeit: Schule, Fortbildungen etc.). Für Personalkosten für die Projektbesprechung bzw. die zukünftige Pflege des Systems wird ein Stundensatz von 120 e angenommen. Einen Überblick über die entstehenden einmaligen und wiederkehrenden Kosten gibt Tabelle 2.2. einmalig monatlich Personalkosten für Auszubildenden (35h) 816,55 e - Personalkosten für Pflege der Software (20min) - 40 e Personalkosten Projektbesprechung (30min) 60 e - Pauschale Betrieb Intranetserver - 31,20 e Summe 876,55 e 71,20 e Tabelle 2.2: Projektkosten
  12. 3 Durchführung 3.1 Allgemeines Für die Entwicklung der beiden Webapplikationen

    User Self Service und Password Reset wird vollständig auf die Microsoft Entwicklungsumgebung Visual Studio 2008 und das .NET Frame- work gesetzt. Dies hat einerseits den Vorteil, dass mit den bereits zur Verfügung gestellten Bi- bliotheken und Frameworks problemlos aus dem AD gelesen und darin geschrieben werden kann, andererseits kann man davon ausgehen, dass auf dem Intranet-Server bereits alle notwendigen Einstellungen vorhanden und Abhängigkeiten aufgelöst sind, da ein Großteil aller Anwendungen, die dort bereits laufen, auf dieser Technologie aufbauen. Als Programmiersprache wird bei der Freudenberg Service KG bisher hauptsächlich Visual Basic .NET eingesetzt, mit der voranschreitenden Verbreitung der Sharepoint Technologie ent- stehen kleinere Anwendungen mittlerweile jedoch auch in C#. Aus Gründen der Zukunftssicher- heit, aber auch auf Grund der persönlichen Vorlieben des Autors, welcher C# der Sprache Visual Basic .NET deutlich vorzieht1, werden die Webapplikationen ausschließlich in C# geschrieben. Vollständig neu bei von der Service KG entwickelten Webapplikationen ist jedoch das einge- setzte Model View Controller (MVC)-Konzept, für das sich der Autor auf Grund seiner sehr guten Erfahrungen bei der Entwicklung von Webapplikationen mit Ruby on Rails, welches vollständig auf diesem Konzept basiert, entschieden hat. MVC bezeichnet eine Art und Weise, Software zu entwickeln, bei der die Entwicklung in drei Komponenten unterteilt geschieht: Model Das Model enthält die darzustellenden Daten bzw. den direkten Zugriff hierauf (z.B. SQL-Datenbank) sowie die Business Logic, also Methoden, um diese Daten zu verändern, sie zu löschen oder neue Daten hinzuzufügen. View Das View (dt. etwa: Präsentationsschicht) ist die für die Interaktion mit dem Anwender zuständige Komponente. Es stellt die Daten dar oder nimmt Daten entgegen. Controller Model und View sind vollständig unabhängig voneinander. Die Schnittstelle zwi- schen Model und View schafft der Controller. Er ist dafür zuständig, dass die Daten in gewünschter Form dem View bereitgestellt werden bzw. umgekehrt, dass die Daten, die von der Präsentationsschicht kommen, in geeigneter Form an das Model übergeben werden. Der Controller ist außerdem für die Validierung der Daten zuständig, so dass sichergestellt werden kann, dass keine ungültigen Daten übergeben werden. 1Die Vor- und Nachteile verschiedener Programmiersprachen zu erläutern würde nicht nur den Rahmen dieser kurzen Dokumentation sprengen, sondern artet oft sogar in sog. holy wars aus. Dem interessierten Leser sei jedoch die Artikelreihe Comparison of programming languages in der Wikipedia empfohlen. 9
  13. 3 Durchführung 10 Model View Controller Browser LINQ AD SQL

    Dispatcher Routes Web Server Abbildung 3.1: MVC-Architekturmuster Das MVC-Architekturmuster hat den großen Vorteil, dass Model und View vollständig getrennt voneinander entwickelt werden können. Konkret bedeutet dies für die Implementierung der bei- den Webapplikationen User Self Service und Password Reset, dass der Zugriff auf das AD, bzw. sogar die ganze Programmlogik, unabhängig von der entstehenden Weboberfläche ist und zu- künftig auch in anderen Applikationen genutzt werden könnte. Ein weiterer Vorteil ist, dass das View problemlos von einem Webdesigner erstellt werden kann, da hier Programmierkenntnisse nicht nötig sind. 3.2 User Self Service Die im Laufe der Projektphase User Self Service getaufte Applikation beschreibt den Teil der Anwendung, der für die Aktivierung der Rücksetzfunktionalität zuständig ist, sowie der Eingabe von Sicherheitsfrage und zugehöriger Antwort dient. Noch während der Konzeptphase war vorge- sehen, sämtliche Anwendungsdaten in eine eigene Datenbank auf dem SQL-Server zu speichern
  14. 3 Durchführung 11 und eine Relation zu dem jeweiligen Datensatz

    des Anwenders im AD herzustellen. Zum Leid- wesen des Autors, der an dieser Stelle nun kein schickes Entity-Relationship-Diagramm (ERD) präsentieren kann, hat sich während der Implementierungsphase herausgestellt, dass der Zugriff auf das AD lesend wie schreibend problemlos möglich ist und zudem im Freudenberg-Forest über eine Schemaerweiterung einige Felder für Eigenentwicklungen nutzbar gemacht worden sind, so dass Status, Frage und Antwort direkt im AD gespeichert werden können. + Freudenberg Service KG - User Self Service Security Question The Answer to Life, the Universe and Everything? Answer ****************************************** User Self Service Password Reset About Service KG Must be at least 8 characters long Activate Reset? Welcome John Doe, some informational text here. Lorem ipsum dolor sit amet... Must be at least 8 characters long Answer (con rm) ** Must be at least 8 characters long and match the answer + hps://intranet.fse.freudenberg.de/USS/ secure socket Abbildung 3.2: Skizze User Self Service Abbildung 3.2 zeigt eine Skizze der Oberfläche, wie sie der Anwender im Intranet zu sehen bekommen soll. Füllt der Anwender die Felder dieser Oberfläche korrekt aus – es wird geprüft, ob Frage und Antwort eine bestimmte Mindestlänge haben – werden die Daten an den Konstruktor der Klasse User übergeben und ein neues User-Objekt erzeugt. Existiert für den Anwender im AD ein Eintrag, wovon auszugehen ist, da der Anwender ohne im Freudenberg-Netz und damit im Intranet der Service KG angemeldet zu sein, die Seite nicht aufrufen kann, enthält das User- Objekt bereits bestimmte Attribute wie die Referenz auf den AD-Eintrag, die Mobilfunknummer, den aktuellen Status der Rücksetzfunktionalität und Sicherheitsfrage sowie Antwort, sofern diese bereits vorhanden sind. Listing 1 in den Quellcodeauszügen im Anhang zeigt die verkürzt dargestellte Methode GetA- DEntry(), in welcher der lesende Zugriff auf das AD erfolgt. Die übergebenen Werte domain und
  15. 3 Durchführung 12 user werden über eine Hilfsmethode aus dem

    AuthenticationString, welchen der IIS liefert, extra- hiert. Die Methode liefert dem Konstruktor der User-Klasse ein Objekt vom Typ DirectoryEntry zurück; der Konstruktor setzt dieses dann als Attribut des erzeugten User-Objekts. Ändert der Anwender seine Sicherheitsfrage, die Antwort oder den Status der Rücksetzfunk- tionalität über die Weboberfläche, werden – nach Validierung der Eingabe – die geänderten Werte als Attribute des User-Objekts gesetzt und die Methode Save() aufgerufen, welche die Werte dann der Reihe nach mit der SetProperty()-Methode (Listing 2) in das AD schreibt. Die Kommunikation zwischen dem User-Model und dem View, welches der Anwender in Form einer Webseite präsentiert bekommt, findet über den Controller statt. Im Controller ist hierzu für jedes Formular eine Aktion hinterlegt, die auf ein oder mehrere HTTP-Verben (GET, POST, PUT, DELETE) reagieren kann. Dies hat den Vorteil, dass die Webapplikation nach außen hin vollständig Representational State Transfer (REST)-konform aufgebaut ist. Das Beispiel in Listing 3 verdeutlicht das Prinzip: Der Anwender greift per GET auf die Ressour- ce /User/Edit/5 zu. Schon anhand des Uniform Resource Identifier (URI) erkennt ActionRe- sult, dass es den Nutzer (/User) Nr. 5 (/5) bearbeiten (/Edit) muss.2 Hat der Anwender das Formular ausgefüllt und sendet es ab, so greift er wieder auf dieselbe Ressource /User/Edit/5 zu, diesmal jedoch per POST-Request. Der Controller erkennt dies und liefert daher nicht das normale Edit-View aus, sondern übergibt die POST-Daten (nach Validierung) an das User-Model und liefert dem Anwender ein angepasstes View, welches diesen z.B. über die erfolgte Änderung der Daten informiert. 3.3 Password Reset Der lesende Zugriff auf das AD geschieht in der zweiten Applikation, Password Reset, analog zu dem der User Self Service Applikation. Im Unterschied zu dieser wird der im AD nachzu- schlagende Eintrag jedoch nicht über den vom IIS gelieferten AuthenticationString identifiziert, sondern über den Vor- und Nachnamen, den der Anwender eingibt und damit über die Felder sn und givenname im AD. In der Skizze der Nutzeroberfläche (Abbildung 3.3) ist dies Schritt 1. Verläuft die im Hintergrund stattfindende Prüfung, ob der Name im AD existiert und ob die Rücksetzfunktionalität für diesen Nutzer freigeschaltet ist, erfolgreich, so bekommt der An- wender zusätzlich das in der Skizze als Schritt 2 gekennzeichnete Formular mit seiner zuvor gewählten Sicherheitsfrage und der Aufforderung, die zugehörige Antwort einzugeben, präsen- tiert. Beantwortet er die Frage korrekt mit der von ihm gewählten Antwort, so erhält er den Hinweis, dass ihm ein neues Kennwort zugestellt wird (Schritt 3). Die eingesetzten Technologien sind hier weitgehend identisch zu denen der ersten Anwendung und seien daher nur kurz erwähnt: Es handelt sich um eine einfache, vollständig REST-konform aufgebaute Webapplikation, die nach dem MVC-Architekturprinzip konzipiert ist. Hinzu kommen bei der Password Reset Applikation die beiden für die Zustellung der SMS und 2Prinzipiell kann so jedes Objekt, nicht nur die Nr. 5, bearbeitet werden. In unserem konkreten Anwendungsfall hat der Anwender jedoch ausschließlich das Recht, seine eigene Instanz des User-Models zu ändern, daher kann hier die Referenz auf eine bestimmte User-ID entfallen. Der Anwender, und damit das zu bearbeitende User-Objekt, wird gegenüber dem Programm über den vom IIS gelieferten AuthenticationString identifiziert.
  16. 3 Durchführung 13 + + Freudenberg Service KG - Password

    Reset Your full name John Doe Answer ****************************************** User Self Service Password Reset About Service KG Welcome Foreigner! Some informational text here. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. Some informational text here. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. 1. 2. 3. John, what's the answer to Life, the Universe and Everything? That's correct. Your password will be delivered... hps://intranet.fse.freudenberg.de/PR/ secure socket Abbildung 3.3: Skizze Password Reset für das Logging benötigten Komponenten. Da jede (versuchte) Nutzung der Rücksetzfunktio- nalität dokumentiert werden soll, um möglichen Missbrauch nachvollziehen, aber auch um die Nutzung statistisch auswerten zu können, ist es notwendig, dass jeder Zugriff inkl. IP-Adresse des Clients, der Zugriffszeit und des zurückgesetzten Accounts protokolliert wird. Dies geschieht in einer einfachen Tabelle auf dem vorhandenen Datenbankserver. Der Zugriff auf die Datenbank erfolgt über den objektrelationalen Wrapper Language-Integrated Query (LINQ)-to-SQL. Bei dem in Schritt 3 erfolgenden Rücksetzen des Kennwortes wird in der Password-Klasse zunächst ein neues Kennwort generiert. Dieses Kennwort wird so erzeugt, dass es bestimm- ten Anforderungen genügt. So muss es beispielsweise eine bestimmte Mindestlänge haben, eine Kombination aus Groß- und Kleinschreibung sowie ein Sonderzeichen enthalten. Es wird außer- dem berücksichtigt, dass das neue Kennwort möglichst keine leicht zu verwechselnden Zeichen wie z.B. O (Buchstabe O) und 0 (Ziffer 0) oder I (Buchstabe I), l (Buchstabe l) und 1 (Ziffer 1) enthält. Nach Erzeugen des Kennwortes wird dieses, wie weiter oben bereits erläutert, in das AD
  17. 3 Durchführung 14 geschrieben3 und ein neues Objekt der Klasse

    SMS instantiiert, welchem die benötigten Daten, also die Mobilfunknummer des Anwenders aus dem AD und das neue Kennwort, übergeben werden. Nach Prüfung der Mobilfunknummer auf syntaktische Korrektheit, was eine Methode der SMS-Klasse übernimmt, übergibt die Send()-Methode der SMS-Klasse über die .NET-Klasse Mail alle relevanten Daten an das SMTP-Relay des UMS-Servers, der dann die Zustellung der SMS übernimmt. 3.4 Tests und Deployment Der Test der beiden Anwendungen erfolgte zweistufig. Die einzelnen selbstgeschriebenen Klassen wurden mit Hilfe sog. Unit Tests (dt. etwa: Komponententest) automatisiert überprüft. Hierfür wurden für alle relevanten Bereiche Testfälle generiert. Ein Beispiel für einen solchen Test zeigt Listing 4. Der auf das Unit Testing folgende Integrationstest erfolgte auf Grund seiner höheren Kom- plexität ausschließlich manuell. Es wurden hierfür verschiedene Beispielszenarien durchgespielt, welche immer wieder den Standardprozess nachstellten, hierbei jedoch immer wieder andere Fak- toren oder Kombinationen von Faktoren beinhalteten. Mögliche Variationen waren beispielsweise ein im AD nicht vorhandener Anwender oder eine fehlende oder inkorrekte Mobilfunknummer. Das Deployment der Anwendungen auf dem IIS erfolgte problemlos mit Hilfe des in Visual Studio 2008 enthaltenen Softwaredeploymentassistenten. Details hierzu sind der begefügten Kundendokumentation zu entnehmen. 3Gerne hätte der Autor auf Grund der Eleganz einer solchen Lösung auch auf das AD über eine weitere Abstrak- tionsschicht wie LINQ zugegriffen. Zum Zeitpunkt der Programmerstellung existierte diese Möglichkeit jedoch leider noch nicht und die Programmierung eines eigenen einfachen Wrappers wäre angesichts der vorgege- benen Zeit nicht realistisch und unter Betrachtung des Kosten-Nutzen-Verhältnisses auch nicht ökonomisch gewesen.
  18. 4 Abschluss 4.1 Kosten-Nutzen-Analyse Geht man von im Schnitt zwei

    Fällen pro Tag aus, so belaufen sich die bisherigen Kosten Kv pro Tag auf 10,40e (vgl. (1.3) auf Seite 3). Die täglichen Kosten nach der Automatisierung des Prozesses Kn belaufen sich – bei angenommenen 20 Arbeitstagen pro Monat – auf 3,56e zuzüglich der einmalig anfallenden Kosten von 876,55e (vgl. Tabelle 2.2). Der Break-even-Point errechnet sich somit wie folgt: Kv(Tage) = 10, 40€ · Tage (4.1) Kn(Tage) = 876, 55€ + 3, 56€ · Tage (4.2) Kv ∩ Kn ≈ 128 Tage (4.3) Nach 128 Arbeitstagen, d.h. also – bei 250 Arbeitstagen pro Jahr – nach etwas mehr als einem halben Jahr, sind die einmaligen Projektkosten gedeckt und es wird pro Arbeitstag eine Ersparnis von 10,40e - 3,56e = 6,84e erzielt. Dies entspricht ab dem 129. Tag einer Ersparnis von 250 * 6,84e = 1 710,00e pro Jahr. Die anfänglich erwähnten ebenso auftretenden Fälle einer Rücksetzung des Kennwortes am Abend oder während des Wochenendes sind hier auf Grund ihres unregelmäßigen Auftretens und der damit verbundenen schweren Quantifizierbarkeit nicht berücksichtigt. Qualitativ betrachtet tragen diese jedoch zu einer schnelleren Deckung der Fixkosten und zu einer größeren Ersparnis bei. 4.2 Soll-Ist-Vergleich Die beiden entwickelten Webapplikationen erfüllen ihre Aufgaben vollständig und korrekt. Ein während der Tests aufgetretenes, jedoch bei der Service KG bisher rein hypothetisches Problem, welches im Rahmen des Projekts nicht mehr gelöst wurde, ist das Vorhandensein mehrerer Anwender im AD mit dem selben Vor- und Nachnamen. In diesem Fall liefert die Applikation Password Reset standardmäßig die Sicherheitsfrage des ersten gefundenen Eintrags aus. Um diese Problematik zu umgehen, wäre ein weiteres Identifizierungsmerkmal notwendig. Anbieten würde sich hierfür beispielsweise das Geburtsdatum des Anwenders, welches bei der Service KG bisher allerdings nicht im AD erfasst wird. 15
  19. 4 Abschluss 16 Ein weiteres ungelöstes, jedoch nicht technisches Problem,

    ist die Tatsache, dass es mit Sicherheit auch Anwender geben wird, die sowohl ihr Zugangskennwort als auch die Antwort auf ihre Sicherheitsfrage vergessen. Tritt dieses Problem auf, ist weiterhin die manuelle Intervention des Helpdesks nötig. Dem Auftraggeber sind diese Probleme bekannt, er erachtet sie jedoch momentan als irre- levant bzw. technisch nicht lösbar. Das Projekt wurde in Gänze durch den Auftraggeber abge- nommen. 4.3 Fazit und Ausblick Ungeachtet der komplexen Aufgabenstellung gestaltete sich die Arbeit während des Projekts als sehr flüssig und alle genutzten Ressourcen waren gut dokumentiert, so dass nur sehr wenig Interaktion mit anderen Mitarbeitern nötig war. Da sich die Applikation User Self Service hervorragend dazu eignet, auch andere zentral gepflegte, aber unkritische, Anwenderdaten, wie z.B. die Telefonnummer, das Gebäude oder das Büro, durch den Anwender selbst pflegen zu lassen, wurde die Applikation bereits um diese Funktionalität erweitert. Auf Grund ihrer offenen und modularen Architektur war dies problemlos und in kürzester Zeit möglich. Die Applikation erfüllt somit noch einen weiteren Zweck und durch den sinkende Aufwand für verschiedene Stellen der Administration entsteht eine zusätzliche Kostenersparnis. Sobald die anfangs erwähnte Sharepointinstallation produktiv im Einsatz ist, sollte überdacht werden, Teile der User Self Service Applikation als Sharepoint Webpart neu zu implementieren, um auch künftig eine homogene Umgebung bieten zu können. Die bereits entwickelten Klassen, also die komplette Business Logic der Applikation, lassen sich hierbei vollständig verwenden, es ist lediglich notwendig, die Nutzerschnittstelle für die neue Umgebung zu schreiben. Mit ähnlich geringem Aufwand sollten sich außerdem weitere Views für die Password Reset Applikation schreiben lassen, die beispielsweise für mobile Endgeräte optimiert sind, um so die Zugänglichkeit weiter zu steigern.
  20. Abbildungsverzeichnis 1.1 Bisheriger Prozess . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1 Zeitplanung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.1 MVC-Architekturmuster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2 Skizze User Self Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3 Skizze Password Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 I
  21. Fachtermini Glossar Active Directory Active Directory ist in einem Windows

    2000/Windows Server 2003-Netzwerk der Verzeich- nisdienst, der die zentrale Organisation und Verwaltung aller Netzwerkressourcen erlaubt. Es ermöglicht den Benutzern über eine einzige zentrale Anmeldung den Zugriff auf alle Ressourcen und den Administratoren die zentral organisierte Verwaltung, transparent von der Netzwerktopologie und den eingesetzten Netzwerkprotokollen. Das dafür benötigte Betriebssystem ist entweder Windows 2000 Server oder Windows Server 2003, welches auf dem zentralen Domänencontroller installiert wird. Dieser hält alle Daten des Active Directory vor, wie z.B. Benutzernamen und Kennwörter. [3, Wikipedia] III, 2 Internet Information Services Internet Information Services ist eine Diensteplattform der Firma Microsoft für PCs und Server. Über sie können Dokumente und Dateien im Netzwerk zugänglich gemacht wer- den. Als Kommunikationsprotokolle kommen hierbei zum Einsatz: HTTP, HTTPS, FTP, SMTP, POP3, WebDAV und andere. [4, Wikipedia] III, 5 Language-Integrated Query LINQ ist ein Satz von Features in Visual Studio 2008, der die leistungsfähigen Abfra- gefunktionen mit der Sprachsyntax von C Sharp und Visual Basic erweitert. LINQ bietet standardmäßige, einfach zu erlernende Muster zum Abfragen und Aktualisieren von Daten, und die Technologie kann so erweitert werden, dass so gut wie jede Art von Datenspeicher unterstützt werden kann. [2, MSDN] III, 13 Representational State Transfer REST bezeichnet einen Softwarearchitekturstil für verteilte Hypermedia Informationssys- teme wie das WWW. Während dessen Architektur durch den URI-Standard und HTTP beschrieben werden kann, legt der REST-Architekturstil nahe, jede Ressource mit einer eigenen URI anzusprechen. REST stammt aus der Dissertation von Roy Fielding aus dem Jahre 2000, in welcher der Erfolg des WWWs auf bestimmte Eigenschaften der verwen- deten Mechanismen und Protokolle zurückgeführt wird. REST gilt in seiner Konsequenz als eine wichtige Richtlinie für die Nutzung von Web-Standards, in Abgrenzung zu vielen historisch gewachsenen Verfahren. Daraus folgt teils eine Rückbesinnung auf grundlegende Web-Technologien, die Implementierungen verteilter, webbasierter Systeme vereinfachen soll. [5, Wikipedia] III, 12 II
  22. Abkürzungsverzeichnis III Unified Messaging Service Unified Messaging bezeichnet ein Verfahren,

    in jeglicher Form eingehende und zu sendende Nachrichten (z. B. Voice-Mail, E-Mail, Fax, SMS, MMS, etc.) in eine einheitliche Form zu bringen und dem Nutzer über verschiedenste Access-Clients Zugang auf diese zu gewähren (z.B. Festnetz- oder Mobiltelefon, E-Mail-Client). III, 7 Abkürzungsverzeichnis AD Active Directory 2, 5, 7–15 ERD Entity-Relationship-Diagramm 11 IIS Internet Information Services 5, 8, 12, 14 LINQ Language-Integrated Query 13, 14 MVC Model View Controller 9, 10, 12 REST Representational State Transfer 12 SMTP Simple Mail Transfer Protocol 7 UMS Unified Messaging Service 7, 14 URI Uniform Resource Identifier 12
  23. Quellcodeauszüge 115 private DirectoryEntry GetADEntry(string domain, string user) 116 {

    117 // Define new Searcher for AD: 118 DirectorySearcher searcher = new DirectorySearcher(new DirectoryEntry("LDAP://" + domain + "freudenberg.tld","DEV\\ Administrator","geheim", System.DirectoryServices. AuthenticationTypes.Secure)); 119 120 // Add all Properties we need: 121 searcher.PropertiesToLoad.Add("sn"); 122 searcher.PropertiesToLoad.Add("givenname"); 123 searcher.PropertiesToLoad.Add("mobile"); 124 searcher.PropertiesToLoad.Add("extensionAttribute2"); 125 // [...] 126 127 // Get first entry of search: 128 searcher.Filter = "(samaccountname=" + user +")"; 129 130 try return searcher.FindOne().GetDirectoryEntry(); 131 catch return new DirectoryEntry(); 132 } Listing 1: Models/User.cs (C#) 61 private void SetProperty(string propertyname , string property) 62 { 63 try 64 { 65 this.entry.Properties[propertyname].Value = property; 66 this.entry.CommitChanges(); 67 } 68 catch(Exception e) 69 { 70 EventLog.WriteEntry("USM", e.Message , EventLogEntryType.Warning , 666); 71 } 72 } Listing 2: Models/User.cs (C#) IV
  24. Quellcodeauszüge V 31 // GET: /User/Edit/5 32 33 public ActionResult

    Edit() 34 { 35 User user = new User(Request.ServerVariables["AUTH_USER"]); 36 return View(user); 37 } Listing 3: Models/User.cs (C#) 10 namespace UserSelfManagement.Tests.Controllers 11 { 12 [TestClass] 13 public class HomeControllerTest 14 { 15 [TestMethod] 16 public void Index() 17 { 18 // Arrange 19 HomeController controller = new HomeController(); 20 21 // Act 22 ViewResult result = controller.Index() as ViewResult; 23 24 // Assert 25 ViewDataDictionary viewData = result.ViewData; 26 Assert.AreEqual("Welcome John Doe,", viewData["Message"]); 27 } 28 29 [TestMethod] 30 public void About() 31 { 32 // Arrange 33 HomeController controller = new HomeController(); 34 35 // Act 36 ViewResult result = controller.About() as ViewResult; 37 38 // Assert 39 Assert.IsNotNull(result); 40 } 41 } 42 } Listing 4: UserSelfManagement.Tests/Controllers/HomeControllerTest.cs (C#)
  25. Literaturverzeichnis [1] Bachfeld, Daniel: Phishing-Seite sammelte 57.000 Login-Daten von MySpace-Nutzern.

    Version: 2009. http://www.heise.de/security/Phishing-Seite-sammelte-57-000- Login-Daten-von-MySpace-Nutzern--/news/meldung/83752, Abruf: 29.05.2009. – Online Resource [2] MSDN: Sprachintegrierte Abfrage (Language-Integrated Query, LINQ). Version: 2009. http://msdn.microsoft.com/de-de/library/bb397926.aspx, Abruf: 29.05.2009. – On- line Resource [3] Wikipedia: Active Directory. Version: 2009. http://de.wikipedia.org/wiki/ Active_Directory, Abruf: 29.05.2009. – Online Resource [4] Wikipedia: Internet Information Services. Version: 2009. http://de.wikipedia.org/ wiki/Microsoft_Internet_Information_Services, Abruf: 29.05.2009. – Online Re- source [5] Wikipedia: Representational State Transfer. Version: 2009. http://de.wikipedia.org/ wiki/Representational_State_Transfer, Abruf: 29.05.2009. – Online Resource VI