Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht...

70
18. Februar 2010 Seite 1 von 70 Diplombericht Masterthesis MAS-07-02.11 Enterprise Password Manager 18. Februar 2010 Abstract: Mit dem "Enterprise Password Manager" soll eine Webapplikation mit Daten- bankanbindung entwickelt werden, die eine zentrale Verwaltung von Passwor- ten in einem Betrieb ermöglicht. Die Passworte werden verschlüsselt in der Datenbank abgelegt. Der Zugriff ist über einen Webbrowser jederzeit möglich. Schlüsselwörter: ASP.NET, Verschlüsselung, Webapplikation Klasse: Klasse MAS-07-02 Verfasserin: Marisa Marchetti Mozartstrasse 32 6004 Luzern Tel. 041/420 08 51, [email protected] Betreuer: Stefan Egli Murbacherstrasse 21 6002 Luzern Tel. 041/228 57 68, [email protected] Experte: Gerhard Hassenstein Morgartenstrasse 2c 3014 Bern Tel. 031 848 32 28, [email protected]

Transcript of Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht...

Page 1: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

18. Februar 2010 Seite 1 von 70

Diplombericht Masterthesis MAS-07-02.11

Enterprise Password Manager

18. Februar 2010

Abstract: Mit dem "Enterprise Password Manager" soll eine Webapplikation mit Daten-

bankanbindung entwickelt werden, die eine zentrale Verwaltung von Passwor-

ten in einem Betrieb ermöglicht. Die Passworte werden verschlüsselt in der

Datenbank abgelegt. Der Zugriff ist über einen Webbrowser jederzeit möglich.

Schlüsselwörter: ASP.NET, Verschlüsselung, Webapplikation

Klasse: Klasse MAS-07-02

Verfasserin: Marisa Marchetti

Mozartstrasse 32

6004 Luzern

Tel. 041/420 08 51, [email protected]

Betreuer: Stefan Egli

Murbacherstrasse 21

6002 Luzern

Tel. 041/228 57 68, [email protected]

Experte: Gerhard Hassenstein

Morgartenstrasse 2c

3014 Bern

Tel. 031 848 32 28, [email protected]

Page 2: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 2 von 70

Änderungskontrolle

Version Datum Bemerkung

0.1 12.02.2010 Erster Entwurf

0.2 14.02.2010 Aktualisierungen nach Refactoring, Testprotokoll angefügt.

0.3 16.02.2010 Aktualisierung nach Installation

0.4 16.02.2010 Installationsanleitung ergänzt

1.0 18.02.2010 Erkenntnisse aus dem Schlussreview ergänzt, letzte Anpassungen

Page 3: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 3 von 70

Inhaltsverzeichnis

Inhaltsverzeichnis 3

Abbildungsverzeichnis 5

Tabellenverzeichnis 6

1 Einleitung 7

1.1 Zweck 7

1.2 Definitionen und Abkürzungen 7

1.2.1 Definitionen 7

1.2.2 Abkürzungen 7

1.3 Referenzen 7

1.4 Inhaltsübersicht 8

2 Analyse 8

2.1 Anforderungen 8

2.2 Change Requests 8

2.3 Annullierung einer Anforderung 8

3 Design 9

3.1 Adaptiertes Schichtenmodell 9

3.2 Darstellung Benutzerschnittstelle 11

3.2.1 Umsetzung der Darstellungsprinzipien 11 3.2.1.1 Zwei-Spalten-Darstellung 11 3.2.1.2 Navigation 12 3.2.1.3 Master-Detail-Darstellung 13

3.2.2 Layout 13 3.2.2.1 Farbwahl 13 3.2.2.2 Cascading Style Sheets (css) 14

3.3 Benutzerschnittstellensteuerung 14

3.3.1 Seiten (Webforms) 14 3.3.1.1 Layout Masterpage 14 3.3.1.2 CodeBehind Masterpage 15 3.3.1.3 Layout Inhaltsseiten (Pages) 15 3.3.1.4 CodeBehind Inhaltsseiten 16

3.3.2 Steuerelemente (Controls) 20 3.3.2.1 Standard 20 3.3.2.2 Eigene Steuerelemente 21 3.3.2.3 Steuerelemente von Fremdanbietern 21

3.3.3 AJAX und Javascript 21

3.4 Geschäftslogik 21

3.4.1 Geschäftsobjektklassen (Entitäten) 21

3.4.2 Unterstützende Klassen 27 3.4.2.1 Serialisierung 27

Page 4: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 4 von 70

3.4.2.2 Verschlüsselung 28 3.4.2.3 Verwaltung von Session-Daten 29

3.5 Datenzugriffssteuerung 30

3.6 Daten 32

3.6.1 Datenbankmodell 32

3.6.2 Datenbanktabellen 33 3.6.2.1 Identifikation und Primärschlüssel 33 3.6.2.2 Zusatzinformationen 33 3.6.2.3 Tabellen und Felder 33

3.6.3 Trigger 36

4 Implementation 37

4.1 Entwicklungsumgebung 37

4.1.1 Software 37

4.1.2 Framework und Sprachen 37

4.1.3 Komponenten: 37

4.1.4 Projekt-Struktur (Solution) 38

4.1.5 AJAX 39

4.1.6 Clientscripts 41

4.2 Produktivumgebung 41

5 Tests 42

5.1 Testumgebung 42

5.1.1 Manuelle Tests in der Entwicklungsumgebung 42

5.1.2 Manuelle Tests in der Produktivumgebung 42

5.2 Testfälle 42

5.2.1 Anzeige 42

5.2.2 Verwaltung Passwort-Einträge 43

5.2.3 Verwaltung Gruppen 46

5.2.4 Verwaltung Benutzer 47

5.2.5 EntryLog 49

5.2.6 Import-/Export-Schnittstelle 49

6 Resultate 51

6.1 Realisierung der Anforderungen 51

6.2 Realisierung Sicherheitskonzept 55

6.2.1 Zugangskontrolle 55

6.2.2 Datenübertragung 55

6.2.3 Verschlüsselung 55

6.2.4 Log über die Aktionen der Passwort-Eintragstabelle 56

Page 5: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 5 von 70

6.3 Offene Punkte und Vorschläge für die Zukunft 56

6.3.1 Verwaltung der Benutzerrechte 56

6.3.2 Zugangskontrolle 56

6.3.3 Benutzerverwaltung 56

6.3.4 Logging 56

6.3.5 View des Passwortes 56

6.3.6 Passwort in die Zwischenablage kopieren 57

6.3.7 Import-/Export-Schnittstelle 57

6.4 Realisierung Zeitplan 57

6.5 Fazit 57

6.6 Ausblick 58

7 Anhänge 59

7.1 Benutzeranleitung 59

7.2 Installationsanleitung 59

7.2.1 Voraussetzungen 59

7.2.2 Datenbank 59

7.2.3 Webseite 59 7.2.3.1 Authentifizierung 60 7.2.3.2 Autorisierung 60 7.2.3.3 Deployment 61 7.2.3.4 Web.config- Datei 61

7.3 Testprotokoll Entwicklungsumgebung vom 14.-18.02.2010 63

7.3.1 Anzeige 63

7.3.2 Verwaltung Passwort-Einträge 64

7.3.3 Verwaltung Gruppen 66

7.3.4 Verwaltung Benutzer 68

7.3.5 EntryLog 69

7.3.6 Import-/Export-Schnittstelle 70

Abbildungsverzeichnis

Abbildung 1: Schichtenmodell und Technologie ................................................................................ 10

Abbildung 2: Physische Schichtentrennung ...................................................................................... 11

Abbildung 3: Zwei-Spalten-Darstellung ............................................................................................. 12

Abbildung 4: Navigation Grundstruktur .............................................................................................. 12

Abbildung 5: Master-Detail-Darstellung ............................................................................................. 13

Abbildung 6: Site Class (MasterPage) ............................................................................................... 15

Abbildung 7: TransferPage ............................................................................................................... 17

Abbildung 8: Pages (Rest) ................................................................................................................ 19

Page 6: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 6 von 70

Abbildung 9: Entitäten im Überblick .................................................................................................. 23

Abbildung 10: Entry und Group Klassen ........................................................................................... 24

Abbildung 11: User Klasse ................................................................................................................ 25

Abbildung 12: EntryLog und Action Klassen...................................................................................... 26

Abbildung 13: Klassen für Serialisierung/Deserialisierung ................................................................. 27

Abbildung 14: Encryption Klasse ....................................................................................................... 29

Abbildung 15: SessionWrapper Klasse ............................................................................................. 29

Abbildung 16: LINQ-Datenkontext ..................................................................................................... 31

Abbildung 17: Datenbankdiagramm .................................................................................................. 32

Abbildung 18: Trigger ........................................................................................................................ 36

Abbildung 19: Solution des Projekts .................................................................................................. 39

Abbildung 20: UpdatePanel mit Triggern ........................................................................................... 40

Abbildung 21: IIS Manager ................................................................................................................ 60

Abbildung 22: Autorisierung .............................................................................................................. 61

Abbildung 23: Physikalische Verzeichnisse....................................................................................... 61

Abbildung 24: Applikationsspezifische Einstellung ............................................................................ 62

Tabellenverzeichnis

Tabelle 1: Referenzen ....................................................................................................................... 7

Tabelle 2: Inhaltsseiten ..................................................................................................................... 16

Tabelle 3: Einfache Steuerelemente ................................................................................................. 20

Tabelle 4: Erweiterungen Entitäten ................................................................................................... 22

Tabelle 5: Methoden WcfSerializationHelpers ................................................................................... 28

Tabelle 6: Zusatzinformationen in Tabellen ....................................................................................... 33

Tabelle 7: Felder Tabelle Entry ......................................................................................................... 33

Tabelle 8: Felder Tabelle Group ........................................................................................................ 34

Tabelle 9: Felder Tabelle GroupPermission ...................................................................................... 34

Tabelle 10: Felder Tabelle PermissionSet ......................................................................................... 34

Tabelle 11: Felder Tabelle UserPermissionSet ................................................................................. 35

Tabelle 12: Felder Tabelle LogEntry ................................................................................................. 35

Tabelle 13: Projektordner .................................................................................................................. 38

Tabelle 14: Einstellungen Website .................................................................................................... 60

Page 7: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 7 von 70

1 Einleitung

1.1 Zweck

Dieses Dokument stellt die Projektdokumentation für die Masterthesis "Enterprise Password Ma-nager" dar. Es enthält technische Beschreibungen, organisatorische Angaben und praktische Er-kenntnisse aus dem Projekt. Das Dokument richtet sich an den Kunden (repräsentiert durch den Betreuer) und den Experten der Masterthesis.

1.2 Definitionen und Abkürzungen

1.2.1 Definitionen

Passwort-Eintrag Einheit, welche die Eigenschaften (Felder) des Passwortes im um-gangssprachlichen Sinn beinhaltet, z.B. Titel, Benutzername etc. Der Eintrag wird in eine Passwort-Gruppe eingefügt.

Passwort-Gruppe Eine Passwortgruppe enthält Passwort-Einträge. Die Passwortgruppe wird zur Strukturierung eingesetzt. Passwortgruppen können hierar-chisch verschachtelt werden.

1.2.2 Abkürzungen

AD Active Directory, ein hierarchischer Verzeichnisdienst von Microsoft , der die Verwaltung von Ressourcen in einem Netz übernimmt.

AD-Account Ein Benutzerkonto im Active Directory-Verzeichnis von Windows, das die Authentifizierung des Benutzers ermöglicht.

Css Cascading Style Sheets EPM Enterprise Password Manager PK Primärschlüssel (Primary Key) in der Datenbank FK Fremdschlüssel (Foreign Key) in der Datenbank Wcf Windows Communication Foundation

1.3 Referenzen

Referenz Dokument

[1] Heide Balzert, Lehrbuch der Objektmodellierung, Elsevier GmbH München, 2.Aufl. 2005

[2] Othmar Bürgi, Skripten Projektmanagement und Testen

[3] Holger Schwichtenberg, ASP.NET 3.5 mit Visual C# 2008 - Das Entwicklerbuch, Microsoft Press Deutschland, 2009

[4] Holger Schwichtenberg, Microsoft.NET 3.5 – Crashkurs, Microsoft Press Deutschland,

[5] Rolf Wenger, Handbuch der .NET-Programmierung, Microsoft Press Deutschland, 2007

Tabelle 1: Referenzen

Page 8: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 8 von 70

1.4 Inhaltsübersicht

Die vorliegende Projektdokumentation ist ein folgende Kapitelt unterteilt: 1. Kapitel: gibt eine Einleitung und beinhaltet grundlegende Informationen (z.B. Abkürzungen). 2. Kapitel: verweist auf die Anforderungen und allfällige Anpassungen. 3. Kapitel: beschreibt das Design mit einem adaptierten Schichtenmodell und dessen Umset-

zung. 4. Kapitel: beschreibt die Implementation, d.h. die konkrete Realisierung des Projektes. 5. Kapitel: beschreibt die Testumgebung und die Testfälle. 6. Kapitel: beschreibt die Resultate, insbesondere die Umsetzung der gestellten Anforderun-

gen, der Sicherheitsprinzipien und des Zeitplans, sowie offene Punkte und Erfah-rungen.

7. Kapitel enthält die Anhänge

2 Analyse

2.1 Anforderungen

Die Anforderungen wurden in der Software-Spezifikation detailliert beschrieben und werden des-halb in diesem Dokument nicht weiter erörtert.

Die damals festgehaltenen Anforderungen wurden regelmässig überprüft und bis auf kleine An-passungen beibehalten. Der Vergleich gestellte und erfüllte Anforderungen wird im Kapitel Resul-tate dargestellt.

2.2 Change Requests

Es wurde im Laufe des Projekts ein Change Request aufgenommen (Dokument im Anhang). Die-ser wurde vom Kunden (repräsentiert durch den Betreuer) beantragt und seitens des Projekts be-willigt.

Betroffene Anforderung:

Anforderung GI2: „Die Anwendung wird mit den Mitteln von .NET lokalisiert.“

Begründung:

Die Anwendung wird im nächsten Schritt mit Silverlight umgesetzt. Aktuell ist die Lokalisierung kein wirklicher Mehrwert, da nur englisch als Sprache vorgesehen ist. Die Lokalisierung wäre also nur Vorbereitung für später. Da aber eine Umsetzung mit Silverlight geplant ist, wäre die Lokalisierung nur ein unnötiger Zusatzaufwand

Konsequenz:

Die Anforderung wird annulliert.

2.3 Annullierung einer Anforderung

In der Schlussphase des Projektes wurde vom Kunden die Anforderung SE2 annulliert:

„Die Datenübertragung zwischen Browser und Webserver muss über HTTPS (Hypertext Transfer Protocol Secure) erfolgen. „

Aus seiner Sicht sei dies nicht sinnvoll und nicht erwünscht. Die Anforderung wurde deshalb fallen gelassen. Ein formaler Change Request wurde nicht mehr vorgenommen.

Page 9: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 9 von 70

3 Design

Wichtige Vorbemerkung:

In diesem Kapitel sind viele Angaben zur technologischen Umsetzung enthalten, die streng ge-nommen eigentlich nicht zum reinen Design, sondern eher zur Implementation gehören. Dennoch ist die Wahl der Technologie für die spätere Umsetzung mit der Konzeption des Designs eng ver-knüpft, weil die Technologie gerade im Falle von ASP.NET das Designkonzept sehr stark beein-flusst.

Da in unserem Falle die Wahl der Technologie betriebsgebunden festgelegt war, sind die folgen-den Ausführungen aus dieser Sicht zu erklären.

3.1 Adaptiertes Schichtenmodell

Für das Design des „Enterprise Password Manager“ wird ein angepasstes Schichtenmodell ver-wendet, das auf dem bekannten Drei-Schichten-Modell aufbaut und für ASP.NET 3.5 beschrieben wurde [1].

Es wird zuerst das Modell vorgestellt, dann die praktische Umsetzung für das Projekt beschrieben.

Darstellung Benutzerschnittstelle

Die Benutzerschnittstelle wird im Webbrowser des Clients dargestellt und technisch mit HTML und JavaScript umgesetzt.

Benutzerschnittstellensteuerung

Die Steuerung der Benutzerschnittstelle wird durch die ASP.NET-Technologie umgesetzt. Es wer-den Seiten (Webforms) und Steuerelemente (Controls) zur Verfügung gestellt, welche die Daten anzeigen und eine Interaktion mit dem Benutzer ermöglichen. Die ASP.NET Runtime befindet sich auf dem Webserver.

Geschäftslogik

Die eigentliche Verarbeitung der Geschäftsdaten. Sie findet auf dem Webserver statt.

Datenzugriffsteuerung

Die Daten werden der Benutzerschnittstelle zur Verfügung gestellt und nach der Interaktion in der Datenschicht gelagert. Es wird ein Objekt-Relationales Mapping vorgenommen.

Diese Funktionen werden von LINQ-to-SQL übernommen, das direkt aus ASP.NET angesprochen wird und auf ADO.NET aufsetzt. Diese Schicht befindet sich ebenfalls auf dem Webserver.

Daten

Die Daten sind in einer relationalen Datenbank auf einem Datenbankserver abgelegt und vom Webserver aus zugänglich.

In der ersten Abbildung werden die logischen Schichten der verwendeten Technologie gegenüber-gestellt, wobei die Darstellung der Übersichtlichkeit halber etwas vereinfacht wurde. Die Farbwahl spiegelt die physische Aufteilung der Schichten auf die verwendeten Komponenten wieder.

Page 10: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 10 von 70

Abbildung 1: Schichtenmodell und Technologie

In der zweiten Abbildung wird gezeigt, wie die Schichten sich auf die einzelnen Hardware-Komponenten verteilen.

Page 11: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 11 von 70

Abbildung 2: Physische Schichtentrennung

3.2 Darstellung Benutzerschnittstelle

3.2.1 Umsetzung der Darstellungsprinzipien

Die in der Spezifikation vorgegebenen Darstellungsprinzipien wurden in der Anwendung umge-setzt:

3.2.1.1 Zwei-Spalten-Darstellung

Die Seite ist in zwei Spalten aufgeteilt, die linke Spalte enthält die Navigation in der gewohnten Baumform, die rechte Spalte den Inhalt der Seite.

Die Abbildung zeigt die Sicht des Administrators auf die ganze Navigation.

Page 12: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 12 von 70

Abbildung 3: Zwei-Spalten-Darstellung

3.2.1.2 Navigation

Die Navigation ist in Form eines Treeviews aufgebaut und spiegelt die thematische Aufteilung der Anwendung in vier Bereiche:

Abbildung 4: Navigation Grundstruktur

Home Startseite, Dokumentation

Entries Passworteinträge

MasterData Stammdaten, d.h. Gruppen und Benutzer

Administration Log und Import-Exportschnittstelle

Die Bereiche MasterData und Administration können später nach Belieben gemäss Berechtigung ein- oder ausgeblendet werden.

Die Navigation und steuert die Anzeige ähnlich der Exploreransicht in Windows. Das Auswählen eines Knotens führt zur Anzeige der zugehörigen Inhaltsansicht.

Klicken auf den Knoten „Entries“ zeigt aktuell alle Passwort-Einträge an. Dies kann allenfalls bei der Einführung der Berechtigungen noch verändert werden.

Die Gruppen werden in den Stammdaten („MasterData“) erfasst und dann aus der Datenbank ge-lesen und als Knoten unter Entries angezeigt. Klicken auf den jeweiligen Gruppenknoten zeigt die entsprechende Auswahl der Einträge in der Inhaltsseite an.

Page 13: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 13 von 70

3.2.1.3 Master-Detail-Darstellung

Datensätze werden in einer Master-Tabelle angezeigt. Eine Zeile entspricht einem Datensatz, ein Teil der Felder wird als Spalten angezeigt. Wird eine Zeile ausgewählt, wird zu dieser Zeile eine Detailansicht gezeigt. In der Detailansicht können bestehende Datensätze bearbeitet und neue Datensätze erzeugt werden.

Abbildung 5: Master-Detail-Darstellung

3.2.2 Layout

3.2.2.1 Farbwahl

Für die Auswahl der Farben wurde auf eine Website zurückgegriffen, die Farbkombinationen für Webentwickler und auch gerade eine Möglichkeit anbietet, diese zusammen zu testen. Weitere Informationen sind hier zu finden:

http://www.colorcombos.com/index.html

Page 14: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 14 von 70

3.2.2.2 Cascading Style Sheets (css)

Cascading Style Sheets wurden verwendet, um das Aussehen der Webseiten zu steuern und der Anwendung ein einheitliches Layout zu geben. Aus logischer Sicht gehören sie zur Darstellung, weil sie direkt auf das Erscheinungsbild des gerenderten HTML-Codes Einfluss nehmen. Technisch können sie im Rahmen von ASP.NET auf dem Server erzeugt und an den Client ge-schickt werden, zählen dann eher zur Benutzerschnittstellensteuerungsschicht. Es wurde eine zentrale screen.css-Datei angelegt, welche allgemeine und für die Seiten spezifi-sche Selektoren und Klassen definiert. Diese befindet sich in einem speziellen App_Themes-Ordner (siehe auch App_ThemesApp_Themes App_ThemesApp_Themesin Projektstruktur).

Komponenten wie das TreeView-Steuerelement oder AJAX-Extender verwenden zusätzlich eigene untergeordnete Styles.

3.3 Benutzerschnittstellensteuerung

Vorbemerkung:

Da es sich sowohl bei den Seiten, als auch bei den Steuerelementen von der Struktur um Klassen handelt, werden diese Elemente im Design beschrieben. Es war Aufgabe des Design, nicht nur die Logik, sondern auch den Aufbau der Anwendung zu konzipieren.

3.3.1 Seiten (Webforms)

Die Pages wurden nach folgenden Prinzipien erstellt:

Die Grundstruktur der Seite wird durch die Masterpage festgelegt.

Jede Verwaltungseinheit erhält eine zugehörige Seite. Verwaltet werden Passworte, Benut-zer und Gruppen.

Jede Zusatzfunktion erhält eine zugehörige Seite. Dazu gehören Import/Export-Schnittstelle und Log.

Die .aspx-Datei enthält das Layout der Inhaltsseiten, hier werden die verschiedenen Steuerele-mente und Darstellungselemente eingefügt.

Die zugehörige CodeBehind-Datei (.aspx.cs) ist eine C#-Klasse, welche die zugehörige Logik zur Steuerung der Benutzerschnittstelle enthält. Es handelt sich vor allem um Funktionen zur Anzeige und Bearbeitung der Daten.

3.3.1.1 Layout Masterpage

In der Masterpage wird die Aufteilung der zukünftig angezeigten Seite in Spalten aufgeteilt. Ele-mente, die auf allen Seiten sichtbar sein sollen, werden in der Masterpage angelegt:

Navigations-Baum

Login-Information

Bilder

So wird eine Redundanz im Source Code vermieden. Ein Platzhalter-Container legt fest, wo die Inhaltsseiten angezeigt werden.

Page 15: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 15 von 70

3.3.1.2 CodeBehind Masterpage

Die CodeBehind-Klasse „Site“ steuert den Aufbau der Treeview-Steuerelemente. Es wurden je ein ASTreeview-Element für Home/Passworte, Stammdaten und Administration verwendet, um in der weiteren Entwicklung der Anwendung diese separat ansprechen zu können, z.B. entsprechend einer Berechtigung.

Die Hauptknoten der Treeview-Elemente werden als Struktur im Programm festgelegt. Für die Er-stellung Gruppen-Knoten werden jeweils die bestehenden Gruppen aus der Datenbank gelesen, da diese vom Benutzer erzeugt und bearbeitet werden können. Mit einer RefreshTree-Methode wird der ganze Baum neu aufgebaut, was auch von anderen Sei-ten aus genutzt werden kann. Um von einer Inhaltsseite auf den Programmcode der Masterseite zugreifen zu können, muss allerdings in der Inhaltsseite(aspx) ein Eintrag eingefügt werden: <%@ MasterType VirtualPath="~/Masterpages/Site.Master" %>

Abbildung 6: Site Class (MasterPage)

3.3.1.3 Layout Inhaltsseiten (Pages)

Die Inhaltsseiten :

Page Funktion

Default.aspx Startseite

EntriesPage.aspx Anzeige der Passwort-Einträge

GroupsPage.aspx Anzeige der Gruppen, welchen die Passwort-Einträge zugeordnet sind.

Page 16: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 16 von 70

UsersPage.aspx Anzeige der Benutzer

EntryLogPage.aspx Anzeige der Insert-, Update- und Delete-Aktionen auf den Pass-worten

TransferPage.aspx Import und Export von Passworten von einer Instanz der Anwen-dung zu einer anderen.

Tabelle 2: Inhaltsseiten

Die Steuerelemente werden weiter unten beschrieben.

3.3.1.4 CodeBehind Inhaltsseiten

Die Default-Seite enthält keinen spezifischen CodeBehind und wird deshalb nicht besprochen. Die CodeBehind-Klassen der Inhaltsseiten, die Daten anzeigen, sind ähnlich aufgebaut: Die Fel-der entsprechen den Darstellungs- und Steuerelementen, die Methoden stellen die Funktionalität der Elemente zur Verfügung. Es sind entweder „private“ Methoden zur internen Verwendung oder „protected“ Methoden als Eventhandler. Diese Eventhandler sind von ihren Namen her selbstsprechend und werden hier nicht weiter erläu-tert. Die folgenden Ereignisse wurden verwendet:

Klasse Ereignis (Event)

LinqDataSource Inserting, Selecting, Updating, Deleting

FormView ItemInserted, ItemUpdated, ItemDeleted, ItemCommand

TextBox TextChanged

Page Load

Zusätzlich wurden eigeneHilfsmethoden zum Filtern beim Lesen der Daten verwendet. Eine Ausnahme stellt die TransferPage dar, die keine Daten anzeigt, sondern die Import-/Exportschnittstelle zur Verfügung stellt.

Page 17: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 17 von 70

Abbildung 7: TransferPage

Die Methoden (ohne Eventhandler) werden kurz beschrieben:

Methode private SerializableEntry ConvertEntryToSerializableEntry(Entry dbentry)

Beschreibung Wandelt ein Objekt Entitätsklasse in ein Objekt der serialisierbaren Klasse um. Es könnten auch direkt die generierten Klassen mit dem DataContract-Attribut gezeichnet werden, doch aus Designüberlegungen heraus wurde eine spezielle Klasse dafür erstellt. Diese wird bei der Geschäftslogik (siehe Hilfsklassen Serialisierung) beschrieben.

Methode private Entry ConvertSerializableEntryToEntry(SerializableEntry serializable)

Beschreibung Wandelt das Objekt der serialisierbaren Klasse in ein Objekt der Entitätsklasse um.

Methode private long CreateImportGroup()

Beschreibung Erstellt eine neue Gruppe für importierte Passwort-Einträge in der Datenbank.

Page 18: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 18 von 70

Methode private void DownloadXmlFileToClient(string xml)

Beschreibung Bewirkt den Download der xml-Datei zum Client.

Methode private string ExportEntries()

Beschreibung Holt alle Passwort-Einträge aus der Datenbank und serialisiert sie in einen xml-String.

Methode private void ImportEntries(string xml)

Beschreibung Deserialisiert den xml-String zurück zu einer Liste Passwort-Einträge und schreibt diese in die Datenbank.

Methode private string UploadXmlFileToServer(string xml)

Beschreibung Lädt eine xml-Datei vom Client hoch und überführt sie in einen String für die weitere Verarbeitung.

Page 19: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 19 von 70

Abbildung 8: Pages (Rest)

Page 20: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 20 von 70

3.3.2 Steuerelemente (Controls)

Es wurden in erster Linie die von ASP.NET zur Verfügung gestellten Websteuerelemente verwen-det, zusätzlich wurde für eigene Zwecke Controls entwickelt.

3.3.2.1 Standard

Als HTML-Steuerlemente wurden HTML-Anchor und HTML-Table verwendet.

Einfache Websteuerelemente, die verwendet wurden, aber nicht ausführlich beschrieben werden:

Steuerelement Funktion

Button Normale Schaltfläche

LinkButton Schaltfläche mit Linkfunktion

Label Textfeld zur Anzeige

TextBox Textbox für Anzeige und Bearbeitung

Panel Container für andere Elemente

PlaceHolder Platzhalter auf der Masterseite

DropDownList Auswahlliste, kann an eine Datenquelle gebunden werden.

Image Bild

Checkbox Auswahl ja oder nein

Tabelle 3: Einfache Steuerelemente

GridView

Datensteuerelement. Zeigt die Datensätze in tabellarischer Form an und wurde für die Master-Tabelle verwendet.

FormView

Datensteuerelement. Zeigt einen Datensatz an und kann nach Belieben angepasst werden. Es wird jeweils ein Template für eine Ansicht verwendet: ItemTemplate (Lesen), InsertTemplate (Ein-gabe) und EditTemplate (Bearbeitung), sowie EmptyDataTemplate (Vorlage bei fehlendem Daten-satz).

Dieses Element wurde für die Detailansicht verwendet.

LinqDataSource

Datenquelle für die Datensteuerelemente, die auf einen LINQ-toSQL-Datenkontext zugreift. Die Datenquelle kann deklarativ konfiguriert werden.

RequiredFieldValidator

Validierungssteuerelement, das für Pflichtfelder verwendet wurde. Es prüft die Eingabe und zeigt einen Stern an, wenn das Feld nicht ausgefüllt wurde. Auf einen Meldungstext wurde verzichtet, da es sich um eine Anwendung für erfahrene Benutzer handelt.

FileUpload

Steuerelement, dass den Upload einer Datei vom Client zum Server unterstützt.

Page 21: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 21 von 70

3.3.2.2 Eigene Steuerelemente

StringTextBox.ascx

Ein Usercontrol, das eine Textbox und eine RequiredFieldValidator-Steuerelement vereint. Dieses Usercontrol wird für die Anzeige und Bearbeitung in den Formview-Elementen verwendet. Zusätz-lich enthält es noch ein Image, das nur für das Password-Feld eingesetzt wird (Passwortmodus).

MessageLabel.cs

Ein benutzerdefiniertes Control, das für die Anzeige von Warnungen und Fehlermeldungen ver-wendet wird.

3.3.2.3 Steuerelemente von Fremdanbietern

ASTreeView

Für die Navigation wurde ein TreeView Steuerelement verwendet. Details zum Produkt sind im Kapitel zur Implementation beschrieben.

3.3.3 AJAX und Javascript

Der Einsatz von AJAX und JavaScript muss zwar im Rahmen des Designs entschieden werden, grundsätzlich hat dieser Entscheid aber eher funktionale Aspekte. Deshalb werden diese beiden Themen in der Implementation besprochen.

Für dieses Kapitel wird festgehalten, dass gewisse Steuerelemente aus dem AJAX-Angebot (Up-datePanel, UpdateProgress, Extender) für den Aufbau der Seiten verwendet wurden.

3.4 Geschäftslogik

Eigentlich kann nicht von einer echten Geschäftslogikschicht gesprochen werden, da die Daten-quellensteuerelemente aus der Benutzerschnittstellensteuerung direkt auf den LINQ-toSQL-Datenkontext, d.h. auf die Datenzugriffsschicht zugreifen. Es werden also nicht nur Methoden auf-gerufen, sondern Daten verwendet. Für eine wirkliche Schichtentrennung müsste noch eine Schicht mit Geschäftsklassen dazwischen geschaltet werden.

Die vorliegende Anwendung dient in erster Linie dazu, Daten zu verwalten. Es werden Passworte, Gruppen, Benutzer und Logs aus der Datenlagerung geholt, verändert und wieder abgelegt, oder es werden neue erzeugt und abgelegt. Es machte aus unserer Sicht keinen Sinn, eine solche Zwi-schenschicht aufzubauen.

Nach strenger Definition ist die Anwendung damit eigentlich zweischichtig.

Dennoch schien es für Beschreibung sinnvoll, die Geschäftsobjekte und unterstützende Klassen, die der Benutzerschnittstelle zur Verfügung gestellt werden, in diesem Kapitel darzustellen.

3.4.1 Geschäftsobjektklassen (Entitäten)

Zu jeder Tabelle in der Datenbank gibt es eine entsprechende Geschäftsobjektklasse, die Felder der Tabellen sind als Felder und Eigenschaften in den Klassen abgebildet. Diese Klassen werden von einem LINQ-to-SQL-Datenkontext verwaltet (siehe unten).

Page 22: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 22 von 70

Diese Geschäftsobjektklassen werden vom Objektrelationalen Mapper als partielle Klassen gene-riert, deshalb können sie nach Belieben durch eigene Felder oder Eigenschaften erweitert werden. Sie enthalten zudem zahlreiche partielle Methoden, die ebenfalls erweitert werden können.

Folgende Erweiterungen / Überschreibungen wurden vorgenommen:

Klasse Methode / Eigenschaft Funktion

Entry partial void OnValidate

(System.Data.Linq.ChangeAction action)

Erweiterung, damit die Felder “Create-dAt/-By” und ModifiedAt/-By“ beim Vali-dieren automatisch abgefüllt werden.

Group partial void OnValidate

(System.Data.Linq.ChangeAction action)

Erweiterung zum Abfüllen der Felder “CreatedAt/-By” und ModifiedAt/-By“ und zum Setzen eines Null-Wertes.

public long? EditDropdownParentGroupID Property zur Veränderung des Rückga-bewertes auf „– 1“ statt „null“.

Für das Dropdown ist ein „null“ nicht als Auswahl möglich.

public string ParentGroupName Property zur Rückgabe des Titels der Gruppe

User partial void OnValidate

(System.Data.Linq.ChangeAction action)

Erweiterung zum Abfüllen der Felder “CreatedAt/-By” und ModifiedAt/-By“

Action public override string ToString() Überschreiben der ToString-Methode zwecks Rückgabe des Namens der Akti-on.

Tabelle 4: Erweiterungen Entitäten

Page 23: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 23 von 70

Abbildung 9: Entitäten im Überblick

Diese Darstellung vermittelt einen Überblick über alle Entitäten-Klassen, zugunsten der Darstel-lung wurden nur die Eigenschaften sichtbar gemacht. Details der Klassen werden in Einzeldia-grammen gezeigt.

Diese Klassen wurden aus den Datenbank-Tabellen generiert und enthalten zahlreiche Methoden, die für die Funktionen von LINQ-to-SQL verwendet werden. Dies wird aus den Bezeichnern er-sichtlich.

Page 24: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 24 von 70

Abbildung 10: Entry und Group Klassen

Page 25: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 25 von 70

Abbildung 11: User Klasse

Page 26: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 26 von 70

Abbildung 12: EntryLog und Action Klassen

Page 27: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 27 von 70

3.4.2 Unterstützende Klassen

3.4.2.1 Serialisierung

Abbildung 13: Klassen für Serialisierung/Deserialisierung

Diese beiden Klassen werden bei der Import/Export-Schnittstelle verwendet.

Die Klasse „SerializableEntry“ ist ein Spiegelbild der Entitäts-Klasse „Entry“ und wurde mit den nötigen Attributen (DataContract, DataMember) für eine Serialisierung / Deserialisierung durch den DataContractSerializer von WCF ausgerüstet.

Die Klasse „WcfSerializationHelpers“ stammt von einer OpenSource-Seite und wurde noch an-gepasst. Sie enthält statische Methoden zur Serialisierung und Deserialisierung unter Verwendung des Wcf DataContractSerializers. Der Serializer für Wcf wurde hier verwendet, weil er für die XML-Serialisierung und –deserialisierung sehr kompetent ist.

http://www.codeproject.com/KB/dotnet/SerializationHelpers.aspx

Page 28: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 28 von 70

Methode public static bool IsWcfSerializable(object check)

Beschreibung Überprüft, ob ein DataContract-Attribut gesetzt ist.

Methode public static T WcfDeserializeFromString<T>(string xml)

Beschreibung Deserialisiert einen xml-String zu einer Instanz T.

Methode public static string WcfSerializeToString<T>(T instance)

Beschreibung Serialisiert eine Instanz T in xml, resp. in einen xml-String.

Methode public static string WcfSerializeToString<T>(T instance, XmlWriterSettings xmlWriterSettings)

Beschreibung Serialisiert eine Instanz T in xml, resp. in einen xml-String. Hier wird aber darauf geachtet, dass das Encoding auf UTF8 gesetzt wird.

Methode public static T WcfRoundtripSerialize<T>(T instance) where T : class, new()

Beschreibung Serialisiert und deserialisiert eine Instanz. (Testmethode, nicht verwendet).

Tabelle 5: Methoden WcfSerializationHelpers

3.4.2.2 Verschlüsselung

Für die Verschlüsselung des Passwortes wurde aus dem System.Security.Cryptography Na-mespace des .Net Frameworks die Klasse ProtectedData verwendet. Diese Klasse gewährt Zugriff auf ein das DataProtect API (DPAPI) von Microsoft. Es handelt sich um einen Funktion des Betriebssystems, das ermöglicht, Daten zu schützen. Diese Technik wird von Microsoft empfohlen zur Verschlüsselung von Daten, die lokal z.B. auf einem Server ver-schlüsselt und entschlüsselt werden. Es muss so kein Key gespeichert werden. Die Klasse hat zwei Methoden Protect und Unprotect, die einen ByteArray entropy und einen Da-taProtectionScope als Argumente verwenden. Das ByteArray dient der Verschlüsselung, der Scope legt fest, in welchem Kontext die Daten ent-schlüsselt werden können:

CurrentUser: Nur der Benutzer mit seinen Credentials.

LocalMachine: Alle Threads auf der Maschine. Dieser Scope wird für Server empfohlen, die für unberechtigte Benutzer nicht zugänglich sind.

Der Passwort-Code wird jeweils beim Ablegen in die Datenbank verschlüsselt und beim Auslesen entschlüsselt. So ist das Passwort in der Datenbank geschützt, kann aber vom Benutzer gesehen und bearbeitet werden.

Page 29: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 29 von 70

Abbildung 14: Encryption Klasse

3.4.2.3 Verwaltung von Session-Daten

Diese Klasse dient der Verwaltung von Session-Daten in der Anwendung. Sie ist generisch gehal-ten und somit gut erweiterbar. Sie wird bei uns auch in anderen Projekten verwendet.

In dieser Anwendung wird sie für eine Benutzerwarnung und einen Passwort-Text benutzt, weitere Anwendungen können aber dazu kommen.

Abbildung 15: SessionWrapper Klasse

Page 30: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 30 von 70

3.5 Datenzugriffssteuerung

Für dieses Projekt wurde LINQ-to-SQL verwendet, ein LINQ-Provider aus dem .NET Framework, der folgende Funktionen zur Verfügung stellt [3]:

Umsetzung von Befehlen der Language Integrated Query (LINQ) Sprache in SQL-Befehle auf eine Datenbank mit MS SQL Server.

Objektrelationales Mapping inklusive Befehle zur Persistierung von neuen, geänderten oder gelöschten Objekten

Datenbankgenerierung (Forward Engineering)

Im Mittelpunkt steht der LINQ-to-SQL-Datenkontext, ein Objektcontainer, der unter anderem die Verbindung zur Datenbank herstellt und beendet, die Geschäftsobjekte verwaltet, Änderungen verfolgt und speichert und die Objekte zwischenspeichert.

Der Datenkontext enthält durch das objektrelationale Mapping für jede Datenbanktabelle oder-sicht eine LINQ-to-SQL-Entität, die einer Geschäftsobjektklasse entspricht.

Der Datenkontext wurde im Projekt aus den Datenbanktabellen im Sinne es Database First Map-pings erzeugt und den Bedürfnissen angepasst.

Die Datenkontextklasse ist partiell und enthält zahlreiche nicht implementierte Methoden, so dass Erweiterungen jederzeit möglich sind. Erweiterungen wurden im aktuellen Projekt für den Daten-kontext nicht verwendet, wohl aber für die Entitäten wie bereits beschrieben.

Die Datenbindung erfolgt über die Datenquellensteuerelemente (LinqDataSource) in der Benutzer-schnittstellensteuerung. Die Anzeige der Daten erfolgt durch die Datensteuerelemente wie Grid-View oder FormView.

Somit ist der Datenkontext ein Teil der Datenzugriffssteuerungsschicht, gibt aber Zugriff auf die Geschäftsobjektklassen, die wiederum in den Steuerelementen verwendet werden können. Auf eine dazwischengeschobene Schicht von Managed Objects wurde in dem vorliegenden Projekt verzichtet.

Page 31: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 31 von 70

Abbildung 16: LINQ-Datenkontext

Page 32: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 32 von 70

3.6 Daten

3.6.1 Datenbankmodell

Abbildung 17: Datenbankdiagramm

Action

ID

Name

EntryID

GroupID

Title

UserName

Password

URL

Notes

CreatedAt

CreatedBy

ModifiedAt

ModifiedBy

TS

EntryLogID

ActionID

UserName

AffectedEntryTitle

CreatedAt

CreatedBy

ModifiedAt

ModifiedBy

TS

LogCreatedAt

GroupID

ParentGroupID

Title

Description

IsActive

CreatedAt

CreatedBy

ModifiedAt

ModifiedBy

TS

GroupPermissionID

GroupID

PermissionSetID

Type

CreatedAt

CreatedBy

ModifiedAt

ModifiedBy

TS

PermissionSetID

Name

Description

CreatedAt

CreatedBy

ModifiedAt

ModifiedBy

TS

UserID

Name

FirstName

UserName

Email

Password

IsActiveDirectory

CreatedAt

CreatedBy

ModifiedAt

ModifiedBy

TS

UserPermissionSetID

UserID

PermissionSetID

CreatedAt

CreatedBy

ModifiedAt

ModifiedBy

TS

Page 33: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 33 von 70

3.6.2 Datenbanktabellen

Es sind alle in der Spezifikation beschriebenen Datenbanktabellen erstellt worden, obwohl einige nicht in der aktuellen Anwendung verwendet werden. Alle Tabellen, die zum Berechtigungsmana-gement gehören, sind für eine nächste Version angelegt worden.

3.6.2.1 Identifikation und Primärschlüssel

Jede Tabelle hat eine ID vom Typ bigint, not null, die eindeutig ist und somit als Primärschlüssel dient.

3.6.2.2 Zusatzinformationen

Alle Tabellen ausser „Action“ haben die folgenden fünf Felder:

Feld Typ Beschreibung

CreatedAt Datetime Wann wurde der Datensatz angelegt

CreatedBy Nvarchar(100), not null Durch wen wurde der Datensatz angelegt (der aktuelle Benutzer)

ModifiedAt Datetime Wann wurde der Datensatz verändert

ModifiedBy Nvarchar(100), not null Durch wen wurde der Datensatz verändert (der aktuelle Benutzer)

Timestamp Timestamp Zeitstempel für den internen Gebrauch der Datenbank

Tabelle 6: Zusatzinformationen in Tabellen

3.6.2.3 Tabellen und Felder

Entry

Die Tabelle Entry bildet den Passwort-Eintrag mit seinen Eigenschaften ab. Jeder Eintrag ist einer Gruppe zugeordnet. Diese Relation wird mit einem Fremdschlüssel auf die Tabelle Group abgebil-det. Das Feld für den Passwort-Code ist grösser als die übrigen Textfelder, weil die Verschlüsselung zu einem grossen String führt, der die übliche Grösse sprengte.

Feld Typ Beschreibung

GroupID FK,bigint, not null Fremdschlüssel auf die Tabelle Group

Title Nvarchar(100), not null Bezeichnung des Passworteintrages

UserName Nvarchar(100), not null Benutzername

Password Nvarchar(1000), not null Passwort-Code

URL Nvarchar(100), null Zugehörige URL

Notes Nvarchar(250), null Notizen zum Passworteintrag

Tabelle 7: Felder Tabelle Entry

Page 34: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 34 von 70

Group

Die Tabelle Group hat mit dem Feld ParentGroupID eine Relation auf sich selber. Dies dient dem hierarchischen Aufbau der Gruppen. Jede Gruppe kennt ihre Parent-Gruppe. Das IsActive-Feld dient der Steuerung der Anzeige der Gruppen. Gelöschte Gruppen werden nicht aus der Datenbank entfernt, sondern nur inaktiv. Inaktive Gruppen werden in der Anwendung nicht mehr angezeigt.

Feld Typ Beschreibung

ParentGroupID FK, bigint, null Fremdschlüssel auf Gruppe der nächstoberen Hierarchiestufe

Title Nvarchar(100), not null Bezeichnung der Gruppe

Description Nvarchar(250), null Kurze Beschreibung

IsActive Bit, not null Anzeige der Gruppe

Tabelle 8: Felder Tabelle Group

GroupPermission

Diese Tabelle beschreibt die Berechtigung auf eine Gruppe von Passwort-Einträgen. Angedacht sind vier Berechtigungsstufen („Vollzugriff“, „Entwerfen“, „Bearbeiten“ und „Lesen“), die im Feld „Type“ abgelegt sind. Zu jeder Berechtigungsstufe gehört ein PermissionSet, deshalb ein Fremdschlüssel auf die Tabelle PermissionSet. Die Tabelle stellt die Verbindung zwischen der Gruppe und dem Berechtigungs-Set her.

Feld Typ Beschreibung

GroupID FK, bigint, not null Fremdschlüssel auf die Tabelle Group

PermissionSetID FK, bigint, not null Fremdschlüssel auf die Tabelle PermissionSet

Type Nvarchar(100), Berechtigungsstufe

Tabelle 9: Felder Tabelle GroupPermission

PermissionSet

Diese Tabelle beschreibt das Berechtigungs-Set oder Permission-Set.

Feld Typ Beschreibung

Name Nvarchar(100), not null Bezeichnung des Berechtigungs-Sets

Description Nvarchar(250), null Beschreibung

Tabelle 10: Felder Tabelle PermissionSet

User

Diese Tabelle enthält die Eigenschaften des Benutzers. Das Feld Password wurde eingefügt, um eine spätere Erweiterung des Zugangs auf externe Benutzer offen zu halten. In diesem Sinne ist auch das Feld IsActiveDirectory nicht Pflichtfeld, könnte es aber in Falle einer Erweiterung werden.

Page 35: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 35 von 70

Feld Typ Beschreibung

Name Nvarchar(100), not null Der Nachname des Benutzers

FirstName Nvarchar(100), not null Der Vorname des Benutzers

UserName Nvarchar(100), not null Der Benutzername

Email Nvarchar(100), not null Emailadresse

Password Nvarchar(50), null Password-Code

IsActiveDirectory Bit, null Zugehörigkeit zum Active Directory

UserPermissionSet

Diese Tabelle verknüpft Benutzer und Berechtigungs-Sets. Die Tabelle hat zu diesem Zweck je einen Fremdschlüssel auf die Tabelle User und die Tabelle GroupPersmission.

Feld Typ Beschreibung

UserID FK,bigint, not null Fremdschlüssel auf die Tabelle User

PermissionSetID FK, bigint, not null Fremdschlüssel auf die Tabelle PermissionSet

Tabelle 11: Felder Tabelle UserPermissionSet

EntryLog

Diese Tabelle wurde erstellt, um die Datenbank-Aktionen auf die Tabelle Entry zu dokumentieren. Die Insert-, Update- und Delete-Aktionen werden über das Feld ActionID zugeordnet, die übrigen Felder werden über einen Trigger gefüllt, der die Daten aus der Entry-Tabelle kopiert. Deshalb sind auch hier die Felder CreatedAt/-By und ModfiedAt/-By erwähnt, weil sie kopierte Werte sind. Das Feld LogCreatedAt hält fest, wann der Eintrag ins Log geschrieben wird.

Feld Typ Beschreibung

ActionID FK, bigint, not null Fremdschlüssel auf die Tabelle Action

UserName Nvarchar(100), not null Benutzername aus Entry

AffectedEntryTitle Nvarchar(100), not null Bezeichnung des Passworteintrages

CreatedAt Datetime, not null Kopie: Erstelldatum und –zeit des Passwort-eintrages

CreatedBy Nvarchar(100), not null Kopie: Benutzer, der den Passworteintrag er-stellt hat.

ModifiedAt Datetime, not null Kopie: Änderungsdatum und -zeit

ModifiedBy Nvarchar(100), not null Kopie: Benutzer, der geändert hat

LogCreatedAt Datetime, null Datum und Zeit der Erstellung des Logeintra-ges

Tabelle 12: Felder Tabelle LogEntry

Page 36: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 36 von 70

Action

Diese Tabelle stellt die drei Aktionen zur Verfügung.

Feld Typ Beschreibung

Name Nvarchar(100), not null Name der Aktion (Insert, Update oder Delete)

3.6.3 Trigger

Wie erwähnt wurden für die Tabelle EntryLog Trigger verwendet. Es wurde jeweils für die Insert-, Update- und Delete-Aktionen ein Trigger auf die Tabelle Entry gelegt, der die Aktion festhält und die Daten in die Log-Tabelle kopiert.

Zusätzlich wird das Erstelldatum des Eintrages in die Log-Tabelle festgehalten.

Als Beispiel der OnInsertEntry-Trigger:

Abbildung 18: Trigger

Page 37: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 37 von 70

4 Implementation

4.1 Entwicklungsumgebung

4.1.1 Software

Auf den Entwicklungsrechnern wurden verwendet:

Windows XP oder Windows 7

MS Visual Studio 2008 SP1 Team System inkl. Datenbankprojekt

Tortoise und AnkhSVN als Subversion Clients

MS SQL Server 2008/2005 (Entwicklerversion) inkl. Management Studio

Internet Explorer 7/8, Firefox 3.x

NArrange (ordnet den Code fügt regions ein)

CodeRush Xpress für VS

4.1.2 Framework und Sprachen

Es wurden verwendet:

.NET Framework 3.5 SP1

C# inkl. LINQ

ASP.NET 3.5 SP1 und AJAX

JavaScript

Cascading Style Sheets (Css)

XML

4.1.3 Komponenten:

Aufgrund der Verpflichtung zur GPL-Lizenz wurde zur Hauptsache der Standard von Microsoft ASP.NET 3.5 SP1 verwendet.

Hinzugenommen wurden:

AJAXControlToolKit :

Eine von Microsoft gratis erhältliche Sammlung von AJAX-Steuerelementen und –Steuerelementerweiterungen (Extender), die auf ASP.NET AJAX aufsetzen.

ASTreeView:

Opensource TreeView-Steuerelement mit wesentlich mehr Funktionalität als das Standard-Steuerelement von Microsoft. Die Funktionalität wurde nicht ausgeschöpft, aber für eine Weiter-entwicklung steht sie zur Verfügung (z.B. DragAndDrop etc.).

Weitere Informationen zum ASTreeView sind hier zu finden:

http://www.astreeview.com/astreeviewdemo/astreeviewdemo1.aspx

Page 38: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 38 von 70

4.1.4 Projekt-Struktur (Solution)

Das Projekt ist in verschiedene Ordner aufgeteilt:

Ordner Inhalt

Code C#-Klassen

DB Die Dateien zum LINQ-Datenkontext, einzelne Entitäten mit Erweiterungen

Pages Die aspx-Seiten mit CodeBehind-Datei (.cs)

Controls Eigene Steuerelemente

MasterPages Masterpage-Files

css Zusätzliche css-Dateien

doc Ordner für die Benutzeranleitung

images Bilder

javascript Dateien für das TreeView-Steuerelement

App_Themes Von Visual Studio vorgegebener Ordner, der einen css-Ordner enthält. Die-ser enthält das selbstgeschriebene screen.css-File. Dieses hat aufgrund dieser Struktur hierarchisch die oberste Position für das Layout.

Auf Skins wurde verzichtet.

Tabelle 13: Projektordner

Page 39: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 39 von 70

Abbildung 19: Solution des Projekts

4.1.5 AJAX

Es wurden folgende Steuerelemente aus ASP.NET AJAX verwendet:

Page 40: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 40 von 70

ScriptManager: Auf der Masterpage verwendet, damit alle Seiten grundsätzlich AJAX benutzen können

UpdateProgress Auf der Masterpage verwendet, um eine animiertes Lade-Bild anzuzei-gen.

UpdatePanel Auf verschiedenen Seiten eingesetzt, um den Vorteil der partiellen Sei-tenerzeugung zu nutzen. Diese reduziert das kurze Verschwinden der Anzeige bei einem Postback im Internet Explorer.

AsyncPostBackTrigger Eingesetzt für Controls, die von ausserhalb eines UpdatePanels einen Update triggern sollen.

Im Beispiel wird ein GridView-Steuerelement von einem UpdatePanel-Element umschlossen, das zusätzlich Trigger definiert. Ein SelectedIndexChanged Event einer Dropdownlist löst ein Update des GridViews aus, ebenso ein TextChanged Event einer Textbox. Dies führt dazu, dass die Änderungen in den Filtern (und der dann ausgelöste Postback) immer zu einer Aktualisierung führen.

…………….. Zwischenstück ausgelassen.

Abbildung 20: UpdatePanel mit Triggern

Es wurde ein Extender aus dem AJAX Control Toolkit verwendet:

ConfirmButtonExtender Die Erweiterung wird einem Knopf zugefügt, der das Löschen eines Da-tensatzes auslöst. Der Benutzer wird mittels eines Popups gefragt, ob er wirklich löschen will.

Page 41: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 41 von 70

4.1.6 Clientscripts

Als Clientscript wurde nur JavaScript verwendet. Der Einsatz von JavaScript wurde bewusst ein-geschränkt, weil immer damit zu rechnen ist, dass der Benutzer den Skript-Gebrauch im Browser abgeschaltet hat. Die Anwendung sollte auch dann noch funktionieren.

ASP.NET verwendet allerdings selbst JavaScript in seinen Controls. Auf der Masterseite wird eine Warnung eingeblendet, um den Benutzer auf die Notwendigkeit von JavaScript hinzuweisen.

In der Anwendung wurde nur ein Script geschrieben, um den Inhalt der Passwort-Textbox in die Zwischenablage zu schreiben. Dies funktioniert allerdings nur mit dem Internet Explorer, bei Mozil-la Firefox ist diese Funktion blockiert.

Diese Funktion ist zudem sicherheitstechnisch etwas bedenklich, wurde aber im Hinblick auf das Informatiker-Zielpublikum in Kauf genommen.

4.2 Produktivumgebung

Webserver : lww-v010.kt.lunet.ch (Windows Server 2008, IIS7) DNS: passwords.kt.lunet.ch Datenbankserver: websql-s001mur (SQLServer 2005) Datenbank: diin_passwords (Platzbedarf ca. 1-2MB) Aktuell steht kein Zertifikat zur Verfügung, deshalb wird zurzeit noch auf eine „https“-Verbindung verzichtet.

Page 42: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 42 von 70

5 Tests

5.1 Testumgebung

5.1.1 Manuelle Tests in der Entwicklungsumgebung

Lenovo T500 Laptop mit Windows XP SP3

Visual Studio 2008 Team System

ASP.NET Development Server (integrierter Webserver in Visual Studio)

Internet Explorer 7.0.5730.11

Mozilla Firefox 3.5.2

MS SQL Server 2008 (lokal)

Testdaten

5.1.2 Manuelle Tests in der Produktivumgebung

Datenbankserver mit MS SQL Server 2005

Webserver Windows Server 2008, IIS 7

Lenovo T500 Laptop mit Windows XP SP3, Internet Explorer 7.0.5730.11

HP Desktop mit Windows 7, Internet Explorer 8

Mozilla Firefox 3.5.x

Testdaten

5.2 Testfälle

5.2.1 Anzeige

1 Navigation Baumstruktur Erfüllt

Schritte Erwartetes Resultat

Applikation starten Der Navigationsbaum wird korrekt und aufgeklappt angezeigt.

Die Struktur lässt sich korrekt erweitern und verkleinern. (collapse/expand)

Gesamtresultat

2 Navigation Passwort-Einträge Erfüllt

Schritte Erwartetes Resultat

„Entries“-Knoten auswählen Alle Passwort-Einträge werden ange-zeigt

Einen Gruppenknoten unter „Entries“ aus-wählen

Die korrekte Auswahl der Passwort-Einträge wird in der Mastertabelle an-gezeigt

Es wird in der Mastertabelle angezeigt, dass keine Einträge vorhanden sind.

Gesamtresultat

Page 43: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 43 von 70

3 Navigation Dokumentation Erfüllt

Schritte Erwartetes Resultat

„Documentation“-Knoten auswählen Die Benutzeranleitung wird in einem separaten Fenster angezeigt.

Gesamtresultat

4 Navigation Stammdaten Erfüllt

Schritte Erwartetes Resultat

„Users“-Knoten auswählen Die Seite für die Benutzerverwaltung wird angezeigt.

„Groups“-Knoten auswählen Die Seite für die Gruppenverwaltung wird angezeigt.

Gesamtresultat

5 Navigation Administration Erfüllt

Schritte Erwartetes Resultat

„Logs“-Knoten auswählen Die Seite für die Logs wird angezeigt.

„Transfer“-Knoten auswählen Die Seite für die Import-/Export-schnittstelle wird angezeigt.

Gesamtresultat

5.2.2 Verwaltung Passwort-Einträge

6 Neuen Passwort-Eintrag erfassen Erfüllt

Schritte Erwartetes Resultat

New-Button klicken Eingabemaske erscheint

Pflichtfelder nicht ausfüllen

Insert-Button klicken

Sternchen als Warnung erscheint

Alle Felder ausfüllen

Insert-Button klicken

Neuer Eintrag erscheint in Masteran-sicht.

Der neue Eintrag ist in der Datenbank.

Alle Felder ausfüllen

Cancel-Button klicken

Eingabemaske verschwindet,

kein Eintrag in der Datenbank.

Gesamtresultat

7 Passwort-Eintrag bearbeiten Erfüllt

Schritte Erwartetes Resultat

Einen Eintrag in der Mastertabelle auswählen Bearbeitungsansicht des entsprechen-den Datensatzes erscheint

Page 44: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 44 von 70

Felder bearbeiten

Pflichtfelder weglassen

Update-Button klicken

Sternchen bei nicht ausgefüllten Pflicht-feldern erscheint.

Felder bearbeiten

Alle Pflichtfelder ausfüllen

Update-Button klicken

Bearbeitungsmaske verschwindet

Eintrag wird richtig in der Mastertabelle angezeigt.

Eintrag ist richtig in der Datenbank ab-gelegt.

Felder bearbeiten

Alle Pflichtfelder ausfüllen

Cancel-Button klicken

Bearbeitungsmaske verschwindet.

Eintrag in Datenbank wurde nicht ver-ändert.

Gesamtresultat

8 Passwort-Eintrag löschen Erfüllt

Schritte Erwartetes Resultat

Einen Eintrag in der Mastertabelle auswählen Bearbeitungsansicht des entsprechen-den Datensatzes erscheint

„Delete“ klicken Popupfenster mit Frage nach Bestäti-gung erscheint.

Nicht bestätigen Bearbeitungsansicht verschwindet

Der Eintrag ist unverändert in der Da-tenbank abgelegt.

Bestätigen Bearbeitungsansicht verschwindet

Eintrag ist nicht mehr in Mastertabelle

Eintrag ist nicht mehr in der Datenbank

Gesamtresultat

9 Passwort-Eintrag suchen Erfüllt

Schritte Erwartetes Resultat

Titel, Name oder Vorname in die Search-Textbox eingeben

Enter

Mastertabelle zeigt die korrekte Aus-wahl oder zeigt an, dass kein Eintrag gefunden wurde.

Gesamtresultat

10 Passwort-Modus ändern: Insertmode Erfüllt

Schritte Erwartetes Resultat

„New“-Button klicken Eingabeansicht erscheint

Das Icon ist sichtbar

In der Eingabeansicht Passwort eingeben Punkte werden angezeigt

Speichern möglich

„Passwordmode“-Button klicken Die richtige Eingabe wird angezeigt

Page 45: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 45 von 70

Speichern möglich

„Passwordmode“-Button klicken Die Textbox ist leer, das Icon wird an-gezeigt.

„Passwordmode“-Button klicken Der Inhalt wird erneut angezeigt.

Gesamtresultat

11 Passwort-Modus ändern: Editmode Erfüllt

Schritte Erwartetes Resultat

„Select“ und „Edit“ klicken

Bearbeitungsansicht erscheint.

Passwort wird Klartext angezeigt.

„Passwordmode“-Button klicken Punkte werden angezeigt.

Das Icon ist sichtbar.

Editieren und Speichern möglich.

„Passwordmode“-Button klicken Die richtige Eingabe wird angezeigt

Editieren und Speichern möglich.

„Passwordmode“-Button klicken Die Textbox ist leer, das Icon wird an-gezeigt.

Neue Eingabe nötig.

Gesamtresultat

12 Passwort in Zwischenablage speichern Erfüllt

Schritte Erwartetes Resultat

Einen Passwort-Eintrag in der Mastertabelle auswählen

Bearbeitungsmaske erscheint

„CopytoClipboard“ klicken

In eine Textdatei einfügen

IE: Inhalt des Feldes ist in der Textdatei eingefügt.

Firefox: Meldetext, dass diese Funktion nur für IE verfügbar ist.

Gesamtresultat

13 Passwort Verschlüsselung/Entschlüsselung Erfüllt

Schritte Erwartetes Resultat

Ein Passwort-Eintrag erfassen und speichern In der Datenbank ist das Password-Feld verschlüsselt.

Einen Passwort-Eintrag auswählen und „Edit“ klicken

In der Bearbeitungsansicht wird das Password-Feld wieder im Klartext an-gezeigt.

Gesamtresultat

Page 46: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 46 von 70

5.2.3 Verwaltung Gruppen

14 Neue Gruppe erfassen Erfüllt

Schritte Erwartetes Resultat

New-Button klicken Eingabemaske erscheint

Pflichtfelder nicht ausfüllen

„Insert“ klicken

Sternchen als Warnung erscheint

Alle Felder ausfüllen

Insert-Button klicken

Neuer Eintrag erscheint in Masteran-sicht.

Der neue Eintrag ist in der Datenbank.

In der Navigation erscheint ein neuer Gruppenknoten.

Alle Felder ausfüllen (Aktiv: Ja)

Cancel-Button klicken

Abbruch, die Eingabemaske ver-schwindet, kein Eintrag in der Daten-bank.

Alle Felder ausfüllen (Aktiv :Nein)

„Insert“ klicken

Eintrag erscheint nicht in der Masterta-belle

Eintrag ist korrekt in der Datenbank abgelegt.

In der Navigation erscheint kein neuer Gruppenknoten.

Gesamtresultat

15 Gruppe bearbeiten Erfüllt

Schritte Erwartetes Resultat

Einen Eintrag in der Mastertabelle auswählen Bearbeitungsansicht des entsprechen-den Datensatzes erscheint

Felder bearbeiten

Pflichtfelder weglassen

Update-Button klicken

Sternchen bei nicht ausgefüllten Pflicht-feldern erscheint.

Felder bearbeiten

Alle Pflichtfelder ausfüllen

Update-Button klicken

Bearbeitungsmaske verschwindet

Eintrag wird richtig in der Mastertabelle angezeigt.

Eintrag ist richtig in der Datenbank ab-gelegt.

Felder bearbeiten

Alle Pflichtfelder ausfüllen (Aktiv: Ja)

Cancel-Button klicken

Bearbeitungsmaske verschwindet.

Eintrag in Datenbank wurde nicht ver-ändert.

Felder bearbeiten

Alle Pflichtfelder ausfüllen (Aktiv: Nein)

Update-Button klicken

Bearbeitungsmaske verschwindet.

Eintrag ist nicht in der Mastertabelle.

Eintrag ist korrekt in der Datenbank abgelegt..

Gesamtresultat

Page 47: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 47 von 70

16 Gruppe löschen Erfüllt

Schritte Erwartetes Resultat

Einen Eintrag in der Mastertabelle auswählen Bearbeitungsansicht des entsprechen-den Datensatzes erscheint

„Delete“ klicken Popupfenster mit Frage nach Bestäti-gung erscheint.

Nicht bestätigen Bearbeitungsansicht verschwindet

Der Eintrag ist unverändert in der Da-tenbank abgelegt.

Bestätigen Bearbeitungsansicht verschwindet

Eintrag ist nicht mehr in der Masterta-belle

Eintrag ist noch in der Datenbank, IsAc-tive ist auf false gesetzt.

Gesamtresultat

17 Gruppe suchen Erfüllt

Schritte Erwartetes Resultat

Name der Gruppe in Search-Textbox einge-ben

Enter

Mastertabelle zeigt die korrekte Aus-wahl oder zeigt an, dass kein Eintrag gefunden wurde.

Gesamtresultat

5.2.4 Verwaltung Benutzer

18 Neuen Benutzer erfassen Erfüllt

Schritte Erwartetes Resultat

New-Button klicken Eingabemaske erscheint

Pflichtfelder nicht ausfüllen

Insert-Button klicken

Sternchen als Warnung erscheint

Alle Felder ausfüllen

„Insert“ klicken

Neuer Eintrag erscheint in Masteran-sicht.

Der neue Eintrag ist in der Datenbank.

Alle Felder ausfüllen

Cancel-Button klicken

Abbruch, die Eingabemaske ver-schwindet, kein Eintrag in der Daten-bank.

Gesamtresultat

Page 48: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 48 von 70

19 Benutzer bearbeiten Erfüllt

Schritte Erwartetes Resultat

Einen Eintrag in der Mastertabelle auswählen Bearbeitungsansicht des entsprechen-den Datensatzes erscheint

Felder bearbeiten

Pflichtfelder weglassen

Update-Button klicken

Sternchen bei nicht ausgefüllten Pflicht-feldern erscheint.

Felder bearbeiten

Alle Pflichtfelder ausfüllen

Update-Button klicken

Bearbeitungsmaske verschwindet

Eintrag wird richtig in der Mastertabelle angezeigt.

Eintrag ist richtig in der Datenbank ab-gelegt.

Felder bearbeiten

Alle Pflichtfelder ausfüllen

Cancel-Button klicken

Bearbeitungsmaske verschwindet.

Eintrag in Datenbank wurde nicht ver-ändert.

Gesamtresultat

20 Benutzer löschen Erfüllt

Schritte Erwartetes Resultat

Einen Eintrag in der Mastertabelle auswählen Bearbeitungsansicht des entsprechen-den Datensatzes erscheint

„Delete“ klicken Popupfenster mit Frage nach Bestäti-gung erscheint.

Nicht bestätigen Bearbeitungsansicht verschwindet

Der Eintrag ist unverändert in der Da-tenbank abgelegt.

Bestätigen Bearbeitungsansicht verschwindet

Eintrag ist nicht mehr in Mastertabelle

Eintrag ist nicht mehr in der Datenbank

Gesamtresultat

21 Benutzer suchen Erfüllt

Schritte Erwartetes Resultat

Nachname, Vorname oder Benutzername in Search-Textbox eingeben

Enter

Mastertabelle zeigt die korrekte Aus-wahl oder zeigt an, dass kein Eintrag gefunden wurde.

Gesamtresultat

Page 49: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 49 von 70

5.2.5 EntryLog

22 Passwort-Eintrag suchen Erfüllt

Schritte Erwartetes Resultat

Passwort-Titel in Search-Textbox eingeben

Enter

Mastertabelle zeigt die korrekte Aus-wahl oder zeigt an, dass kein Eintrag gefunden wurde.

Gesamtresultat

23 Nach Aktion filtern Erfüllt

Schritte Erwartetes Resultat

In der Dropdownliste eine Aktion auswählen Mastertabelle zeigt die korrekte Aus-wahl oder zeigt an, dass kein Eintrag gefunden wurde.

Gesamtresultat

24 Aktionen auf Entry-Tabelle anzeigen Erfüllt

Schritte Erwartetes Resultat

Einen neuen Passwort-Eintrag erfassen Logeintrag korrekt angezeigt

Einen Passwort-Eintrag bearbeiten Logeintrag korrekt angezeigt

Einen Passwort-Eintrag löschen Logeintrag korrekt angezeigt

Gesamtresultat

5.2.6 Import-/Export-Schnittstelle

25 Passwort-Einträge importieren Erfüllt

Schritte Erwartetes Resultat

Transfer-Seite wählen

Import-Button klicken

Der Upload-Dialog wird angezeigt.

Xml-Datei auswählen Es wird eine neue Gruppe „Im-ports“+Username in der Datenbank erstellt.

Die importierten Einträge sind in der Datenbank.

Die sind in der Navigation unter dem neuen Gruppenknoten zu finden.

Gesamtresultat

Page 50: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 50 von 70

26 Passwort-Einträge exportieren Erfüllt

Schritte Erwartetes Resultat

Transfer-Seite wählen

Export-Button klicken

Im IE wird das XML mit allen Entries angezeigt und kann gespeichert wer-den.

Im Firefox wird der Speichern-Dialog angezeigt und die xml-Datei kann ge-speichert werden.

Gesamtresultat

Das Testprotokoll für einen Test in der Entwicklungsumgebung ist im Anhang abgelegt.

Page 51: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 51 von 70

6 Resultate

6.1 Realisierung der Anforderungen

P = Priorität

Resultat:

Erfüllt Die Anforderung wurde vollständig umgesetzt.

Nicht erfüllt Die Anforderung wurde gar nicht umgesetzt.

Teils erfüllt Die Anforderung wurde von der Kernfunktionalität, z.B. Passwort löschen,

erfüllt, aber ein Teil ist nicht erfüllt, z.B. die Berechtigungsvalidierung.

Verschoben Anforderungen werden auf die nächste Version verschoben.

Annulliert Die Anforderung wird gestrichen.

ID Anforderung / Kommentar P Resultat

Allgemeine Anforderungen

GI1 Die Sprache der Benutzeroberfläche ist Englisch. 1

GI2

Die Anwendung wird mit den Mitteln von .NET lokalisiert.

Diese Anforderung wurde im Rahmen eines ChangeRequests annul-liert.

2

GI3 Startseite 1

GI4 Entries, Groups 1

GI5 Users 2

Import/Export-Schnittstelle

EI1

Der Enterprise Password Manager (EPM) muss dem Benutzer die Möglichkeit bieten, die Passwort-Einträge aus einer anderen Installati-on der Anwendung in Form einer XML-Datei zu importieren.

Einschränkung: Aktuell nur mit dem gleichen Webserver möglich.

2

EI2

Der EPM muss dem Benutzer die Möglichkeit bieten, die Passwort-Einträge in eine andere Installation der Anwendung in Form einer XML-Datei zu exportieren.

Einschränkung: Aktuell nur mit dem gleichen Webserver möglich.

2

EI3

Import und Export müssen verschlüsselt (Rijndal-Algorithmus) werden. Der Benutzer muss ein Passwort eingeben, um die Operation durch-führen zu können.

War zeitlich nicht mehr umsetzbar.

2

Neuen Passwort-Eintrag erfassen

Page 52: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 52 von 70

PV1

Der EPM muss dem Benutzer die Möglichkeit bieten, einen Passwort-Eintrag mit den zugehörigen Daten zu erfassen. Erforderlich sind Titel, Benutzername, Passwort und Gruppe, die anderen Felder (URL, Noti-zen) sind optional. Die Erfassung soll in einer Erfassungsmaske erfol-gen.

1

PV2 Der EPM muss dem Benutzer die Möglichkeit bieten, den erfassten Passwort-Eintrag zu verwerfen oder in der Datenbank zu speichern.

1

PV3 Der EPM muss dem Benutzer die Möglichkeit bieten, den neu erfass-ten Passwort-Eintrag einer Passwortgruppe zuzuordnen.

1

Passwortgruppen-Struktur

PV4 Der EPM muss dem Benutzer die Möglichkeit bieten, eine neue Pass-wortgruppe zu erstellen. Erforderlich ist ein Name, der anschliessend in der Baumstruktur der Navigation angezeigt wird.

1

PV5 Der EPM muss dem Benutzer die Möglichkeit bieten, die Passwort-gruppen hierarchisch zu verschachteln. Die hierarchische Struktur muss in der Baumstruktur der Navigation abgebildet werden.

1

PV6 Die Passwortgruppen sollen beliebig viele Hierarchie-Stufen umfassen. 1

PV7 Der EPM muss dem Benutzer die Möglichkeit bieten, eine Passwort-gruppe umzubenennen.

1

PV8

Der EPM muss dem Benutzer die Möglichkeit bieten, eine Passwort-Gruppe über eine Suchfunktion zu suchen und auszuwählen.

Der Benutzer kann eine Texteingabe machen, die zur Passwort-Gruppe gehörigen Felder werden durchsucht.

1

PV9

Der EPM muss dem Benutzer die Möglichkeit bieten, eine Passwort-gruppe zu löschen. Die zugehörigen Passwörter werden dann ge-löscht.

Die Gruppe wird in der Datenbank als inaktiv gekennzeichnet. Im inak-tiven Zustand wird die Gruppe nicht angezeigt.

Die Passwort-Gruppe darf nicht gelöscht werden, solange es noch Da-tenbankeinträge gibt, die auf die Gruppe zeigen. Dies ist der Fall, weil es in der Datenbank eine Spiegel-Tabelle der Passworteinträge gibt.

1

Passwort-Einträge anzeigen / Passwort-Eintrag suchen

PV10

Der EPM muss dem Benutzer eine Liste der Passwort-Einträge anzei-gen, für die er berechtigt ist. Die Anzeige erfolgt in tabellarischer Form (Liste), wobei jede Zeile einem Passwort-Eintrag entspricht. Einschränkung: Berechtigungen noch nicht implementiert, dies betrifft aber die Anforderungen für PermissionSets. Kernfunktionalität aber erfüllt.

1

PV11

Der EPM muss dem Benutzer die Möglichkeit bieten, die Auswahl der Passwort-Einträge durch die Navigation zu steuern. Die Selektion einer Passwortgruppe bewirkt die Anzeige der dieser Gruppe zugehörigen Einträge. Die Einträge der in der Hierarchie darunterliegenden Grup-pen werden nicht angezeigt.

1

PV12 Der EPM muss dem Benutzer die Möglichkeit bieten, einen Datensatz (Zeile) in der Liste auszuwählen. Der EPM muss zum ausgewählten Datensatz eine Detailansicht mit allen Feldern anzeigen.

1

Page 53: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 53 von 70

PV13

Der EPM muss dem Benutzer die Möglichkeit bieten, einen Passwort-Eintrag über eine Suchfunktion zu suchen und auszuwählen. Der Be-nutzer kann eine Texteingabe machen, die zum Passwort-Eintrag ge-hörigen Felder werden durchsucht.

Durchsucht werden die Felder „Title“ und „UserName“.

1

Passwort-Eintrag bearbeiten

PV14

Der EPM muss dem Benutzer die Möglichkeit bieten, einen Passwort-Eintrag (Datensatz) aus der Liste auszuwählen und zu bearbeiten, falls er die nötigen Rechte besitzt. Anderenfalls muss der EPM eine ent-sprechende Meldung anzeigen. Einschränkung: Berechtigungen noch nicht implementiert, dies betrifft aber die Anforderungen für PermissionSets. Kernfunktionalität ist er-füllt.

1

PV15 Der ausgewählte Datensatz wird ein einer Bearbeitungsmaske mit al-len Feldern angezeigt. Die einzelnen Felder können editiert werden.

1

PV16 Der EPM muss dem Benutzer die Möglichkeit bieten, den veränderten Passwort-Eintrag (Datensatz) zu verwerfen oder zu speichern. Durch ein Speichern wird der alte Datensatz durch den neuen ersetzt.

1

Passwort-Eintrag in die Zwischenablage kopieren

PV17

Der EPM muss dem Benutzer die Möglichkeit bieten, den Inhalt des Passwort-Feldes (Password) in die Zwischenablage zu kopieren. Funktioniert nur für den InternetExplorer, weil für Mozilla blockiert.

1

Passwort-Eintrag löschen

PV18

Falls der Benutzer die nötigen Rechte besitzt, muss der EPM ihm die Möglichkeit bieten, einen Datensatz auszuwählen und zu löschen. Der Datensatz wird in der Folge nicht mehr angezeigt. Einschränkung: Berechtigungen noch nicht implementiert, dies betrifft aber die Anforderungen für PermissionSets. Kernfunktionalität aber erfüllt.

1

Zugang

BR1 Der EPM muss AD-Benutzern die Möglichkeit bieten, mit ihrem beste-henden AD-Account auf die Anwendung zuzugreifen.

1

BR2

Falls der Benutzer keinen Zugangsberechtigung hat, muss der EPM eine entsprechende Meldung anzeigen.

Aktuell wird der Zugang über IIS gesteuert, nicht über die Anwendung.

1

Administratorrolle

BR3

Der EPM muss eine Administratorrolle zur Verfügung stellen. Der Ad-ministrator ist unabhängig von der Steuerung durch Permission-Sets. Der Administrator ist zuständig für die Erstellung von Benutzern, Per-mission-Sets und für die Zuteilung der Permission-Sets zu den Benut-zern. (Detaillierte Beschreibung in den einzelnen Anforderungen) Aktuell gibt es nur einen Zugang: Wer aus dem AD berechtigt ist, sieht alles. Das entspricht der späteren Administratorrolle.

1

Page 54: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 54 von 70

Benutzer erstellen und verwalten

BR4

Der EPM muss dem Administrator die Möglichkeit bieten, einen neuen Benutzer mit den zugehörigen Daten zu erfassen. Erforderlich sind Name, Vorname, Benutzername, Email und IsActiveDirectory (true/false). Die Erfassung soll in einer Eingabemaske erfolgen.

2

BR5 Der EPM muss dem Administrator die Möglichkeit bieten, die Daten eines bestehenden Benutzers zu bearbeiten.

2

BR6 Der EPM muss dem Administrator die Möglichkeit bieten, einen Benut-zer zu löschen.

2

BR7

Der EPM muss dem Benutzer die Möglichkeit bieten, einen Benutzer über eine Suchfunktion zu suchen und auszuwählen.

Der Benutzer kann eine Texteingabe machen, die zum Benutzer gehö-rigen Felder werden durchsucht.

2

PermissionSets erstellen

BR8 Der EPM muss die vier Berechtigungsstufen „Vollzugriff“, „Entwerfen“, „Bearbeiten“ und „Lesen“ zur Verfügung stellen.

3

BR9 Der EPM muss einem Administrator die Möglichkeit bieten, Permissi-on-Sets zu erstellen. Ein Permission-Set entspricht einer Matrix, in der Berechtigungsstufen und Passwortgruppen zugeordnet werden.

3

PermissionSets zuordnen/entfernen

BR10 Der EPM muss einem Administrator die Möglichkeit bieten, einem Be-nutzer ein Permission-Set zuzuordnen.

3

BR11 Einem Benutzer können 0 bis mehrere Permission-Sets zugeteilt ha-ben.

3

BR12 Der EPM muss einem Administrator die Möglichkeit bieten, einem Be-nutzer oder einer Benutzergruppe ein Permission-Set wieder zu weg-zunehmen.

3

Datenbasis

DM1 Das Datenmodell muss so aufgebaut sein, dass eine Erweiterung der Funktionalität entsprechend der Anforderungen möglich ist.

1

DM2 Das Datenmodell wird in englischer Sprache erstellt. 1

Sicherheit

SE1 Es muss eine Authentifizierung der Benutzer durchgeführt werden. 1

SE2

Die Datenübertragung zwischen Browser und Webserver muss über HTTPS (Hypertext Transfer Protocol Secure) erfolgen. Da aktuell noch kein Zertifikat vorhanden, wird dies später umgesetzt. Die Voraussetzungen sind gegeben. Die Übertragung zwischen Webserver und Datenbankserver soll eben-falls verschlüsselt erfolgen. (Wahrscheinlich SSL, die definitive Wahl der Technologie muss in der Designphase entschieden werden.) Vom Kunden in der Realisierungszeit abgelehnt.

1

Page 55: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 55 von 70

SE3

Der EPM muss die vom Client erhaltenen Daten verschlüsseln, bevor sie an die Datenbank übergeben werden. Der Inhalt des Password-Feldes wird vor dem Speichern verschlüsselt und vor der Anzeige entschlüsselt. Weitere Felder waren vom Auftrag-geber nicht gewünscht.

1

SE4 Zur serverseitigen Verschlüsselung wird das Framework von .NET (System.Security.Cryptography Namespace) verwendet.

1

SE5 Der EPM soll dem Administrator ein Log zur Überwachung der Vor-gänge anbieten. (Die Art der Anzeige wird in der Designphase defi-niert.)

2

Tabelle 15: Realisierung Anforderungen

6.2 Realisierung Sicherheitskonzept

Da die Sicherheitsanforderungen sehr zentral für die Applikation sind, sollen sie hier noch detail-liert behandelt werden.

6.2.1 Zugangskontrolle

Die Zugangskontrolle erfolgt in dieser Version über das Active Directory und die Funktionen des IIS (InternetInformationsdienste) auf dem Webserver. Dies kann nur ein Anfangszustand sein, bis das Berechtigungskonzept umgesetzt ist.

6.2.2 Datenübertragung

Die Datenübertragung findet ausschliesslich im Intranet-Bereich der Firma statt. Die Übermittlung zwischen Client und Webserver soll zukünftig mit „Https“ erfolgen, aktuell ist aber noch kein Zertifi-kat auf dem benutzten Server. Das wird noch nachgereicht.

Die Datenübermittlung zwischen Webserver und Datenbankserver sollte laut Anforderungen eben-falls über eine gesicherte Leitung (SSL) erfolgen. Dies wurde aber vom Kunden abgelehnt, weil er es nicht für sinnvoll hält. Demnach wird darauf verzichtet.

6.2.3 Verschlüsselung

Das Password-Feld mit dem eigentlichen Passwort-Code wird vor dem Einfügen in die Datenbank verschlüsselt und beim Auslesen für die Anzeige entschlüsselt. Dies wird mit den von Microsoft zur Verfügung gestellten Funktionen der „DataProtection“(System.Security.Cryptography Namespace des .NET-Frameworks) bewirkt.

Auf diese Art muss kein Key lokal aufbewahrt werden und der Zugang ist nur auf dem Server mög-lich. Dieser wiederum ist durch das Berechtigungssystem im Betrieb für unbefugte Benutzer nicht zugänglich.

Die Verschlüsselung des Import-/Export-Strings sollte mittels eines Keys und der RiindaelManaged Klasse des Frameworks (ebenfalls System.Security.Cryptography Namespace) erfolgen, diese Funktion konnte aber nicht mehr eingebaut werden.

Page 56: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 56 von 70

6.2.4 Log über die Aktionen der Passwort-Eintragstabelle

Es wurde eine Seite eingerichtet, die alle Insert-, Update- und Delete-Aktionen anzeigt, die auf der Tabelle Entry durchgeführt wurden. Es wird jeweils angezeigt, wer wann den Eintrag erzeugt und wer wann den Eintrag verändert hat.

Zu diesem Zweck wird mittels eines Triggers aus der Entry-Tabelle ausgelesen und in die Entry-Log-Tabelle geschrieben. Damit ist eine Kontrolle über die Manipulationen an den Passwort-Einträgen sichergestellt.

6.3 Offene Punkte und Vorschläge für die Zukunft

Die folgenden Punkte stammen teilweise aus der Entwicklungszeit, zum grossen Teil aber aus der Schlussbesprechung mit dem Experten.

6.3.1 Verwaltung der Benutzerrechte

Die Verwaltung der Benutzerrechte wurde nicht implementiert, alle Anforderungen dazu waren als Priorität 3 eingestuft und damit von Anfang an für eine spätere Version geplant worden (siehe Ka-pitel 1.5.3 im Pflichtenheft).

Aktuell gibt es eine Sicht für alle, die über die Zugangskontrolle des IIS gekommen sind. Das ist sicher eine tiefgehende Einschränkung, die aber in Zusammenarbeit mit dem Auftraggeber von Anfang an als Übergangszustand in Kauf genommen wurde.

6.3.2 Zugangskontrolle

Für die Zukunft ist neben der Implementierung der Benutzerrechte auch eine „forms based Authen-tication“ vorzusehen. Für eine sicherheitskritische Anwendung wie diese sollte nicht auf Windows Authentifizierung zurückgegriffen werden, um den Schutz vor Malware zu erhöhen.

6.3.3 Benutzerverwaltung

Es wäre eine grosse Erleichterung für die Benutzerverwaltung, wenn die Benutzer über eine Such-Funktion aus dem Active Directory übernommen werden könnten. Dies würde die aufwändige Er-fassung ersparen und wäre ohne allzu grossen Aufwand umsetzbar. Es wäre allerdings mit den Zuständigen zu klären, wie ein solcher Zugriff erlaubt ist.

6.3.4 Logging

Die beschriebene Anzeige der Datenbank-Aktionen auf der Tabelle der Passwort-Einträge ist eine eingeschränkte Lösung. Für eine ganz ausgebaute Lösung ist ein umfangreicheres Logging vorzu-sehen. Dies müsste für eine nächste Version geplant werden.

6.3.5 View des Passwortes

Der Benutzer will sein Passwort ansehen können, ohne in den Bearbeitungsmodus gehen zu müs-sen. Es sollte deshalb auf der Lese-Sicht noch einen Viewmode-Button (Vorschlag) geben, der einen Blick auf das Passwort zulässt.

Page 57: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 57 von 70

6.3.6 Passwort in die Zwischenablage kopieren

Beim Erstellen der Spezifikation hatte ich mich auf einen Artikel im Internet gestützt, der zusagte, dass diese Funktion mit dem beschriebenen Script auch für Mozilla Firefox einsetzbar sei. Deshalb habe ich die Anforderung auch aufgenommen.

Leider hat das Skript dann aber nicht funktioniert, alle weiteren Informationen im Internet sprachen dafür, dass diese Funktion beim Mozilla Firefox Browser aus Sicherheitsgründen nicht eingebaut werden kann. Es lassen sich zwar Konfigurationen beeinflussen, aber das ist heikel und geht wahrscheinlich nicht per Javascript.

So musste schliesslich auf dieses Feature verzichtet werden. Vielleicht findet sich für eine nächste Version doch noch eine befriedigende Lösung.

6.3.7 Import-/Export-Schnittstelle

Diese Schnittstelle ist nicht fertig und müsste noch einmal grundsätzlich überdacht werden.

6.4 Realisierung Zeitplan

In der ersten Phase bis zur Abgabe des Pflichtenheftes war der Plan gut einzuhalten, die verspäte-te Eingabe des Abstracts beruhte nicht auf Zeitnot, sondern auf einem vergessenen Termin.

Die Zeitrahmen der beiden Iterationen konnten zwar eingehalten werden, aber nur für den Preis der Verschiebung der Dokumentation zugunsten mehr Zeit für die Implementation. Es wurden während der ersten Iteration zwar sehr wohl Raum für Design und Testen eingeräumt, aber die Resultate nicht im Dokument festgehalten.

Wie bei der Planung bereits erwartet, war die Implementation zeitintensiver als gedacht, Aufgrund mangelnder Erfahrung liess sie sich schlecht schätzen, viele Probleme kamen erst im Laufe der Arbeit ins Blickfeld. Die Import-/Exportschnittstelle wurde meinerseits hinsichtlich des Aufwandes unterschätzt.

Die Dokumentation wurde deshalb im Laufe der zweiten Iteration erstellt.

6.5 Fazit

Es war eine spannende und lehrreiche Erfahrung, einmal ein kleines Softwareprojekt alleine von Anfang bis Ende durchzuziehen. Bisher hatte ich immer mitgeholfen, aber nie alles gemacht.

Es war aber auch etwas eigenartig, Projektleiterin, Entwicklerin, Testerin und Verkäuferin in Per-sonalunion zu sein und immer wieder die Rolle zu wechseln. Oft war ich in der Entwicklerinnenrolle verhangen und verlor die anderen etwas aus den Augen. Erst dann wurde ersichtlich, wie ange-nehm es sein kann, einen guten Projektleiter zu haben, der den Überblick behält.

Für die ruhige und geduldige Begleitung des Experten war ich sehr dankbar, die fachlichen Fragen zur Entwicklung hat mein Betreuer ebenfalls geduldig beantwortet.

Ein kleineres Arbeitspensum und damit mehr Zeit für die Masterarbeit wären hilfreich gewesen, gleichzeitig konnten beide Bereiche immer wieder voneinander profitieren.

Page 58: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 58 von 70

6.6 Ausblick

Es ist das erklärte Ziel der Entwicklungsabteilung, die Applikation weiter zu entwickeln, die fehlen-den Teile noch zu ergänzen. Gleichzeitig ist eine Weiterentwicklung in Silverlight geplant.

Ob die Weiterentwicklung zuerst mit ASP.NET abgeschlossen und die Anwendung dann portiert wird oder ob bereits früher eine Portierung erfolgen soll, ist noch nicht entschieden.

Nach wie vor ist die GPL-Verpflichtung vorhanden, es muss gerade hinsichtlich Silverlight über-prüft werden, ob diese auch weiterhin eingehalten werden kann.

Page 59: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 59 von 70

7 Anhänge

7.1 Benutzeranleitung

Die Benutzeranleitung wird ein einem separaten Dokument verfasst und als PDF-Datei in den Do-kumentationsordner der Anwendung abgelegt, so dass sie für den Benutzer jederzeit abrufbar ist.

7.2 Installationsanleitung

Die Installation ist auf die Infrastruktur des Kunden ausgerichtet, selbstverständlich können Na-mensgebung und Maschinen anders gewählt werden.

7.2.1 Voraussetzungen

Datenbankserver:

Windows Server 2008

MSSQLServer 2005 oder 2008

Webserver:

Windows Server 2008

.Net 3.5 SP1

Webserver Rolle (IIS7) mit

ASP.Net

Windows Authentifizierung

SSL-Zertifikat auf dem Webserver

DNS-Adresse als Alias für den Webserver: passwords.kt.lunet.ch

7.2.2 Datenbank

Auf dem Datenbankserver muss zuerst eine Datenbank mit dem Namen „diin_passwords“ einge-richtet werden. Die Datenbank-Struktur kann mittels Skripten oder einfacher aus einem Visual Stu-dio Datenbankprojekt heraus aufgebaut werden.

Einen Benutzer (data_reader, data_writer) einrichten. Wenn auf Passwörter in der Konfigurations-datei verzichtet werden soll, muss mit „Integrierter Security“ gearbeitet werden: z.B. den Domänen-Benutzer, unter dem die Webseiten laufen, berechtigen.

7.2.3 Webseite

Auf dem Webserver mit Hilfe des Internetinformationsdienste-Managers eine neue Website hinzu-fügen:

Page 60: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 60 von 70

Abbildung 21: IIS Manager

Einstellung Eingabewert

Sitename Name der Website, z.B. passwords

Physikalischer Pfad Verzeichnis auf dem Server, z.B. c:/Web/passwords

Bindung Typ (http oder https) und Port (80 resp. 443) eingeben

Hostname Alias DNS Namen, z.B. passwords.kt.lunet.ch

SSL-Zertifikat Falls vorhanden, SSL-Zertifikat auswählen

Tabelle 14: Einstellungen Website

7.2.3.1 Authentifizierung

Anonyme Authentifizierung (Voreinstellung) deaktivieren und Windows-Authentifizierung aktivieren.

7.2.3.2 Autorisierung

Den Eintrag „Zulassen alle Benutzer“ (Voreinstellung) löschen. (siehe Abbildung).

Page 61: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 61 von 70

Abbildung 22: Autorisierung

Die gewünschte Gruppe aus dem Active Directory Verzeichnis hinzufügen.

7.2.3.3 Deployment

Das physikalische Verzeichnis auf dem Webserver anlegen. Die Anwendungsdateien inkl. Konfigu-rationsdatei im Visual Studio mit „Publish“ vorbereiten und dann in dieses Verzeichnis kopieren.

Abbildung 23: Physikalische Verzeichnisse

7.2.3.4 Web.config- Datei

Die web.config-Datei muss in folgenden Bereichen angepasst werden:

Page 62: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 62 von 70

Datenbank Connection String

Einstellung Wert

DataSource Datenbankserver, z.B. websql-s001mur

Initial Catalog Name der Datenbank, z.B. diin_passwords

Persist Security Info True

User ID Datenbankbenutzer, z.B. diin_passwords

Password Das zugehörige Passwort

Falls Integrated Security verwendet wird, können die letzen drei Einstellungen auf „Integrated Se-curity = true“ reduziert werden.

Authentifizierung

Falls noch nicht vorhanden, ist Windows Authentifizierung zu wählen.

<authentication mode="Windows"/>

Compilation

Debug auf „false“ stellen.

Applikationsspezifische Einstellungen

In der Applikation kann die maximale Grösse für den FileUpload eingestellt werden.

Abbildung 24: Applikationsspezifische Einstellung

Page 63: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 63 von 70

7.3 Testprotokoll Entwicklungsumgebung vom 14.-18.02.2010

7.3.1 Anzeige

1 Navigation Baumstruktur Erfüllt

Schritte Erwartetes Resultat

Applikation starten Der Navigationsbaum wird korrekt und aufgeklappt angezeigt.

Die Struktur lässt sich korrekt erweitern und verkleinern. (collapse/expand)

Gesamtresultat OK

2 Navigation Passwort-Einträge Erfüllt

Schritte Erwartetes Resultat

„Entries“-Knoten auswählen Alle Passwort-Einträge werden ange-zeigt

Einen Gruppenknoten unter „Entries“ aus-wählen

Die korrekte Auswahl der Passwort-Einträge wird in der Mastertabelle an-gezeigt

Es wird in der Mastertabelle angezeigt, dass keine Einträge vorhanden sind.

Gesamtresultat OK

3 Navigation Dokumentation Erfüllt

Schritte Erwartetes Resultat

„Documentation“-Knoten auswählen Die Benutzeranleitung wird in einem separaten Fenster angezeigt.

Gesamtresultat OK

4 Navigation Stammdaten Erfüllt

Schritte Erwartetes Resultat

„Users“-Knoten auswählen Die Seite für die Benutzerverwaltung wird angezeigt.

„Groups“-Knoten auswählen Die Seite für die Gruppenverwaltung wird angezeigt.

Gesamtresultat OK

Page 64: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 64 von 70

5 Navigation Administration Erfüllt

Schritte Erwartetes Resultat

„Logs“-Knoten auswählen Die Seite für die Logs wird angezeigt.

„Transfer“-Knoten auswählen Die Seite für die Import-/Export-schnittstelle wird angezeigt.

Gesamtresultat OK

7.3.2 Verwaltung Passwort-Einträge

6 Neuen Passwort-Eintrag erfassen Erfüllt

Schritte Erwartetes Resultat

New-Button klicken Eingabemaske erscheint

Pflichtfelder nicht ausfüllen

Insert-Button klicken

Sternchen als Warnung erscheint

Alle Felder ausfüllen

Insert-Button klicken

Neuer Eintrag erscheint in Masteran-sicht.

Der neue Eintrag ist in der Datenbank.

Alle Felder ausfüllen

Cancel-Button klicken

Eingabemaske verschwindet,

kein Eintrag in der Datenbank.

Gesamtresultat OK

7 Passwort-Eintrag bearbeiten Erfüllt

Schritte Erwartetes Resultat

Einen Eintrag in der Mastertabelle auswählen Bearbeitungsansicht des entsprechen-den Datensatzes erscheint

Felder bearbeiten

Pflichtfelder weglassen

Update-Button klicken

Sternchen bei nicht ausgefüllten Pflicht-feldern erscheint.

Felder bearbeiten

Alle Pflichtfelder ausfüllen

Update-Button klicken

Bearbeitungsmaske verschwindet

Eintrag wird richtig in der Mastertabelle angezeigt.

Eintrag ist richtig in der Datenbank ab-gelegt.

Felder bearbeiten

Alle Pflichtfelder ausfüllen

Cancel-Button klicken

Bearbeitungsmaske verschwindet.

Eintrag in Datenbank wurde nicht ver-ändert.

Gesamtresultat OK

Page 65: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 65 von 70

8 Passwort-Eintrag löschen Erfüllt

Schritte Erwartetes Resultat

Einen Eintrag in der Mastertabelle auswählen Bearbeitungsansicht des entsprechen-den Datensatzes erscheint

„Delete“ klicken Popupfenster mit Frage nach Bestäti-gung erscheint.

Nicht bestätigen Bearbeitungsansicht verschwindet

Der Eintrag ist unverändert in der Da-tenbank abgelegt.

Bestätigen Bearbeitungsansicht verschwindet

Eintrag ist nicht mehr in Mastertabelle

Eintrag ist nicht mehr in der Datenbank

Gesamtresultat OK

9 Passwort-Eintrag suchen Erfüllt

Schritte Erwartetes Resultat

Titel, Name oder Vorname in die Search-Textbox eingeben

Enter

Mastertabelle zeigt die korrekte Aus-wahl oder zeigt an, dass kein Eintrag gefunden wurde.

Gesamtresultat OK

10 Passwort-Modus ändern: Insertmode Erfüllt

Schritte Erwartetes Resultat

„New“-Button klicken Eingabeansicht erscheint

Das Icon ist sichtbar

In der Eingabeansicht Passwort eingeben Punkte werden angezeigt

Speichern möglich

„Passwordmode“-Button klicken Die richtige Eingabe wird angezeigt

Speichern möglich

„Passwordmode“-Button klicken Die Textbox ist leer, das Icon wird an-gezeigt.

„Passwordmode“-Button klicken Der Inhalt wird erneut angezeigt.

Gesamtresultat OK

11 Passwort-Modus ändern: Editmode Erfüllt

Schritte Erwartetes Resultat

„Select“ und „Edit“ klicken

Bearbeitungsansicht erscheint.

Passwort wird Klartext angezeigt.

„Passwordmode“-Button klicken Punkte werden angezeigt.

Das Icon ist sichtbar.

Page 66: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 66 von 70

Editieren und Speichern möglich.

„Passwordmode“-Button klicken Die richtige Eingabe wird angezeigt

Editieren und Speichern möglich.

„Passwordmode“-Button klicken Die Textbox ist leer, das Icon wird an-gezeigt.

Neue Eingabe nötig.

Gesamtresultat OK

12 Passwort in Zwischenablage speichern Erfüllt

Schritte Erwartetes Resultat

Einen Passwort-Eintrag in der Mastertabelle auswählen

Bearbeitungsmaske erscheint

„CopytoClipboard“ klicken

In eine Textdatei einfügen

IE: Inhalt des Feldes ist in der Textdatei eingefügt.

Firefox: Meldetext, dass diese Funktion nur für IE verfügbar ist.

Gesamtresultat OK

13 Passwort Verschlüsselung/Entschlüsselung Erfüllt

Schritte Erwartetes Resultat

Ein Passwort-Eintrag erfassen und speichern In der Datenbank ist das Password-Feld verschlüsselt.

Einen Passwort-Eintrag auswählen und „Edit“ klicken

In der Bearbeitungsansicht wird das Password-Feld wieder im Klartext an-gezeigt.

Gesamtresultat OK

7.3.3 Verwaltung Gruppen

14 Neue Gruppe erfassen Erfüllt

Schritte Erwartetes Resultat

New-Button klicken Eingabemaske erscheint

Pflichtfelder nicht ausfüllen

„Insert“ klicken

Sternchen als Warnung erscheint

Alle Felder ausfüllen

Insert-Button klicken

Neuer Eintrag erscheint in Masteran-sicht.

Der neue Eintrag ist in der Datenbank.

In der Navigation erscheint ein neuer Gruppenknoten.

Alle Felder ausfüllen (Aktiv: Ja) Abbruch, die Eingabemaske ver-schwindet, kein Eintrag in der Daten-

Page 67: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 67 von 70

Cancel-Button klicken bank.

Alle Felder ausfüllen (Aktiv :Nein)

„Insert“ klicken

Eintrag erscheint nicht in der Masterta-belle

Eintrag ist korrekt in der Datenbank abgelegt.

In der Navigation erscheint kein neuer Gruppenknoten.

Gesamtresultat OK

15 Gruppe bearbeiten Erfüllt

Schritte Erwartetes Resultat

Einen Eintrag in der Mastertabelle auswählen Bearbeitungsansicht des entsprechen-den Datensatzes erscheint

Felder bearbeiten

Pflichtfelder weglassen

Update-Button klicken

Sternchen bei nicht ausgefüllten Pflicht-feldern erscheint.

Felder bearbeiten

Alle Pflichtfelder ausfüllen

Update-Button klicken

Bearbeitungsmaske verschwindet

Eintrag wird richtig in der Mastertabelle angezeigt.

Eintrag ist richtig in der Datenbank ab-gelegt.

Felder bearbeiten

Alle Pflichtfelder ausfüllen (Aktiv: Ja)

Cancel-Button klicken

Bearbeitungsmaske verschwindet.

Eintrag in Datenbank wurde nicht ver-ändert.

Felder bearbeiten

Alle Pflichtfelder ausfüllen (Aktiv: Nein)

Update-Button klicken

Bearbeitungsmaske verschwindet.

Eintrag ist nicht in der Mastertabelle.

Eintrag ist korrekt in der Datenbank abgelegt..

Gesamtresultat OK

16 Gruppe löschen Erfüllt

Schritte Erwartetes Resultat

Einen Eintrag in der Mastertabelle auswählen Bearbeitungsansicht des entsprechen-den Datensatzes erscheint

„Delete“ klicken Popupfenster mit Frage nach Bestäti-gung erscheint.

Nicht bestätigen Bearbeitungsansicht verschwindet

Der Eintrag ist unverändert in der Da-tenbank abgelegt.

Bestätigen Bearbeitungsansicht verschwindet

Eintrag ist nicht mehr in der Masterta-belle

Eintrag ist noch in der Datenbank, IsAc-

Page 68: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 68 von 70

tive ist auf false gesetzt.

Gesamtresultat OK

17 Gruppe suchen Erfüllt

Schritte Erwartetes Resultat

Name der Gruppe in Search-Textbox einge-ben

Enter

Mastertabelle zeigt die korrekte Aus-wahl oder zeigt an, dass kein Eintrag gefunden wurde.

Gesamtresultat OK

7.3.4 Verwaltung Benutzer

18 Neuen Benutzer erfassen Erfüllt

Schritte Erwartetes Resultat

New-Button klicken Eingabemaske erscheint

Pflichtfelder nicht ausfüllen

Insert-Button klicken

Sternchen als Warnung erscheint

Alle Felder ausfüllen

„Insert“ klicken

Neuer Eintrag erscheint in Masteran-sicht.

Der neue Eintrag ist in der Datenbank.

Alle Felder ausfüllen

Cancel-Button klicken

Abbruch, die Eingabemaske ver-schwindet, kein Eintrag in der Daten-bank.

Gesamtresultat OK

19 Benutzer bearbeiten Erfüllt

Schritte Erwartetes Resultat

Einen Eintrag in der Mastertabelle auswählen Bearbeitungsansicht des entsprechen-den Datensatzes erscheint

Felder bearbeiten

Pflichtfelder weglassen

Update-Button klicken

Sternchen bei nicht ausgefüllten Pflicht-feldern erscheint.

Felder bearbeiten

Alle Pflichtfelder ausfüllen

Update-Button klicken

Bearbeitungsmaske verschwindet

Eintrag wird richtig in der Mastertabelle angezeigt.

Eintrag ist richtig in der Datenbank ab-gelegt.

Felder bearbeiten

Alle Pflichtfelder ausfüllen

Bearbeitungsmaske verschwindet.

Eintrag in Datenbank wurde nicht ver-

Page 69: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 69 von 70

Cancel-Button klicken ändert.

Gesamtresultat OK

20 Benutzer löschen Erfüllt

Schritte Erwartetes Resultat

Einen Eintrag in der Mastertabelle auswählen Bearbeitungsansicht des entsprechen-den Datensatzes erscheint

„Delete“ klicken Popupfenster mit Frage nach Bestäti-gung erscheint.

Nicht bestätigen Bearbeitungsansicht verschwindet

Der Eintrag ist unverändert in der Da-tenbank abgelegt.

Bestätigen Bearbeitungsansicht verschwindet

Eintrag ist nicht mehr in Mastertabelle

Eintrag ist nicht mehr in der Datenbank

Gesamtresultat OK

21 Benutzer suchen Erfüllt

Schritte Erwartetes Resultat

Nachname, Vorname oder Benutzername in Search-Textbox eingeben

Enter

Mastertabelle zeigt die korrekte Aus-wahl oder zeigt an, dass kein Eintrag gefunden wurde.

Gesamtresultat OK

1. Durchgang: Benutzername nicht gefunden (Fehler gefunden und behoben)

2. Durchgang: OK

7.3.5 EntryLog

22 Passwort-Eintrag suchen Erfüllt

Schritte Erwartetes Resultat

Passwort-Titel in Search-Textbox eingeben

Enter

Mastertabelle zeigt die korrekte Aus-wahl oder zeigt an, dass kein Eintrag gefunden wurde.

Gesamtresultat OK

1. Durchgang: Bei Action-Auswahl "Alle", nicht gefiltert. (Fehler gefunden und behoben)

2. Durchgang : OK

23 Nach Aktion filtern Erfüllt

Schritte Erwartetes Resultat

In der Dropdownliste eine Aktion auswählen Mastertabelle zeigt die korrekte Aus-

Page 70: Enterprise Password Managerstatic.sws.bfh.ch/download/MAS-07-02-11-doc.pdf · 1.4 Inhaltsübersicht 8 2 Analyse 8 2.1 Anforderungen 8 2.2 Change Requests 8 2.3 Annullierung einer

Enterprise Password Manager Diplombericht MAS-07-02.11 Marisa Marchetti

Donnerstag, 18. Februar 2010 70 von 70

wahl oder zeigt an, dass kein Eintrag gefunden wurde.

Gesamtresultat OK

24 Aktionen auf Entry-Tabelle anzeigen Erfüllt

Schritte Erwartetes Resultat

Einen neuen Passwort-Eintrag erfassen Logeintrag korrekt angezeigt OK

Einen Passwort-Eintrag bearbeiten Logeintrag korrekt angezeigt OK

Einen Passwort-Eintrag löschen Logeintrag korrekt angezeigt OK

Gesamtresultat OK

7.3.6 Import-/Export-Schnittstelle

25 Passwort-Einträge importieren Erfüllt

Schritte Erwartetes Resultat

Transfer-Seite wählen

Import-Button klicken

Der Upload-Dialog wird angezeigt.

Xml-Datei auswählen Es wird eine neue Gruppe „Im-ports“+Username in der Datenbank erstellt.

Die importierten Einträge sind in der Datenbank.

Die sind in der Navigation unter dem neuen Gruppenknoten zu finden.

Gesamtresultat OK

18.02.

26 Passwort-Einträge exportieren Erfüllt

Schritte Erwartetes Resultat

Transfer-Seite wählen

Export-Button klicken

Im IE wird das XML mit allen Entries angezeigt und kann gespeichert wer-den.

Im Firefox wird der Speichern-Dialog angezeigt und die xml-Datei kann ge-speichert werden.

Gesamtresultat OK

18.02.

Lokal funktioniert es, aber für einen Austausch über mehrere Maschinen müsste zuerst das Pass-wort entschlüsselt werden (wegen ProtectionScope).