Module für Online-Applikationen
 
Projekt moa 

MOA-ID

Konfiguration



Konfiguration von MOA ID v.1.1

Konfiguration von MOA ID v.1.1

Die Konfiguration von MOA ID wird mittels einer XML-basierten Konfigurationsdatei, die dem Schema MOA-ID-Configuration-1.1.xsd entspricht, durchgeführt.

Der Ort der Konfigurationsdatei wird im Abschnitt Deployment der Web-Applikation in Tomcat beschrieben.

Die folgenden Abschnitte erläutern das Format der Konfigurationsdatei. MOA-ID-Configuration.xml zeigt ein Beispiel für eine umfassende Konfigurationsdatei.

Enthält die Konfigurationsdatei relative Pfadangaben, werden diese relativ zum Verzeichnis, in dem Tomcat gestartet wurde, interpretiert.

ConnectionParameter
Das Element ConnectionParameter enthält Parameter, die MOA-ID für den Aufbau von Verbindungen zu anderen Komponenten benötigt. Dieses Element tritt mehrfach in der Konfigurationsdatei auf und wird daher vorab detailliert beschrieben.

Das Attribut URL enthält die URL der Komponente zu der die Verbindung aufgebaut werden soll. Wird das Schema https verwendet, können die Kind-Elemente AcceptedServerCertificates und ClientKeyStore angegeben werden. Wird das Schema http verwendet müssen keine Kind-Elemente angegeben werden bzw. werden diese nicht ausgewertet. Andere Schemas werden nicht unterstützt.

Wird die Verbindung über TLS aufgebaut und erfordert der TLS-Server eine Client-Authentisierung mittels Zertifikate, dann muss das Kind-Element ClientKeyStore spezifiziert werden, und es muss eine URL enthalten, die einen PKCS#12-Keystore mittels URL-Schema 'file:' referenziert. Diesem Keystore wird der private Schlüssel für die TLS-Client-Authentisierung entnommen. Das Passwort zum Lesen des privaten Schlüssels wird im Attribut ClientKeyStore/@password konfiguriert.
Aufgrund der Tatsache, dass starke Verschlüsselung eine Voraussetzung für MOA-ID darstellt, werden clientseitig nur die folgenden Cipher Suites unterstützt:

  • SSL_RSA_WITH_RC4_128_SHA
  • SSL_RSA_WITH_RC4_128_MD5
  • SSL_RSA_WITH_3DES_EDE_CBC_SHA
Im Kind-Element AcceptedServerCertificates kann ein Verzeichnisname angegeben werden, in dem die akzeptierten Zertifikate der TLS-Verbindung hinterlegt sind. Dieses Verzeichnis wird mittels URL-Schema 'file:' referenziert. In diesem Verzeichnis werden nur Serverzertifikate abgelegt. Fehlt dieser Parameter wird lediglich überprüft ob ein Zertifikatspfad zu den im Element <TrustedCACertificates> angegebenen Zertifikaten erstellt werden kann. Falls dies nicht möglich ist, kommt es zu einem Fehlerfall.

AuthComponent
AuthComponent enthält Parameter, die nur die MOA-ID Authentisierungskomponente betreffen. Das Element ist optional und muss nicht verwendet werden, wenn auf dem Server keine MOA-ID Authentisierungskomponente installiert wird.

Das Element AuthComponent hat vier Kind-Element:

  • BKUSelection (optional)
  • SecurityLayer
  • MOA-SP
  • IdentityLinkSigners

AuthComponent/BKUSelection
Das optionale Element BKUSelection enthält Parameter zur Nutzung eines Auswahldienstes für eine Bürgerkartenumgebung (BKU). Wird das Element nicht angegeben, dann wird die lokale Bürgerkartenumgebung auf http://localhost:3495/http-security-layer-request verwendet.

Das Attribut BKUSelectionAlternative gibt an welche Alternative zur BKU-Auswahl verwendet werden soll. MOA-ID unterstützt die Werte HTMLComplete (vollständige HTML-Auswahl) und HTMLSelect (HTML-Code für Auswahl) ["Auswahl von Bürgerkartenumge-bungen", Arno Hollosi].

Das Kind-Element ConnectionParameter spezifiziert die Verbindung zum Auswahldienst (siehe ConnectionParameter), jedoch kann das Kind-Element ClientKeyStore nicht angegeben werden.

AuthComponent/SecurityLayer
Das Element SecurityLayer enthält Parameter zur Nutzung des Security-Layers.

Das Kind-Element TransformsInfo spezifiziert eine Transformation, die für die Erstellung der Signatur des AUTH-Blocks als Parameter in den CreateXMLSignatureRequest des Security-Layers integriert werden muss. Mehrere unterschiedliche Implementierungen des Security-Layer können durch die Angabe mehrerer TransformsInfo-Elemente unterstützt werden.

Das Attribut TransformsInfo/@filename verweist auf eine Datei, die das globale Element TransformsInfo vom Typ TransformsInfo enthält. Das Encoding dieser Datei muss (anders als im Beispiel) UTF-8 sein.

Beispiel für eine TransformsInfo-Datei

AuthComponent/MOA-SP
Das Element MOA-SP enthält Parameter zur Nutzung von MOA-SP. MOA-SP wird für die überprüfung der Signatur der Personenbindung und des AUTH-Blocks verwendet.

Wird das Kind-Element ConnectionParameter angegeben, dann wird MOA-SP über das Webservice angesprochen, andernfalls wird MOA-SP über das API angesprochen.

Das Kind-Element VerifyIdentityLink/TrustProfileID spezifiziert eine TrustProfileID, die für den VerifyXMLSignatureRequest zur überprüfung der Signatur der Personenbindung verwendet werden muss.

Die Kind-Elemente VerifyAuthBlock/TrustProfileID und VerifyAuthBlock/VerifyTransformsInfoProfileID spezifizieren eine TrustProfileID und eine ID für ein Transformationsprofil, die für den VerifyXMLSignatureRequest zur überprüfung der Signatur des Auth-Blocks verwendet werden müssen.

AuthComponent/IdentityLinkSigners
Dieses Element gibt an von welchen Signatoren die Signatur des IdentityLink erstellt werden musste damit der IdentityLink akzeptiert wird. Für jeden Signator muss der X509SubjectName nach RFC 2253 spezifiziert werden.

Beispiel

ProxyComponent
ProxyComponent enthält Parameter, die nur die MOA-ID Proxykomponente betreffen. Das Element ist optional und muss nicht verwendet werden, wenn auf dem Server keine MOA-ID Proxykomponente installiert wird.

Das Element ProxyComponent hat nur das Kind-Element AuthComponent, das die Verbindung zur Authentisierungs-komponente beschreibt.

Baut die Proxykomponente die Verbindung zur Authentisierungs-komponente über ein Webservice auf, dann muss das Element ConnectionParameter spezifiziert werden.

Baut die Proxykomponente die Verbindung zur Authentisierungs-komponente über das API auf, dann wird das Element ConnectionParameter nicht spezifiziert.

OnlineApplication
Für jede Online-Applikation, die über MOA-ID authentisiert wird, gibt es ein Element OnlineApplication. Die Parameter betreffen teils die MOA-ID Authentisierungskomponente, teils die MOA-ID Proxykomponente, teils beide.

Das Attribut OnlineApplication/@publicURLPrefix entspricht dem URL-Präfix der nach außen sichtbaren Domäne der Online-Applikation, welcher von der MOA-ID Proxykomponente durch den URL-Präfix der wirklichen Domäne (Attribut OnlineApplication/ProxyComponent/ConnectionParameter/@URL) ersetzt wird. Es dient als Schlüssel zum Auffinden der Konfigurationsparameter zur Online-Applikation.

Das Element OnlineApplication hat optional zwei Kind-Elemente: AuthComponent und ProxyComponent.

OnlineApplication/AuthComponent
Das Element OnlineApplication/AuthComponent muss verwendet werden wenn auf dem Server die Authentisierungskomponente installiert wird. Es enthält Parameter, die das Verhalten der Authentisierungskomponente bezüglich der Online-Applikation konfiguriert.

Das Attribut provideZMRZahl bestimmt, ob die ZMR-Zahl in den Anmeldedaten aufscheint. Analog steuern die Attribute provideAUTHBlock und provideIdentityLink, ob die Anmeldedaten den Auth-Block bzw. die Personenbindung enthalten. Alle Attribute sind optional und haben den Default-Wert false.

OnlineApplication/ProxyComponent
Das Element OnlineApplication/ProxyComponent muss verwendet werden wenn auf dem Server die Proxykomponente installiert wird.

Das optionale Attribut configFileURL verweist auf eine Konfigurationsdatei die dem Schema MOA-ID-Configuration-1.1.xsd entspricht mit Dokument-Element Configuration.
Default-Wert: http://<realURLPrefix>/MOAConfig.xml
(<realURLPrefix> entspricht dem Wert von OnlineApplication/ProxyComponent/ConnectionParameter/@URL)

Das optionale Attribut sessionTimeOut legt das Timeout einer Benutzersession in der Proxykomponente in Sekunden fest.
Default-Wert: 3600

Im optionalen Attribut loginParameterResolverImpl kann der Klassenname eines zu verwendenden LoginParameterResolver angegeben werden, welcher die Defaultimplementierung ersetzt.

Im optionalen Attribut connectionBuilderImpl kann der Klassenname eines zu verwendenden ConnectionBuilder angegeben werden, welcher die Defaultimplementierung ersetzt.

Im Kind-Element ConnectionParameter ist konfiguriert, wie MOA-ID-PROXY zur Online-Applikation verbindet.

ChainingModes
Das Element ChainingModes definiert, ob bei der Zertifikatspfad-überprüfung das Kettenmodell ("chaining") oder das Modell nach PKIX RFC 3280 ("pkix") verwendet werden soll.

Das Attribut systemDefaultMode spezifiziert das Modell, das im Standardfall verwendet werden soll.

Mit dem Kind-Element TrustAnchor kann für jeden Trust Anchor ein abweichendes Modell spezifiziert werden. Ein Trust Anchor ist ein Zertifikat, das in TrustedCACertificates spezifiziert ist. Ein Trust Anchor wird durch den Typ <dsig:X509IssuerSerialType> spezifiziert. Das für diesen Trust Anchor gültige Modell wird durch das Attribut mode spezifiziert.

Gültige Werte für die Attribute systemDefaultMode und mode sind "chaining" und "pkix".

Beispiel

TrustedCACertificates
Das Element TrustedCACertificates enthält eine URL, die auf ein Verzeichnis verweist, das jene Zertifikate enthält, die als vertrauenswürdig betrachtet werden. Diese URL muss mittels URL-Schema 'file:' referenziert werden. Im Zuge der Überprüfung der TLS-Serverzertifikate wird die Zertifikatspfaderstellung an einem dieser Zertifikate beendet.

GenericConfiguration
Das Element GenericConfiguration ermöglicht das Setzen von Namen-Werte Paaren mittels der Attribute name und value. Die folgende Liste spezifiziert

  • gültige Werte für das name-Attribut,
  • eine Beschreibung
  • gültige Werte für das value-Attribut und (falls vorhanden)
  • den Default-Wert für das value-Attribut.
name: DirectoryCertStoreParameters.RootDir
Gibt den Pfadnamen zu einem Verzeichnis an, das als Zertifikatsspeicher im Zuge der TLS-Server-Zertifikatsüberprüfung verwendet wird.

value:
Gültige Werte: Name eines gültigen Verzeichnisses
Dieser Parameter muss angegeben werden.
name: AuthenticationSession.TimeOut
Gibt die Zeitspanne in Sekunden vom Beginn der Authentisierung bis zum Anlegen der Anmeldedaten an. Wird die Angegebene Zeitspanne überschritten wird der Anmeldevorgang abgebrochen.

value:
Gültige Werte: positive Ganzzahlen
Default-Wert: 120
name: AuthenticationData.TimeOut
Gibt die Zeitspanne in Sekunden an, für die die Anmeldedaten in der Authentisierungskomponente zum Abholen durch die Proxykomponente oder eine nachfolgende Applikation bereitstehen. Nach Ablauf dieser Zeitspanne werden die Anmeldedaten gelöscht.

value:
Gültige Werte: positive Ganzzahlen
Default-Wert: 600
name: TrustManager.RevocationChecking
Für die TLS-Server-Authentisierung dürfen nur Server-Zertifikate verwendet werden, die eine CRLDP-Extension enthalten (andernfalls kann von MOA-ID keine CRL-überprüfung durchgeführt werden).
Soll das RevocationChecking generell ausgeschaltet werden, ist dieses Attribut anzugeben und auf "false" zu setzen.

value:
Gültige Werte: true, false
Default-Wert: true


 



Konfiguration der Online-Applikation

Die Konfiguration der OA beschreibt die Art und Weise, wie die Proxykomponente die Anmeldung an der Online-Applikation durchführt.

Der Name der Konfigurationsdatei wird in der Konfiguration von MOA-ID als Wert des Attributs configFileURL des Elements MOA-IDConfiguration/OnlineApplication/ProxyComponent hinterlegt.
Ist dieses Attribut nicht gesetzt, dann wird die Datei von http://<realURLPrefix>/MOAConfig.xml geladen, wobei <realURLPrefix> dem Konfigurationswert OnlineApplication/ProxyComponent/ConnectionParameter/@URL entspricht.

Die Konfigurationsdatei ist eine XML-Datei, die dem Schema MOA-ID-Configuration-1.1.xsd mit dem Wurzelelement Configuration entspricht.

LoginType
Das Element LoginType gibt an, ob die Online-Applikation ein einmaliges Login erwartet (stateful), oder ob die Login-Parameter bei jedem Request mitgegeben werden müssen (stateless). Im Fall einer stateful Online-Applikation werden die in der HTTP-Session der Proxykomponente gespeicherten Anmeldedaten nur für den Aufruf des Login-Scripts verwendet. Unmittelbar nach dem Aufruf werden sie gelöscht.
Default-Wert: stateful

ParamAuth
Konfiguriert die übergabe der Authentisierungs-Parameter an die Online-Applikation mittels URL-Parametern. Das Element kann ein oder mehrere Kind-Elemente <Parameter> beinhalten.

ParamAuth/Parameter
Das Element <Paramter> enthält die Attribute Name und Value.

Das Attribut Name beschreibt den Namen des Parameters und ist ein frei zu wählender String.

Das Attribut Value beschreibt den Inhalt des Parameters und kann einen der durch MOAAuthDataType beschriebenen Werte annehmen. Gültige Werte von MOAAuthDataType sind:

  • MOAGivenName - der Vorname des Benutzers, wie in der Personenbindung enthalten
  • MOAFamilyName - der Nachname des Benutzers, wie in der Personenbindung enthalten
  • MOADateOfBirth - das Geburtsdatum des Benutzers, wie in der Personenbindung enthalten
  • MOAVPK - die verfahrensspezifische Personenkennzeichnung des Benutzers, wie von der Authentisierungskomponente berechnet
  • MOAPublicAuthority - wird durch true ersetzt, falls der Benutzer mit einem Zertifikat signierte, welches eine Behördenerweiterung beinhaltet. Andernfalls wird false gesetzt
  • MOABKZ - das Behördenkennzeichen (nur sinnvoll, wenn MOAPublicAuthority den Wert true ergibt)
  • MOAQualifiedCertificate - wird durch true ersetzt, falls das Zertifikat des Benutzers qualifiziert ist, andernfalls wird false gesetzt
  • MOAZMRZahl - die ZMR-Zahl des Benutzers; diese ist nur dann verfügbar, wenn die Online-Applikation die ZMR-Zahl bekommen darf (und daher in der Personenbindung enthalten ist)
  • MOAIPAddress - IP-Adresse des Client des Benutzers.
Anhand der <Parameter>-Elemente wird der Request für den Login-Vorgang (für stateful Online-Applikationen) folgendermaßen zusammenge-stellt:
GET https://<login-url>?
  <p1.name=p1.resolvedValue>&
  <p2.name=p2.resolvedValue>...

Die <login-url> ergibt sich aus dem Parameter OA des Aufrufs von MOA-ID-AUTH, zusammen mit der Konfiguration von OnlineApplication/@publicURLPrefix und von OnlineApplication/ProxyComponent/ConnectionParameter/@URL.
Der Wert resolvedValue wird in MOA-ID-PROXY je nach Wert des Platzhalters eingesetzt.

BasicAuth
Das Element BasicAuth konfiguriert die übergabe der Authentisierungs-Parameter an die Online-Appliktion mittels HTTP Basic Authentication. Es enthält zwei Kind-Elemente.

Das Element UserID gibt die UserId des zu authentisierenden Benutzers an und kann einen der durch MOAAuthDataType beschriebenen Werte annehmen.

Das Element Password gibt das Passwort des zu authentisierenden Benutzers an und kann einen der durch MOAAuthDataType beschriebenen Werte annehmen.

HeaderAuth
Das Element HeaderAuth konfiguriert die übergabe der Authentisierungs-Parameter an die Online-Applikation in HTTP Request Headern. Das Element kann ein oder mehrere Kind-Elemente <Header> beinhalten.

 



Konfiguration von MOA-SP

MOA-ID überprüft die Signaturen der Personenbindung und des AUTH-Blocks mit dem VerifyXMLSignatureRequest von MOA-SP. Dazu muss MOA-SP wie unten beschreiben konfiguriert werden.

Ein Auszug einer beispielhaften MOA-SP Konfigurationsdatei, die diese Konfigurationsparameter enthält ist in $MOA_ID_INST_AUTH/conf/moa-spss/ SampleMOASPSSConfiguration.xml enthalten.

VerifyTransformsInfoProfile
Der Request zum überprüfen der Signatur des AUTH-Blocks verwendet ein vordefiniertes VerifyTransformsInfoProfile. Die im Request verwendete Profil-ID wird in der MOA-ID Konfigurationsdatei im Element /MOA-IDConfiguration/ AuthComponent/MOA-SP/VerifyAuthBlock/ VerifyTransformsInfoProfileID definiert. Entsprechend muss am MOA-SP Server ein VerifyTransformsInfoProfile mit gleichlautender ID definiert werden. Die Profiledefinition selbst ist in der Auslieferung von MOA-ID in $MOA_ID_INST_AUTH/conf/moa-spss/profiles/MOAIDTransformAuthBlock.xml enthalten. Diese Profildefinition muss unverändert übernommen werden.

TrustProfile
Die Requests zur überprüfung der Signatur verwenden vordefinierte TrustProfile. Die im Request verwendete Profil-IDs werden in der MOA-ID Konfigurationsdatei in den Elementen /MOA-IDConfiguration/AuthComponent/MOA-SP/VerifyIdentityLink/ TrustProfileID und /MOA-IDConfiguration/AuthComponent/MOA-SP/VerifyAuthBlock/TrustProfileID definiert. Diese beiden Elemente können unterschiedliche oder identische TrustProfileIDs enthalten. Am MOA-SP Server müssen TrustProfile mit gleichlautender ID definiert werden. Die Auslieferung von MOA-ID enthält das Verzeichnis $MOA_ID_INST_AUTH/conf/moa-spss/trustprofiles/MOAIDBuergerkarteRoot, das als TrustProfile verwendet werden kann. Weitere Zertifikate können als vertrauenswürdig hinzugefügt werden.

Certstore
Zum Aufbau eines Zertifikatspfades können benötigte Zertifikate aus einem Zertifikatsspeicher verwendet werden. Die Auslieferung von MOA-ID enthält das Verzeichnis $MOA_ID_INST_AUTH/conf/moa-spss/certstore, das als initialer Zertifikatsspeicher verwendet werden kann.

 



Änderung der Konfiguration während des Betriebs

Der Inhalt dieser Konfiguration, bzw. jene Teile, auf die indirekt verwiesen wird, können während des laufenden Betriebes des MOA-Servers geändert werden. Der Server selbst wird durch den Aufruf einer URL (im Applikationskontext von MOA ID) dazu veranlasst, die geänderte Konfiguration neu einzulesen. Im Falle einer fehlerhaften neuen Konfiguration wird die ursprüngliche Konfiguration beibehalten.




© 2003