www.egiz.gv.at E-Mail: post@egiz.gv.at t Telefon: ++43 (316) 873 5514 Fax: ++43 (316) 873 5520 Inffeldgasse 16a / 80100 Graz / Austria Automatisiertes MOA-ID Login Beschreibung Version 1.0.0, 01.09.2008 DI Edgar Neuherz edgar.neuherz@egiz.gv.at Zusammenfassung: MOA-ID stellt ein zentrales Element von vielen E-Government Anwendungen dar. Das komplexe Protokoll ist von Test- und Monitoring-Systemen nicht automatisiert durchführbar. Es solll ein Modul entwickelt werden, das ein MOA-ID Login unter Simulation von Bürgerkartenfunktionen durchführt. Das Modul gibt definierte Fehlermeldungen als Antwort bzw. erlaubt über eine Proxy-Funktion, die an einee Anmeldung folgendee Verfahrensschritte auszuführen. Inhaltsverzeichnis: Automatisiertes MOA-ID Login... 1 Beschreibung... 1 Abbildungen... 3 Revision History... 4 1 Einleitung... 5 1.1 1.2 Schlüsselwörter Geschlechtsspezifische Bezeichnungen 5 5 2 Grundlagen... 6 2.1 MOA-ID 6 2.1.1 2.1.2 MOA-ID Anmeldung... 7 Personenbindung... 8 2.2 Nagios 8 3 Automatisiertes MOA-ID Login... 9 3.1 3.2 3.3 3.4 3.5 Funktionsbeschreibung Komponenten Konfiguration des Plugins Vorbereitung von MOA-ID für das Monitoring Beispiel 9 9 10 12 12 3.5.1 3.5.2 Beispiel 1... 13 Beispiel 2:... 14 Anmerkung: Zur besseren Lesbarkeit wurde in diesem Dokument teilweise auf geschlechtsspezifische Formulierungen verzichtet. Die verwendeten Formulierungenn richten sich jedoch ausdrücklich an beide Geschlechter. Das E-Government Innovationszentrum ist eine gemeinsame Einrichtung des Bundeskanzleramtes und der TU-Graz
4 Referenzen... 17 2
Abbildungen Abbildung 1: Komponenten... 6 Abbildung 2: Sequenz-Diagramm... 7 Abbildung 3: Funktion... 9 Abbildung 4: Komponenten... 9 Abbildung 5: shell-skript - startplugin.sh... 10 Abbildung 6: Batch-Datei - startplugin.bat... 10 Abbildung 7: Konfiguration xselan-nagios-plugin.properties... 11 Abbildung 4: Komponenten... 11 Abbildung 4: MOA-ID Zertifikate... 12 Abbildung 4: Installationsverzeichnis unter Windows... 12 Abbildung 4: Ergebnis Erfolgreicher MOA-ID-Login... 13 Abbildung 4: Ergebnis ResponseInfoboxReadRequest... 14 Abbildung 4: Ergebnis Erfolgloser MOA-ID-Login (Server nicht erreichbar)... 15 3
Revision History Version Datum Autor(en) 0.0.1 26.06.2008 Edgar Neuherz (EGIZ) Initialversion 1.0.0 01.09.2008 Edgar Neuherz (EGIZ) 4
1 Einleitung Eines der wesentlichen Merkmalen von E-Government Applikationen ist die Kombination von verschiedenen Services. Daraus ergeben sich verschiedene Vor- und Nachteile. Das Monitoring bzw. Testen eines MOA-ID Login wird durch diese Abhängigkeiten erschwert. 1.1 Schlüsselwörter Dieses Dokument verwendet die Schlüsselwörter MUSS, DARF NICHT, erforderlich, sollte, sollte nicht, empfohlen, darf, und optional zur Kategorisierung der Anforderungen. Diese Schlüsselwörter sind analog zu ihren englischsprachigen Entsprechungen must, must not, required, should, should not, recommended, may, und optional zu handhaben, deren Interpretation in [ KEYWORDS ] festgelegt ist. 1.2 Geschlechtsspezifische Bezeichnungen Alle Personenbezeichnungen, die in diesem Dokument in der männlichen Form verwendet werden, gelten sinngemäß auch für die weibliche Form. 5
2 Grundlagen Das Modul MOA-ID dient zur sicheren Identifikation und Authentifikation von Benutzern mittels Bürgerkarte. Die Identifikation wird dabei über die Verifikation der Personenbindung, welche sich auf der Bürgerkarte des Benutzers befinden, durchgeführt. 2.1 MOA-ID MOA-ID besteht aus zwei Modulen, der Authentisierungskomponente ( MOA-ID Auth) und der Signaturprüfungskomponente (MOA-SP). Die Authentisierungskomponente führt die eigentliche Anmeldung durch: Bei der Authentifizierung durch MOA-ID sind folgende Komponenten beteiligt: Browser BKU MOA-ID Auth MOA-SP OA (optional OA Proxy) Webserver (Apache, IIS) Abbildung 1: Komponenten 6
2.1.1 MOA-ID Anmeldung Abbildung 2: Sequenz-Diagramm Die Anmeldung bei einer Online-Applikation (OA) mit MOA-ID erfolgt in folgenden Schritten: 1. Auswahl der Bürgerkartenumgebung Zur Auswahl der für die Anmeldung verwendeten Bürgerkartenumgebung wird von MOA-ID eine Webseite aus einem HTML-Template generiert. Die URL zum Abruf 7
dieses HTML-Templates wird in der Konfiguration von MOA-ID angegeben. 2. Auslesen der Personenbindung (InfoboxReadRequest) Zum Auslesen der Personenbindung wird über ein Webformular eine entsprechende Anfrage an die ausgewählte Bürgerkartenumgebung geschickt. Dabei schickt der Browser den Befehl zum Auslesen der Personenbindung per HTTP POST an den Security Layer. 3. Prüfung der Signatur der Personenbindung (InfoboxReadResponse) Die so ausgelesene Personenbindung wird von der Bürgerkartenumgebung an MOA- ID geschickt. 4. Erstellung des AUTH-Blocks (CreateXMLSignatureRequest) Die Personenbindung wird von MOA-ID zum Erstellen des so genannten AUTH- Blocks verwendet, der von MOA-ID nun zum Signieren an die Bürgerkartenumgebung geschickt wird. 5. Prüfen der Signatur des AUTH-Blocks (CreateXMLSignatureResponse) Die von der Bürgerkartenumgebung erstellte Signatur wird zurück an MOA-ID geschickt und von MOA-ID geprüft. Für die Widerrufsprüfung der entsprechenden Zertifikate ist die Verfügbarkeit der Widerrrufsinformationen des Zertifizierungsdiensteanbieters entscheidend. 6. Erstellen einer SAML-Assertion und Rückgabe eines SAML-Artifacts Bei erfolgreicher Prüfung wird von MOA-ID eine entsprechende SAML-Assertion erstellt und ein sogenanntes SAML-Artifact an die Online-Applikation übergeben. 7. Abholen der SAML-Assertion durch die Online-Applikation Das SAML-Artifact kann von der Online-Applikation nun verwendet werden, um die SAML-Assertion von MOA-ID abzurufen. Dazu muss die Online-Applikation die Möglichkeit zum Zugriff auf das entsprechende Service von MOA-ID besitzen 2.1.2 Personenbindung Die Personenbindung ist fester Bestandteil jeder Bürgerkarte. Für die eindeutige Identifizierung der Bürgerin oder des Bürgers wird diese ausgelesen und durch die Signaturprüfung der auf der Personenbindung aufgebrachten Signatur auf Authentizität geprüft. Bei der MOA-ID-Anmeldung erfolgt die Überprüfung von der Signatur mit MOA-SP. 2.2 Nagios Nagios ist eine Software die es ermöglicht komplexere IT-Strukturen zu überwachen. Dabei wird eine Sammlung von Modulen angeboten die eine Überwachung von Netzwerken und Hosts ermöglicht. Die zu kontrollierenden Services werden mittels Konfigurationsdateien konfiguriert. 8
3 Automatisiertes MOA-ID Login 3.1 Funktionsbeschreibung Das Ziel dieser Anwendung ist, den Zugang zu einer bestehenden Online-Applikation in regelmäßigen Abständen zu überwachen. Hierzu wurde ein Nagios-Plugin entwickelt, welches sich automatisch an dieser Online-Applikation anmeldet. Dabei werden alle MOA-ID relevanten Aktionen automatisch ausgeführt. Abbildung 3: Funktion Durch Start eines Shell-Skript oder Batch-Datei wird die Java-Applikation aufgerufen. Dabei wird für den Zeitraum des Auto-Logins ein Proxy instanziiert, der die Kommunikation zwischen SecurityLayer und MOA-ID überwacht. Die Kommunikation wird aufgezeichnet. Werden alle notwendigen Schritte des automatischen Logins erfolgreich ausgeführt, wird vom Plugin der Wert 0 für Nagios zurückgeliefert. Parallel dazu speichert das Plugin die aufgezeichnete Kommunikation zwischen BKU und MOA-ID in html-dateien ab. Diese können nachträglich mit einem Browser geöffnet und betrachtet werden. Dabei kann im Fehlerfall die Ursache eines gescheiterten MOA-ID-Logins eingegrenzt werden. 3.2 Komponenten Die Applikation verwendet unter anderem folgende Komponenten: Komponenten Name Typ Verzeichnis Kommentar startplugin.bat batch xselan-nagios-plugin/ Zum Start der Java-Applikation unter Windows startplugin.sh shell xselan-nagios-plugin/ Zum Start der Java-Applikation unter Linux (Unix) xselan-nagios-plugin-1.2.33.jar jar xselan-nagios-plugin/ NagiosPlugin Library xslean-core-1.2.33.jar jar /lib XSeLaN Core Library xselan-nagios-plugin.properties text /properties Konfigurations-Datei Abbildung 4: Komponenten 9
Das Plugin ist eine Java-Applikation (xselan-nagios-plugin.jar) welches über ein Shell-Skript oder eine Batch Datei aufgerufen wird. 01 JAVA_HOME=/container/jdk16/bin 02 JAR=xselan-nagios-plugin-1.2.33.jar 03 CLASS=at.xselan.plugin.nagios.MoaidLoginPlugin 04 MOA_URL="https://demo.a-sit.at/moa-id-auth/StartAuthentication?OA=https://demo.a-sit.at/protected" 05 if (test -n "$1"); then 06 MOA_URL=$1 07 fi; 08 $JAVA_HOME/java -jar $JAR $CLASS $MOA_URL Abbildung 5: shell-skript - startplugin.sh 01 set _JAVA_HOME=%JAVA_HOME%\jre 02 set _JAR=xselan-nagios-plugin-1.2.33.jar 03 set _CLASS=at.xselan.plugin.nagios.MoaidLoginPlugin 04 set _MOA_URL=https://demo.a-sit.at/moa-id-auth/StartAuthentication?OA=https://demo.a-sit.at/protected 05 if [%*]==[] goto usingdefault 06 set _MOA_URL=%1 07 :usingdefault 08 %_JAVA_HOME%\bin\java -jar %_JAR% %_CLASS% %_MOA_URL% Abbildung 6: Batch-Datei - startplugin.bat Im Shell-Skript bzw. Batch-Datei werden folgende Schritte ausgeführt: Zeile 01: Setzen der Umgebungsvariablen JAVA_HOME für JRE (Version1.6) Zeile 02: Setzen der Java-Applikation JAR (xselan-nagios-plugin-1.2.33.jar) Zeile 03: Setzen der der aufzurufenden Klasse (MoaidLoginPlugin) Zeile 04: Setzen der Default MOA-URL Zeite 08: Aufruf der JavaApplikation Folgende Parameter müssen unbedingt an die lokalen Verhältnisse der verwendeten Umgebung angepasst werden: Umgebungsvariable für JRE (_JAVA_HOME) URL der zu überwachenden MOA-ID-Instanz (_MOA_URL) 3.3 Konfiguration des Plugins Das Plugin kann über xselan-nagios-plugin.properties konfiguriert werden. 10
# monitoring url url.moa.login = https://demo.a-sit.at/moa-id-auth/tartauthentication?oa=https://demo.a-sit.at/protected url.bku.local = http://localhost: # used bku environment # api... using xselan via api # bku... using installed bku (xselan, trustdesk,...) bku.environment = api # pin caching default.caching = true # templates dir.templates.html=test-templates/html # result switch log.failed-logins=true log.all-logins=false log.last-logins=true # results path.results=results/ dir.failed-logins=failed-logins/ dir.all-logins=all-logins/ dir.last-logins=last-logins/ # socket timeout socket.timeout=6000; Abbildung 7: Konfiguration xselan-nagios-plugin.properties Variablenname Werte Kommentar url.moa.login text Default Wert für MOA-URL. Wird verwendet wenn keine MOA-URL als Parameter übergeben wird url.bku.local text URL für den SecurityLayer (BKU) bku.environment api o. bku api xselan-library wird über api verwendet bku eine installierte BKU wird verwendet (trustdesk ) default.caching true muss den Wert true haben dir.templates.html pfad Verzeichnis der html-templates die für dies Erzeugung der Ergebnisse (gespeicherten Kommunikation) verwendet wird. log.failed-logins true o. false Logging aller gescheiterten MOA-ID-Logins log.all-logins true o. false Logging aller MOA-ID-Logins log.last-logins true o. false Logging des letzten MOA-ID Logins path.results text Verzeichnis in welche die Ergebnisse der MOA-ID-Logins gespeichert werden (HTML-Dateien) dir.failed-logins text Verzeichnis für all gescheiterten MOA-ID-Logins dir.all-logins text Verzeichnis für alle MOA-ID-Logins dir.last-logins text Verzeichnis für des zuletzt ausgeführten MOA-ID-Logins socket.timeout Int Wert in millisec für socket-timeout beim Verbindungsaufbau Abbildung 8: Komponenten 11
3.4 Vorbereitung von MOA-ID für das Monitoring Damit das Plugin für das Monitoring einer MOA-ID-Installation verwendet werden kann, ist es notwendig drei Zertifikate in die MOA-ID Installation einzuspielen. Diese Zertifikate sind: mustermann-fall.max moritz.sig.der xxxkunz.xxxkarin stella.sig.der EGIZ_Administrator.sig.cer Das Zertifikat EGIZ_Administrator.sig.cer wurde zum Signieren der Personenbindung von XSeLaN verwendet. Die Zertifikate sind in folgende Verzeichnisse von MOA-ID einzuspielen: Verzeichnis trustprofiles/moaidbuergerkarteauthentisierungsdatenohnetestkarten/ trustprofiles/moaidbuergerkarteauthentisierungsdatenohnetestkarten/ trustprofiles/moaidbuergerkartepersonenbindungohnetestkarten/ Abbildung 9: MOA-ID Zertifikate Zertifikat xxxkunz.xxxkarin stella.sig.der mustermann-fall.max moritz.sig.der EGIZ_Administrator.sig.cer 3.5 Beispiel Für das Beispiel wird als Umgebung Windows und eine lokale MOA-ID Installation verwendet. Abbildung 10: Installationsverzeichnis unter Windows Das Plugin wird über das Startskript (startplugin.bat) gestartet. Als MOA-URL wird die lokale MOA-ID-Installation MOA_URL=https://localhost:28443/moa-id-auth/StartAuthentication?Target=KI&OA=https://localhost:28443/portal/moaid-login verwendet. 12
3.5.1 Beispiel 1 MOA-ID ist korrekt konfiguriert und gestartet, d.h. das Monitoring liefert ein positives Ergebnis (Fehlercode 0) zurück. Dabei wird folgender Output erzeugt: Abbildung 11: Ergebnis Erfolgreicher MOA-ID-Login Wird ein Link in der Spalte Results angeklickt so wird die Kommunikation zwischen BKU und MOA-ID ausgegeben. So wird zum Beispiel durch Anklicken von ResponseInfoboxReadRequest folgende Ausgabe angezeigt: 13
Abbildung 12: Ergebnis ResponseInfoboxReadRequest 3.5.2 Beispiel 2: In diesem Beispiel wird die lokale MOA-ID-Instanz gestoppt. Als Ergebnis wird folgende Ausgabe erzeugt. 14
Abbildung 13: Ergebnis Erfolgloser MOA-ID-Login (Server nicht erreichbar) 15
16
4 Referenzen [ NAGIOS ] Offizielle Nagios Website www.nagios.org abgerufen aus dem WWW am 30. Juni 2008 [ MOA ] OpenSource Plattform des Digitalen Österreich http://egovlabs.gv.at abgerufen aus dem WWW am 30. Juni 2008 [ BKU ] Arno Hollosi, Gregor Karlinger, Thomas Rössler, Martin Centner, Die österreichische Bürgerkarte (Version 1.2, 20.02.2008) Abgerufen aus dem WWW am 30. Juni 2008 17