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
|
|