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 sich die MOA-ID Konfigurationsdatei befindet, 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. Im Element ClientKeyStore wird der Filename des PKCS#12-Keys (relativ zur MOA-ID Konfigurationsdatei) angegeben. 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 (relativ zur MOA-ID Konfigurationsdatei) angegeben werden, in dem die akzeptierten Zertifikate der TLS-Verbindung hinterlegt sind. 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. Die Angabe erfolgt relativ zur MOA-ID Konfigurationsdatei. 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.

Wird das Kind-Element ConnectionParameter nicht angegeben so wird eine MOA-ID beiligende Version von MOA-SP direkt über das Java-API angesprochen. In diesem Fall muss das System-Property auf die verwendete Konfigurationsdatei von MOA-SP gesetzt werden. Eine beispielhafte MOA-SP Konfigurationsdatei ist in $MOA_ID_INST_AUTH/conf/moa-spss/SampleMOASPSSConfiguration.xml enthalten.

Hinweis: MOA-SP muss entsprechend konfiguriert werden - siehe hierzu Abschnitt Konfiguration von MOA-SP. Alle Details zur Konfiguration von MOA-SP finden sie in der Distribution von MOA-SP/SS beiligenden Dokumentation im Abschnitt 'Konfiguration'.

Das Kind-Element VerifyIdentityLink/TrustProfileID spezifiziert eine TrustProfileID, die für den VerifyXMLSignatureRequest zur Überprüfung der Signatur der Personenbindung verwendet werden muss. Diese TrustProfileID muss beim verwendeten MOA-SP Modul konfiguriert sein.

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. Diese TrustProfileID muss beim verwendeten MOA-SP Modul konfiguriert sein.

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. Die Angabe erfolgt relativ zur verwendeten MOA-ID Konfigurationsdatei. Beispiel für das Element configFileURL: "oa/SampleOAConfiguration.xml".
Defaultmäßig wird versucht die Datei von der betreffenden OnlineApplikation unter dem Wert: http://<realURLPrefix>/MOAConfig.xml zu laden.
(<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 optionelen Attribut loginParameterResolverConfiguration kann ein Configurationsstring für die Initialisierung der betreffenden loginParameterResolverImpl angegeben werden.

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 das Verzeichnis (relativ zur MOA-ID Konfigurationsdatei), das jene Zertifikate enthält, die als vertrauenswürdig betrachtet 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 (relativ zur MOA-ID Konfigurationsdatei)
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
name: FrontendServlets.EnableHTTPConnection

Standardmäßig können die beiden Servlets "StartAuthentication" und "SelectBKU" welche das User-Frontend darstellen, aus Sicherheitsgründen, nur über das Schema HTTPS aufgerufen werden.

Wenn die beiden Servlets jedoch auch Verbindungen nach dem Schema HTTP entgegennehmen sollen, so kann mittels dem Attribut "EnableHTTPServletConnection" erlaubt werden.

Hinweis: Sicher und sinnvoll ist das Erlauben der HTTP Verbindung nur dann, wenn ein Vorgeschalteter Webserver das HTTPS handling übernimmt, und eine Verbindung zu den Servlets nur über diesen Webserver möglich ist.


value:
Gültige Werte: true, false
Default-Wert: false
name: FrontendServlets.DataURLPrefix

Standardmäßig wird als DataURL Prefix das URL Präfix unter dem die MOA-ID Servlets erreichbar sind verwendet. Im Falle das sich der MOA-ID Server hinter einer Firewall befindet und die Requests von einem vorgelagertem Webserver weitergereicht werden, kann mit FrontendServlets.DataURLPrefix ein alternatives URL Präfix angegeben werden. In diesem Fall muss der Webserver so konfiguriert sein, dass er Request auf diese URLs an den MOA-ID Server weiterleitet.


value:
Gültige Werte: URLs nach dem Schema 'http://' und 'https://'
Default-Wert: kein Default-Wert
Beispiel: <GenericConfiguration name="FrontendServlets.DataURLPrefix" value="https://<your_webserver>/moa-id-auth/"/>


 



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.

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