From 3535ae9500b29d0b2d0f317ea7f47a6c25c6f70e Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Tue, 10 Jul 2018 16:53:03 +0200 Subject: some small updates and handbook update --- .../data/deploy/conf/moa-id/moa-id.properties | 36 +- .../conf/moa-spss/SampleMOASPSSConfiguration.xml | 3 + id/server/doc/handbook/additional/additional.html | 25 ++ id/server/doc/handbook/config/config.html | 414 ++++----------------- .../id/advancedlogging/MOAIDEventConstants.java | 8 +- .../moa/id/advancedlogging/MOAReversionLogger.java | 6 + .../EidasCentralAuthConstants.java | 2 +- ...idasCentralAuthRequestBuilderConfiguration.java | 12 +- .../tasks/CreateAuthnRequestTask.java | 10 + .../tasks/ReceiveAuthnResponseTask.java | 39 +- 10 files changed, 171 insertions(+), 384 deletions(-) (limited to 'id/server') diff --git a/id/server/data/deploy/conf/moa-id/moa-id.properties b/id/server/data/deploy/conf/moa-id/moa-id.properties index fa6bccef0..e8cdcf74d 100644 --- a/id/server/data/deploy/conf/moa-id/moa-id.properties +++ b/id/server/data/deploy/conf/moa-id/moa-id.properties @@ -27,22 +27,11 @@ configuration.monitoring.test.identitylink.url=$PATH_TO_CONFIG$/conf/moa-id/moni #MOA-ID 3.x Advanced Logging configuration.advancedlogging.active=false -##Webservice Client Configuration -#MOA-SP webservice -#service.moasp.acceptedServerCertificates= -#service.moasp.clientKeyStore= -#service.moasp.clientKeyStorePassword= - #Online mandates webservice (MIS) service.onlinemandates.acceptedServerCertificates= service.onlinemandates.clientKeyStore=keys/.... service.onlinemandates.clientKeyStorePassword= -#Foreign Identities (SZRGW) -service.foreignidentities.acceptedServerCertificates= -service.foreignidentities.clientKeyStore=keys/.... -service.foreignidentities.clientKeyStorePassword= - ##Protocol configuration## #PVP2 protocols.pvp2.idp.ks.file=file:$PATH_TO_CONFIG$/conf/moa-id/keys/moa_idp[password].p12 @@ -61,6 +50,31 @@ protocols.oauth20.jwt.ks.password=password protocols.oauth20.jwt.ks.key.name=oauth protocols.oauth20.jwt.ks.key.password=password + + +######## central eIDAS-node connector module ########## +modules.eidascentralauth.keystore.path=file:$PATH_TO_CONFIG$/conf/moa-id/keys/moa_idp[password].p12 +modules.eidascentralauth.keystore.password=password +modules.eidascentralauth.metadata.sign.alias=pvp_metadata +modules.eidascentralauth.metadata.sign.password=password +modules.eidascentralauth.request.sign.alias=pvp_assertion +modules.eidascentralauth.request.sign.password=password +modules.eidascentralauth.response.encryption.alias=pvp_assertion +modules.eidascentralauth.response.encryption.password=password + +modules.eidascentralauth.node.trustprofileID=centralnode_metadata + + +#modules.eidascentralauth.required.additional.attributes.0=urn:oid:1.2.40.0.10.2.1.1.261.36,false +#modules.eidascentralauth.required.additional.attributes.1=urn:oid:1.2.40.0.10.2.1.1.261.104,false +#modules.eidascentralauth.required.additional.attributes.2=urn:oid:1.2.40.0.10.2.1.1.261.38,false + +########################################################## + + + + + ##Database configuration## configuration.database.byteBasedValues=false diff --git a/id/server/data/deploy/conf/moa-spss/SampleMOASPSSConfiguration.xml b/id/server/data/deploy/conf/moa-spss/SampleMOASPSSConfiguration.xml index 31fc8a16c..18952eaf7 100644 --- a/id/server/data/deploy/conf/moa-spss/SampleMOASPSSConfiguration.xml +++ b/id/server/data/deploy/conf/moa-spss/SampleMOASPSSConfiguration.xml @@ -64,6 +64,9 @@ PVP_metadata trustProfiles/PVP_metadata + centralnode_metadata + trustProfiles/centralnode_metadata + true diff --git a/id/server/doc/handbook/additional/additional.html b/id/server/doc/handbook/additional/additional.html index 9e3cdf11e..557f3d528 100644 --- a/id/server/doc/handbook/additional/additional.html +++ b/id/server/doc/handbook/additional/additional.html @@ -610,6 +610,31 @@   Personenbindung für Authentifizierung über eIDAS Node erstellt + + 6200 +   + Anmeldung via nationalen zentralen eIDAS Knoten gestartet + + + 6201 + RequestID + Weiterleitung an zentralen eIDAS Knoten mit RequestID + + + 6202 + ResponseID + Antwort von zentralem eIDAS Knoten mit ResponseID erhalten + + + 6203 +   + Antwort von zentralem eIDAS Knoten enthält einen Fehler + + + 6204 +   + Antwort von zentralem eIDAS Knoten vollständig und gültig +

 

Einzelne Events werden um einen Transaktionsparameter ergänzt, welcher in der Spalte Wert beschrieben ist.
diff --git a/id/server/doc/handbook/config/config.html b/id/server/doc/handbook/config/config.html index 30624d3b0..26925709e 100644 --- a/id/server/doc/handbook/config/config.html +++ b/id/server/doc/handbook/config/config.html @@ -59,7 +59,7 @@

  1. MOA-SP
  2. Online-Vollmachen
  3. -
  4. Foreign Identities
  5. +
  6. Zentraler eIDAS Knoten
  • Protokolle @@ -77,7 +77,6 @@
  • Testing
  • SZR Client für STORK <-> PVP Gateway Betrieb
  • -
  • STORK 2.0
  • @@ -98,14 +97,13 @@
  • MOA-SP
  • Externe Services
  • Single-Sign On (SSO)
  • -
  • Secure idenTity acrOss boRders linKed (STORK)
  • Protokolle -
      -
    1. Protkolle aktivieren
    2. -
    3. Legacy Modus
    4. -
    5. SAML1 Konfiguration
    6. -
    7. PVP2.1 Konfiguration
    8. -
    +
      +
    1. Protkolle aktivieren
    2. +
    3. Legacy Modus
    4. +
    5. SAML1 Konfiguration
    6. +
    7. PVP2.1 Konfiguration
    8. +
  • Security-Layer Transformationen
  • Revisionssicherheit
  • @@ -122,9 +120,9 @@
  • BKU Konfiguration
  • Test Credentials
  • Vollmachten
  • -
  • SZR-Gateway Service
  • +
  • Zentraler eIDAS Connector
  • Single Sign-On (SSO)
  • -
  • Secure idenTity acrOss boRders linKed (STORK)
  • +
  • Authentifizierung via eIDAS
  • Authentifizierungsprotokolle
    1. SAML 1
    2. @@ -504,8 +502,8 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet

       

      -
      2.2.2.2.3 Foreign Identities
      -

      MOA-ID-Auth bietet die Möglichkeit der Nutzung von ausländischen Karten oder die Anmeldung ausländischer Personen mittels STORK. Hierfür ist eine Verbindung zum Stammzahlenregister-Gateway nötig, das einen entsprechenden Zugang zum Stammzahlenregister bereitstellt. Für diesen Zugriff muss das Client-Zertifikat für die SSL-Verbindung zum Gateway angegeben werden. Voraussetzung dafür ist ein Zertifikat von A-Trust bzw. A-CERT mit Verwaltungseigenschaft oder Dienstleistereigenschaft. Wenn ihr MOA-ID-Auth Zertifikat diese Voraussetzung erfüllt, können Sie dieses hier angeben.

      +
      2.2.2.2.3 Zentraler eIDAS Knoten
      +

      MOA-ID-Auth bietet die Möglichkeit die Anmeldung ausländischer Personen mittels eIDAS. Hierfür ist eine Verbindung zum österreichischen zentralen eIDAS Knoten notwendig. Für diesen Zugriff muss der Zugriff auf den zentralen eIDAS Knoten wie unten angegeben konfiguriert werden. Der Zugriff auf den zentralen eIDAS Knoten erfolgt via PVP2 S-Profil wobei das Signaturzertifikat für die PVP2 Metadaten beim Betreiber des zentralen eIDAS Knoten registriert werden muss.

      @@ -513,19 +511,55 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet - + - + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Name Beschreibung
      service.foreignidentities.clientKeyStoremodules.eidascentralauth.keystore.path keys/szrgw.p12Dateiname des PKCS#12 Keystores, relativ zur MOA-ID Konfigurationsdatei. Diesem Keystore wird der private Schlüssel für die TLS-Client-Authentisierung entnommen.Dateiname des Java Keystore oder PKCS12 Keystore zur Signierung von PVP 2.1 spezifischen Inhalten. (PVP 2.1 Metadaten, PVP 2.1 Assertion)
      service.foreignidentities.clientKeyStorePasswordmodules.eidascentralauth.keystore.password pass1234 Passwort zum Keystore
      service.foreignidentities.acceptedServerCertificatescerts/szrgw-server/Hier 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> (siehe Kapitel 3.1.4) angegebenen Zertifikaten erstellt werden kann.modules.eidascentralauth.metadata.sign.alias Name des Schlüssels der zur Signierung der PVP 2.1 Metadaten des eIDAS Authentifizierungsmoduls
      modules.eidascentralauth.metadata.sign.password Passwort des Schlüssels der zur Signierung der PVP 2.1 Metadaten des eIDAS Authentifizierungsmoduls
      modules.eidascentralauth.request.sign.alias Name des Schlüssels mit dem der PVP 2.1 Authn. Request durch MOA-ID-Auth unterschieben wird
      modules.eidascentralauth.request.sign.password Passwort des Schlüssels mit dem der PVP 2.1 Authn. Request durch MOA-ID-Auth unterschieben wird
      modules.eidascentralauth.response.encryption.alias Name des Schlüssels mit dem die PVP 2.1 Assertion für MOA-ID-Auth verschlüsselt werden soll
      modules.eidascentralauth.response.encryption.password Passwort des Schlüssels mit dem PVP 2.1 Assertion für MOA-ID-Auth verschlüsselt werden soll
      modules.eidascentralauth.node.trustprofileID MOA-SP TrustProfil welches die vertrauenswürdigen Zertifikate zur Validierung der Metadaten des zentralen eIDAS Knoten beinhaltet
      modules.eidascentralauth.required.additional.attributes.x 

      Optional: zusätzliche Attribute welche vom zentralen eIDAS Knoten angefordert werden

      +

      Attribute werden entspechend PVP2 Attribute-Profil angegeben. Beispiele für die Konfiguration finden Sie in der Beispielkonfiguration

       

      @@ -911,38 +945,6 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet

       

      Hinweis: Detaillierte Informationen zu den einzelnen PVP spezifischen Konfigurationsparametern finden Sie in der entsprechenden PVP Spezifikation.

      -
      2.2.2.6 STORK 2
      -

      Dieses Abschnitt beschreibt Konfigurationswerte welche nur für den Testbetrieb von STORK 2 erforderlich sind.

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      NameBeispielwertBeschreibung
      stork.fakeIdL.activetrue / false

      Im Produktivbetrieb ist eine Anmeldung nur für jene Länder mittels STORK 2 möglich welche in der Gleichwertigkeitsverordnung aufgelistet sind. Um einen Testbetrieb mit weiteren Ländern zu ermöglichen bietet das Modul MOA-ID-Auth die Möglichkeit zur Ausstellung eines Fake-Identititlink, welcher im Testbetrieb für die Anmeldung an einer österreichischen Test Online Applikation verwendet werden kann.

      -

      Hinweis: Diese Funktion ist standardmäßig deaktiviert. Eine Aktivierung ist nur im Testbetrieb für STORK 2 empfohlen.

      stork.fakeIdL.countriesDE,CHKürzel jener Länder für welche ein Fake-Identitilink ausgestellt werden soll.
      stork.fakeIdL.keygroupIDL_signingMOA-SS Schlüsselgruppe, welche für die Signatur des Fake-Identitilinks verwendet werden soll.
      stork.documentservice.urlhttp://testvidp.buergerkarte.at/
      - DocumentService/DocumentService?wsdl
      URL zum STORK 2 Dokumentenservice
      -

       

      2.3 Konfiguration des Loggings

      Die Module MOA-ID-Auth und MOA-ID-Configuration verwendet als Framework für Logging-Information die Open Source Software log4j. Die Konfiguration der Logging-Information erfolgt nicht direkt durch die einzelnen Module, sondern über eine eigene Konfigurationsdatei, die der Java Virtual Machine durch eine System Property mitgeteilt wird. Der Name der System Property lautet log4j.configuration; als Wert der System Property ist eine URL anzugeben, die auf die log4j-Konfigurationsdatei verweist, z.B.

      log4j.configuration=file:/C:/Programme/apache/tomcat-8.x.x/conf/moa-id/log4j.properties
      @@ -953,99 +955,8 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet

      Weitere Informationen zur Konfiguration des Loggings erhalten Sie in Abschnitt 2.1.3 des Installationshandbuchs.

      -

      2.4 Konfiguration des SamlEngines

      -

      Für die Untestützung des STORK2 Protokols verwendet MOA-ID eine zusätzliche Bibliothek, die über gesonderte Dateien konfiguriert wird. Diese Dateien sind unter einem Verzeichnis gespeichert, das sich üblicherweise im MOA-ID-Auth Konfigurationsverzeichnis befindet. Der Name der System Property lautet eu.stork.samlengine.config.location; als Wert der System Property ist das Verzeichnis anzugeben, wo die entsprechende SamlEngine Konfigurationsdateien gespeichert werden, z.B.

      -
      eu.stork.samlengine.config.location=file:/C:/Programme/apache/tomcat-8.x.x/conf/moa-id/conf/moa-id/stork
      -

      Dieses Verzeichnis muss mindestens folgende Dateien enthalten:

      - - - - - - - - - - - - - - - - -
      DateiBeschreibung
      SamlEngine.xmlDie Hauptdatei, in welcher die Konfigurationen von verschiedenen Instanzen des SamlEngines angegeben werden.
      StorkSamlEngine_XXX.xmlEnthält allgemeine Konfigurationsparametern einer spezifischen Instanz des SamlEngines.
      SignModule_XXX.xmlEnthält Konfigurationsparametern für Trust- und Keystore einer spezifischen Instanz des SamlEngines.
      -

      -

      In der Hauptkonfigurations-Datei (SamlEngine.xml) verweist auf alle Konfigurationsdateien für sie SamlEngine, welche für unterschiedliche Anwendungsszenarien verwendet werden können. Die Beispielkonfiguration dieser Datei sieht wie folgendes: -

      -
      -<?xml version="1.0" encoding="UTF-8"?>
      -<instances>
      -        <!-- Configuration name-->
      -        <instance name="VIDP">
      -                <!-- Configurations parameters StorkSamlEngine  -->
      -                <configuration name="SamlEngineConf">
      -                        <parameter name="fileConfiguration" value="StorkSamlEngine_VIDP.xml" />
      -                </configuration>
      -
      -                <!-- Settings module signature-->
      -                <configuration name="SignatureConf">
      -                        <!-- Specific signature module -->
      -                        <parameter name="class" value="eu.stork.peps.auth.engine.core.impl.SignSW" />
      -                        <!-- Settings specific module -->
      -                        <parameter name="fileConfiguration" value="SignModule_VIDP.xml" />
      -                </configuration>
      -        </instance>
      -</instances>
      -
      -

      In diesem Beispiel ist nur eine Instanz VIDP definiert deren spezifischen Parametern in zwei Konfigurationsdateien aufgeteilt werden.

      -

      Die Datei StorkSamlEngine_VIDP.xml enthält STORK-spezifische Parameter, die im Normalbetrieb nicht geändert werden müssen. Die zweite Datei, SignModule_VIDP.xml, definiert den von der SamlEngine verwendeten Trust- und Keystore. Die Beispielkonfiguration dieser Datei sieht wie folgendes:

      -
      -<?xml version="1.0" encoding="UTF-8"?>
      -<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
      -
      -<properties>
      -        <comment>SWModule sign with JKS.</comment>
      -        <entry key="keystorePath">C:/Programme/apache/tomcat-4.1.30/conf/moa-id/keys/storkDemoKeys.jks</entry>
      -        <entry key="keyStorePassword">local-demo</entry>
      -        <entry key="keyPassword">XXX</entry>
      -        <entry key="issuer">C=AT, L=Graz, OU=Institute for Applied Information Processing and Communications</entry>
      -        <entry key="serialNumber">123AA2CDB1123</entry>
      -        <entry key="keystoreType">JKS</entry>
      -</properties>
      -
      -

      Diese Parameter müssen bei der Installation angepasst werden, um die Zugriff an Keystore und die Schlüssel zu ermöglichen. Die einzelne Parameter werden in folgender Tabelle erläutert:

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      NameBeschreibung
      keystorePathKeystore mit Schlüssel und Zertifikaten welche für das Signieren und Verschlüsseln von STORK Nachrichten verwendet werden sollen.
      keyStorePasswordPasswort des Keystores. Keystore soll den Schlüssel für das Signieren von Nachrichten enthalten, ebenso wie die vertrauenswürdige Zertifikate von anderen Parteien, wie z.B. ausländische PEPSes.
      keyPasswordPassword des Schlüssels, der für das Signieren der STORK Nachrichten verwendet werden soll.
      issuerIssuer des Keypairs, der für das Signieren der STORK Nachrichten verwendet werden soll.
      serialNumberNummer des Keypairs, der für das Signieren der STORK Nachrichten verwendet werden soll.
      keystoreTypeTyp und Format des Keystores. JKS steht für Java Key Store.
      -

      3 Konfiguration MOA-ID-Auth

      -

      Dieser Abschnitt beschreibt die Konfiguration des Modules MOA-ID-Auth mithilfe der durch das Modul MOA-ID-Configuration zur Verfügung gestellten Web-Oberfläche. Hierzu muss das Konfigurationstool (Module MOA-ID-Konfiguration) bereits installiert und konfiguriert sein (siehe Kapitel 2.1). Nach erfolgreichem Login am Konfigurationstool kann das Modul MOA-ID-Auth über die Web-Oberfläche konfiguriert werden.

      +

      3 Konfiguration MOA-ID-Auth

      +

      Dieser Abschnitt beschreibt die Konfiguration des Modules MOA-ID-Auth mithilfe der durch das Modul MOA-ID-Configuration zur Verfügung gestellten Web-Oberfläche. Hierzu muss das Konfigurationstool (Module MOA-ID-Konfiguration) bereits installiert und konfiguriert sein (siehe Kapitel 2.1). Nach erfolgreichem Login am Konfigurationstool kann das Modul MOA-ID-Auth über die Web-Oberfläche konfiguriert werden.

      Die Konfiguration von MOA-ID-Auth ist in zwei Teilbereiche unterteilet. Diese behandeln die Allgemeine Konfiguration der MOA-ID-Auth Instanz und die Konfiguration von Online-Applikationen (Service Providern) welche dieser MOA-ID-Auth Instanz zugeordnet sind.

      3.1 Allgemeine Konfiguration

      @@ -1212,9 +1123,9 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet

      Hiermit werden die URLs zum Online-Vollmachten Service und zum SZR-Gateway konfiguriert. Die Konfiguration der für den Zugriff benötigen Client-Zertifikate wurden bereits im Abschnitt 2.2.2.2 behandelt.

      - - - + + + @@ -1229,16 +1140,15 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet

      Hinweis: Erfolgt in der Online Applikation keine konkrete Auswahl wird Standardmäßig das erste eingetragen Service verwendet.

      - - - + + @@ -1308,166 +1218,6 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet

      Ich Max Mustermann, geboren am 01.01.1978 stimme am 05.02.2014 um 10:35 einer Anmeldung mittels Single Sign-On zu.

      NameBeispielwertBeschreibungNameBeispielwertBeschreibung
      Online-Vollmachten Service (CSV)
      SZR-Gateway Service (CSV)https://szrgw.egiz.gv.at:8443/szr-gateway_2.0/services/IdentityLinkCreation

      URL(s) zum Stammzahlen-Register Gateway

      -

      Hinweis: Der SZR-Gateway Service welcher in der MOA-ID 1.5.1 Konfiguration verwendet wurde ist nicht mehr kompatibel zu MOA-ID 2.0. Das aktualisierte Test SZR-Gateway Service für MOA-ID 2.x steht unter folgender URL zur Verfügung. https://szrgw.egiz.gv.at:8443/szr-gateway_2.0/services/IdentityLinkCreation

      +
      Zentraler nationaler eIDAS Connector (CSV)https://vidp.gv.at.at/ms_connector/pvp/metadata

      URL(s) zum zentralen nationalen eIDAS Connector

      -

      Hinweis: Die URLs auf die unterschiedlichen Instanzen des SZR-Gateway Services können auch als Comma Separatet Value (CSV) eingetragen werden. Bei CSV werden die einzelnen URLs durch Beistrich (',') getrennt. Sind mehrere URLs hinterlegt kann das zu verwendeten Service je Online Applikation konfiguriert werden (siehe Kapitel 3.2.4).
      - (z.B.: https://szrgw.egiz.gv.at/services_2.0/IdentityLinkCreation,https://szrgw.egiz.gv.at:8443/services_2.0/IdentityLinkCreation)

      +

      Hinweis: Die URLs auf die unterschiedlichen Instanzen des zentralen eIDAS Connectos können auch als Comma Separatet Value (CSV) eingetragen werden. Bei CSV werden die einzelnen URLs durch Beistrich (',') getrennt. Sind mehrere URLs hinterlegt kann das zu verwendeten Service je Online Applikation konfiguriert werden (siehe Kapitel 3.2.4).
      + (z.B.: https://vidp.gv.at.at/ms_connector/pvp/metadata,https://eid.gv.at/ms_connector/pvp/metadata)

      Hinweis: Erfolgt in der Online Applikation keine konkrete Auswahl wird Standardmäßig das erste eingetragen Service verwendet.

      -

      3.1.8 Secure idenTity acrOss boRders linKed (STORK)

      -

      Hierbei werden allgemeine Parameter für STORK Protokoll konfiguriert.

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      NameBeispielwerteBeschreibung
      Standard QAA-Level4QAA (Attribute Quality Authentication Assurance) stellt Mindestanforderung von QAA fest.
      Country CodeESDer zweistelligen Code vom unterstützten PEPS-Staat.
      PEPS URLhttps://prespanishpeps.redsara.es/PEPS/ColleagueRequestDie Adresse von PEPS eines unterstützten PEPS-Staat.
      AttributnameeIdentifierDer Name des unterstützten Attributes. Die als zwingend markierte Attribute müssen im Response von dem gegenstehendem PEPS enthalten sein. Jedes Attribut wird gesondert eingetragen.
      Die Liste von vorhandenen und unterstützen Attributes ist in Konfigurationsdatei von SamlEngine (StorkSamlEngine_XXX.xml) vorhanden.
      -

       

      -

      Folgende PEPS URLs stehen aktuell zur Verfügung:

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      LändercodeTestInstanzURL
      AT Xhttps://testvidp.buergerkarte.at/moa-id-auth/stork2/SendPEPSAuthnRequest
      EE Xhttps://testpeps.sk.ee/PEPS/ColleagueRequest
      EE  https://peps.sk.ee/PEPS/ColleagueRequest
      ES Xhttps://prespanishpeps.redsara.es/PEPS/ColleagueRequest
      IS Xhttps://storktest.advania.is/PEPS/ColleagueRequest
      IS  https://peps.island.is/PEPS/ColleagueRequest
      LT Xhttps://testpeps.eid.lt/PEPS/ColleagueRequest
      PTXhttps://eu-id.teste.cartaodecidadao.gov.pt/PEPS/ColleagueRequest
      SIXhttps://peps-test.mju.gov.si/PEPS/ColleagueRequest
      -

       

      -

      Folgende Attribute müssen jedoch mindestens angefordert werden, wobei die erforderlichen Attribute je nach Anmeldeart unterschiedlich sind. Eine Liste mit weiteren möglichen Attribute finden Sie im Kapitel Protokolle oder in der STORK Spezifikation.

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Namenatürliche PersonAnmeldung in VertretungBeschreibung
      eIdentifierXXEindeutiger Identifier der Person für die die Anmeldung erfolgt.

      givenName

      XXVorname der Person für die die Anmeldung erfolgt.

      surname


      - X
      X

      Familienname der Person für die die Anmeldung erfolgt.

      dateOfBirthXXGeburtsdatum der Person für die die Anmeldung erfolgt.
      genderXXGeschlecht der Person für die die Anmeldung erfolgt.
      signedDocXXEin Dokument welches durch die Person, für die die Anmeldung erfolgt, signiert wurde.
      fiscalNumberXXEin eindeutiger nationaler Identifier der Person.
      canonicalResidenceAddress XAdresse der Person für welche die Anmeldung erfolgt
      mandateContent XElektronische Vollmacht, welche die Vertretungsverhältnisse widerspiegelt.
      representative XNatürliche Person welche eine juristische oder natürliche Person im Rahmen einer Anmeldung mittels Vollmacht vertritt.
      represented XJuristische oder natürliche Person welche im Rahmen einer Anmeldung mittels Vollmacht vertreten wird.

      3.1.9 Protokolle

      Hierbei handelt es ich um allgemeine Einstellungen zu den vom Modul MOA-ID-Auth unterstützen Authentifizierungsprotokollen.

      @@ -1826,8 +1576,8 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der

       

      Hinweis: Werden für die Online-Applikation eigene Templates für die Bürgerkartenauswahl oder die zusätzliche Anmeldeabfrage im SSO Fall (siehe Abschnitt 3.2.2) verwendet, stehen alle Konfigurationsparameter die Einfluss auf die BKU-Auswahl haben nicht zur Verfügung. Die Funktionalität der entsprechenden Parameter hat jedoch weiterhin Einfluss auf den Anmeldevorgang.

      -

      3.2.5 SZR-Gateway Service

      -

      Dieser Abschnitt behandelt online-applikationsspezifische Einstellungen zum Stammzahlenregistergateway der österreichischen Datenschutzbehörde.

      +

      3.2.5 Zentraler nationaler eIDAS Connector

      +

      Dieser Abschnitt behandelt online-applikationsspezifische Einstellungen zum Anknüpfung an den zentralen nationalen eIDAS Connector

      @@ -1837,11 +1587,11 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der - + -
      NameBeschreibung
      SZR-Gateway Service URL URL      

      Definiert das Stammzahlenregister-Gateway Service welches von dieser Online-Applikation verwendet werden soll. Hierfür stehen all jene Auswahlmöglichkeiten zur Verfügung welche in der Allgemeinen Konfiguration (siehe Kapitel 3.1.7) festgelegt wurden.

      +

      Definiert dan zentralen nationalen eIDAS Connector welcher von dieser Online-Applikation verwendet werden soll. Hierfür stehen all jene Auswahlmöglichkeiten zur Verfügung welche in der Allgemeinen Konfiguration (siehe Kapitel 3.1.7) festgelegt wurden.

      Hinweis: Wird keine spezifische Auswahl getroffen wird automatisch das Erste in der allgemeinen Konfiguration eingetragene Service verwendet.

      @@ -1873,8 +1623,8 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der

      Hinweis: Diese Abfrage ist standardmäßig aktiviert und kann nur durch einen Benutzer mit der Role admin deaktiviert werden.

      -

      3.2.7 Secure idenTity acrOss boRders linKed (STORK)

      -

      Dieser Abschnitt behandelt Online-Applikationsspezifische Einstellungen zu STORK.

      +

      3.2.7 Authentifizierung mittels eIDAS

      +

      Dieser Abschnitt behandelt Online-Applikationsspezifische Einstellungen zur Authentifizierung mittels eIDAS.

      @@ -1883,30 +1633,16 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der - + - + - + - - - - - - - - - - - - - +
      NameBeschreibung
      STORK verwendeneIDAS verwenden ja XDefiniert ob die Online-Applikation eine Anmeldung mittels STORK unterstützt. Wird STORK unterstützt wird in während der BKU-Auswahl die Option Home Country Selection für eine Anmeldung mittels STORK dargestellt.Definiert ob die Online-Applikation eine Anmeldung mittels eIDAS unterstützt. Wird eIDAS unterstützt wird in während der BKU-Auswahl die Option eIDAS LogIn für eine Anmeldung mittels eIDAS dargestellt.

      QAA-Level

      4high XVon der Online-Applikation geforderter mindest QAA-Level der Authentifizierung
      aktivierte Zielländer X

      Hier können jene STORK Länder konfiguriert werden für welche diese Online-Applikation eine Anmeldung mittels STORK unterstützt.

      -

      Hinweis: Die zur Auswahl stehenden Länder werden aus den PEPS Konfigurationen generiert, welche im allgemeinen Konfigurationsbereich hinterlegt wurden.

      angeforderte Attribute

        X

      STORK Attribute welche die Online-Applikation anfordert

      -

      Bei den Attributen kann jedoch nur aus dem Set der in der allgemeinen Konfiguration hinterlegten STORK Attributen (siehe Kapitel 3.1.8) gewählt werden, wobei Attribute die in der allgemeinen Konfiguration als zwingend markiert sind immer mitgeliefert werden.

      Von der Online-Applikation geforderter mindest LoA-Level der Authentifizierung

       

      diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/MOAIDEventConstants.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/MOAIDEventConstants.java index 2c1e47009..05d344fb6 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/MOAIDEventConstants.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/MOAIDEventConstants.java @@ -85,7 +85,13 @@ public interface MOAIDEventConstants extends EventConstants { public static final int AUTHPROCESS_PEPS_RECEIVED = 6102; public static final int AUTHPROCESS_PEPS_RECEIVED_ERROR = 6103; public static final int AUTHPROCESS_PEPS_IDL_RECEIVED = 6104; - + + public static final int AUTHPROCESS_EIDAS_AT_CONNECTOR_SELECTED = 6200; + public static final int AUTHPROCESS_EIDAS_AT_CONNECTOR_REQUESTED = 6201; + public static final int AUTHPROCESS_EIDAS_AT_CONNECTOR_RECEIVED = 6202; + public static final int AUTHPROCESS_EIDAS_AT_CONNECTOR_RECEIVED_ERROR = 6203; + public static final int AUTHPROCESS_EIDAS_AT_CONNECTOR_MDS_VALID = 6204; + //person information public static final int PERSONAL_INFORMATION_PROF_REPRESENTATIVE_BPK = 5000; public static final int PERSONAL_INFORMATION_PROF_REPRESENTATIVE = 5001; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/MOAReversionLogger.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/MOAReversionLogger.java index 9894ffbe9..1c1cc4168 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/MOAReversionLogger.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/MOAReversionLogger.java @@ -95,6 +95,12 @@ public class MOAReversionLogger implements IRevisionLogger { MOAIDEventConstants.AUTHPROCESS_PEPS_RECEIVED, MOAIDEventConstants.AUTHPROCESS_PEPS_RECEIVED_ERROR, MOAIDEventConstants.AUTHPROCESS_PEPS_IDL_RECEIVED, + + MOAIDEventConstants.AUTHPROCESS_EIDAS_AT_CONNECTOR_MDS_VALID, + MOAIDEventConstants.AUTHPROCESS_EIDAS_AT_CONNECTOR_RECEIVED, + MOAIDEventConstants.AUTHPROCESS_EIDAS_AT_CONNECTOR_RECEIVED_ERROR, + MOAIDEventConstants.AUTHPROCESS_EIDAS_AT_CONNECTOR_REQUESTED, + MOAIDEventConstants.AUTHPROCESS_EIDAS_AT_CONNECTOR_SELECTED, MOAIDEventConstants.AUTHPROCESS_FOREIGN_FOUND, MOAIDEventConstants.AUTHPROCESS_FOREIGN_SZRGW_RECEIVED, diff --git a/id/server/modules/moa-id-module-AT_eIDAS_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eIDAScentralAuth/EidasCentralAuthConstants.java b/id/server/modules/moa-id-module-AT_eIDAS_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eIDAScentralAuth/EidasCentralAuthConstants.java index 55864f3c9..0f4f81122 100644 --- a/id/server/modules/moa-id-module-AT_eIDAS_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eIDAScentralAuth/EidasCentralAuthConstants.java +++ b/id/server/modules/moa-id-module-AT_eIDAS_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eIDAScentralAuth/EidasCentralAuthConstants.java @@ -55,7 +55,7 @@ public class EidasCentralAuthConstants { public static final String CONFIG_PROPS_SIGN_SIGNING_ALIAS_PASSWORD = CONFIG_PROPS_PREFIX + "request.sign.alias"; public static final String CONFIG_PROPS_ENCRYPTION_KEY_PASSWORD = CONFIG_PROPS_PREFIX + "response.encryption.password"; public static final String CONFIG_PROPS_ENCRYPTION_ALIAS_PASSWORD = CONFIG_PROPS_PREFIX + "response.encryption.alias"; - public static final String CONFIG_PROPS_REQUIRED_PVP_ATTRIBUTES_LIST = CONFIG_PROPS_PREFIX + "required.additinal.attributes"; + public static final String CONFIG_PROPS_REQUIRED_PVP_ATTRIBUTES_LIST = CONFIG_PROPS_PREFIX + "required.additional.attributes"; public static final String CONFIG_PROPS_NODE_ENTITYID = CONFIG_PROPS_PREFIX + "node.entityId"; public static final String CONFIG_PROPS_NODE_METADATAURL = CONFIG_PROPS_PREFIX + "node.metadataUrl"; public static final String CONFIG_PROPS_NODE_TRUSTPROFILEID = CONFIG_PROPS_PREFIX + "node.trustprofileID"; diff --git a/id/server/modules/moa-id-module-AT_eIDAS_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eIDAScentralAuth/config/EidasCentralAuthRequestBuilderConfiguration.java b/id/server/modules/moa-id-module-AT_eIDAS_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eIDAScentralAuth/config/EidasCentralAuthRequestBuilderConfiguration.java index ebbe08588..8376f3aad 100644 --- a/id/server/modules/moa-id-module-AT_eIDAS_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eIDAScentralAuth/config/EidasCentralAuthRequestBuilderConfiguration.java +++ b/id/server/modules/moa-id-module-AT_eIDAS_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eIDAScentralAuth/config/EidasCentralAuthRequestBuilderConfiguration.java @@ -48,6 +48,7 @@ public class EidasCentralAuthRequestBuilderConfiguration implements IPVPAuthnReq private String scopeRequesterId; private String providerName; private List requestedAttributes; + private String reqId; /* (non-Javadoc) @@ -186,7 +187,7 @@ public class EidasCentralAuthRequestBuilderConfiguration implements IPVPAuthnReq */ @Override public String getRequestID() { - return null; + return this.reqId; } /* (non-Javadoc) @@ -256,6 +257,15 @@ public class EidasCentralAuthRequestBuilderConfiguration implements IPVPAuthnReq this.requestedAttributes = requestedAttributes; } + /** + * Set a RequestId for this Authn. Request + * + * @param reqId + */ + public void setRequestId(String reqId) { + this.reqId = reqId; + } + diff --git a/id/server/modules/moa-id-module-AT_eIDAS_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eIDAScentralAuth/tasks/CreateAuthnRequestTask.java b/id/server/modules/moa-id-module-AT_eIDAS_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eIDAScentralAuth/tasks/CreateAuthnRequestTask.java index 08ae845cb..e312299f8 100644 --- a/id/server/modules/moa-id-module-AT_eIDAS_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eIDAScentralAuth/tasks/CreateAuthnRequestTask.java +++ b/id/server/modules/moa-id-module-AT_eIDAS_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eIDAScentralAuth/tasks/CreateAuthnRequestTask.java @@ -29,6 +29,7 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.opensaml.common.impl.SecureRandomIdentifierGenerator; import org.opensaml.saml2.core.Attribute; import org.opensaml.saml2.metadata.EntityDescriptor; import org.opensaml.saml2.metadata.provider.MetadataProviderException; @@ -45,6 +46,7 @@ import at.gv.egiz.eaaf.modules.pvp2.api.reqattr.EAAFRequestedAttribute; import at.gv.egiz.eaaf.modules.pvp2.impl.builder.PVPAttributeBuilder; import at.gv.egiz.eaaf.modules.pvp2.impl.utils.SAML2Utils; import at.gv.egiz.eaaf.modules.pvp2.sp.impl.PVPAuthnRequestBuilder; +import at.gv.egovernment.moa.id.advancedlogging.MOAIDEventConstants; import at.gv.egovernment.moa.id.auth.modules.eIDAScentralAuth.EidasCentralAuthConstants; import at.gv.egovernment.moa.id.auth.modules.eIDAScentralAuth.config.EidasCentralAuthRequestBuilderConfiguration; import at.gv.egovernment.moa.id.auth.modules.eIDAScentralAuth.utils.EidasCentralAuthCredentialProvider; @@ -76,6 +78,8 @@ public class CreateAuthnRequestTask extends AbstractAuthServletTask { public void execute(ExecutionContext executionContext, HttpServletRequest request, HttpServletResponse response) throws TaskExecutionException { try{ + revisionsLogger.logEvent(pendingReq, MOAIDEventConstants.AUTHPROCESS_EIDAS_AT_CONNECTOR_SELECTED); + //check if eIDAS authentication is enabled for this SP if (!Boolean.parseBoolean(pendingReq.getServiceProviderConfiguration().getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ENABLED, String.valueOf(false)))) { Logger.info("eIDAS authentication is NOT enabled for OA: " + pendingReq.getServiceProviderConfiguration().getUniqueIdentifier()); @@ -114,6 +118,8 @@ public class CreateAuthnRequestTask extends AbstractAuthServletTask { //setup AuthnRequestBuilder configuration EidasCentralAuthRequestBuilderConfiguration authnReqConfig = new EidasCentralAuthRequestBuilderConfiguration(); + SecureRandomIdentifierGenerator gen = new SecureRandomIdentifierGenerator(); + authnReqConfig.setRequestId(gen.generateIdentifier()); authnReqConfig.setIdpEntity(entityDesc); authnReqConfig.setPassive(false); authnReqConfig.setSignCred(credential.getIDPAssertionSigningCredential()); @@ -130,6 +136,10 @@ public class CreateAuthnRequestTask extends AbstractAuthServletTask { //build and transmit AuthnRequest authnReqBuilder.buildAuthnRequest(pendingReq, authnReqConfig , response); + revisionsLogger.logEvent(pendingReq, + MOAIDEventConstants.AUTHPROCESS_EIDAS_AT_CONNECTOR_REQUESTED, + authnReqConfig.getRequestID()); + } catch (MOAIDException e) { throw new TaskExecutionException(pendingReq, e.getMessage(), e); diff --git a/id/server/modules/moa-id-module-AT_eIDAS_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eIDAScentralAuth/tasks/ReceiveAuthnResponseTask.java b/id/server/modules/moa-id-module-AT_eIDAS_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eIDAScentralAuth/tasks/ReceiveAuthnResponseTask.java index f9686029f..214a23f88 100644 --- a/id/server/modules/moa-id-module-AT_eIDAS_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eIDAScentralAuth/tasks/ReceiveAuthnResponseTask.java +++ b/id/server/modules/moa-id-module-AT_eIDAS_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eIDAScentralAuth/tasks/ReceiveAuthnResponseTask.java @@ -59,7 +59,6 @@ import at.gv.egovernment.moa.id.auth.exception.BuildException; import at.gv.egovernment.moa.id.auth.modules.eIDAScentralAuth.EidasCentralAuthConstants; import at.gv.egovernment.moa.id.auth.modules.eIDAScentralAuth.utils.EidasCentralAuthCredentialProvider; import at.gv.egovernment.moa.id.auth.modules.eIDAScentralAuth.utils.EidasCentralAuthMetadataProvider; -import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants; import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters; import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException; import at.gv.egovernment.moa.id.protocols.pvp2x.verification.SAMLVerificationEngineSP; @@ -112,7 +111,7 @@ public class ReceiveAuthnResponseTask extends AbstractAuthServletTask { msg = (InboundMessage) decoder.decode( request, response, metadataProvider, true, comperator); - + if (MiscUtil.isEmpty(msg.getEntityID())) { throw new InvalidProtocolRequestException("sp.pvp2.04", new Object[] {EidasCentralAuthConstants.MODULE_NAME_FOR_LOGGING}, @@ -126,9 +125,7 @@ public class ReceiveAuthnResponseTask extends AbstractAuthServletTask { msg.setVerified(true); } - - revisionsLogger.logEvent(pendingReq, MOAIDEventConstants.AUTHPROTOCOL_PVP_REQUEST_AUTHRESPONSE); - + //validate assertion PVPSProfileResponse processedMsg = preProcessAuthResponse((PVPSProfileResponse) msg); @@ -153,7 +150,7 @@ public class ReceiveAuthnResponseTask extends AbstractAuthServletTask { requestStoreage.storePendingRequest(pendingReq); //write log entries - revisionsLogger.logEvent(pendingReq, MOAIDEventConstants.AUTHPROCESS_INTERFEDERATION_REVEIVED); + revisionsLogger.logEvent(pendingReq, MOAIDEventConstants.AUTHPROCESS_EIDAS_AT_CONNECTOR_MDS_VALID); Logger.info("Receive a valid assertion from IDP " + msg.getEntityID()); } catch (MessageDecodingException | SecurityException e) { @@ -208,32 +205,7 @@ public class ReceiveAuthnResponseTask extends AbstractAuthServletTask { } } - - /** - * @param executionContext - * @param idpConfig - * @param message - * @param objects - * @throws TaskExecutionException - * @throws Throwable - */ - private void handleAuthnResponseValidationProblem(ExecutionContext executionContext, IOAAuthParameters idpConfig, Throwable e) throws TaskExecutionException { - - if (idpConfig != null && idpConfig.isPerformLocalAuthenticationOnInterfederationError()) { - Logger.info("Switch to local authentication on this IDP ... "); - - executionContext.put(MOAIDAuthConstants.PROCESSCONTEXT_REQUIRELOCALAUTHENTICATION, true); - executionContext.put(MOAIDAuthConstants.PROCESSCONTEXT_PERFORM_BKUSELECTION, true); - executionContext.remove(MOAIDAuthConstants.PROCESSCONTEXT_PERFORM_INTERFEDERATION_AUTH); - - } else { - throw new TaskExecutionException(pendingReq, "PVP response validation FAILED.", e); - - } - - } - /** * PreProcess AuthResponse and Assertion * @param msg @@ -257,11 +229,16 @@ public class ReceiveAuthnResponseTask extends AbstractAuthServletTask { EidasCentralAuthConstants.MODULE_NAME_FOR_LOGGING); msg.setSAMLMessage(SAML2Utils.asDOMDocument(samlResp).getDocumentElement()); + revisionsLogger.logEvent(pendingReq, + MOAIDEventConstants.AUTHPROCESS_EIDAS_AT_CONNECTOR_RECEIVED, + samlResp.getID()); return msg; } else { Logger.info("Receive StatusCode " + samlResp.getStatus().getStatusCode().getValue() + " from 'ms-specific eIDAS node'."); + revisionsLogger.logEvent(pendingReq, + MOAIDEventConstants.AUTHPROCESS_EIDAS_AT_CONNECTOR_RECEIVED_ERROR); throw new AuthnResponseValidationException("sp.pvp2.05", new Object[]{EidasCentralAuthConstants.MODULE_NAME_FOR_LOGGING, samlResp.getIssuer().getValue(), samlResp.getStatus().getStatusCode().getValue()}); -- cgit v1.2.3