MOA-ID im Cluster

  • In der MOA-ID history steht:



    Gibt es evt. eine kurze Beschreibung zur Verwendung dieser Funktionalitaet in Verbindung mit der Handy-Signatur?


    Ich habe den Parameter gesetzt. Beim Redirect zurueck zur OA haette ich die sourceID erwartet - dort bekomme ich aber weiterhin nur den SAMLArtifact.

  • Laut SAML1.1 Spezifikation wird die sourceID nicht als eigener Parameter an die OA zurückgegeben sondern ist indirekt im SAML Artifact enthalten.


    Das SAML Artifact ist eine Base64 codierte Byte-Sequenz welche aus folgenden Teilen besteht, wobei im Artifact nur der SHA-1 Hashwert der sourceID enthalten ist(20 Bytes).
    TypeCode:=0x0001 (2-Byte_sequence)
    SourceID:=20-byte_sequence
    AssertionHandle:=20-byte_sequence


    Um über das Artifact die sourceID zu ermitteln muss dieses decodiert werden. Anschließend kann die übermittelte sourceID mit den SHA1 Hashwerten der bei der OA hinterlegten sourceIDs verglichen werden um die korrekte MOA-ID Instanzen zu identifizieren.

  • Wenn ich das mit einem Server teste bekomme ich die sourceID aus dem SAML Artifact (wie von Ihnen beschrieben).


    Sobald ich jedoch zwei Server hinter den Reverse Proxy haenge habe ich folgendes Verhalten:


    node 1:

    Code
    1. [27/Feb/2014:15:59:11 +0100] "POST /moa-id-auth/VerifyIdentityLink?MOASessionID=-8633405189193979490 HTTP/1.1" 307 9460


    node 2:

    Code
    1. [27/Feb/2014:15:59:20 +0100] "POST /moa-id-auth/VerifyAuthBlock?MOASessionID=-8633405189193979490 HTTP/1.1" 404 1011


    Fehler im MOA Log bei Node 2:

    Code
    1. ERROR | 27 15:59:20,780 | http-apr-8080-exec-3 | MOASessionID ist unbekannt (MOASessionID=-8633405189193979490)


    Der Reverse Proxy sollte den zweiten Request wohl zur gleichen Node weiterleiten - aber woran kann ich das erkennen? Ich finde hier keine sourceID.

  • Die SourceID hat nur Einfluss auf die Generierung des Artifacts und wird nicht zwischen den einzelnen Requests als Parameter angefügt.


    Eine mögliche Lösung für das Problem wäre jede MOA-ID-Auth Instanz für sich auch nach extern Erreichbar zu machen (ohne Proxy) und jeder Instanz über den GenericParameter "FrontendServlets.DataURLPrefix" einen eigenen URL Prefix zuzuweisen.
    In diesem Fall würde nur mehr der StartAuthentification Request über den Proxy laufen und somit auf die einzelnen Instanzen verteilt werden. Die anschließende Kommunikation müsste dann jedoch direkt mit der jeweiligen MOA-ID-Auth Instanz erfolgen.


    Eine weitere Lösung für dieses Problem wäre die einzelnen MOA-ID-Auth Instanzen mit einer Session Replication Technik zu synchronisieren. Die Konfiguration der Session Replication hängt jedoch vom verwendeten Applikationsserver ab. Für Apache Tomcat 7 gibt es unter https://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html eine Beschreibung dieser Technik.


    Hinweis: Demnächst wird das finale Release von MOA-ID-Auth 2.0.0 erscheinen. Diese Version wird den Clusterbetrieb ohne zusätzliche Session Replikation am Applikationsserver unterstützen. Der aktuell auf JoinUp angebotene Release Kandidat 2.0-RC1 benötigt jedoch noch Session Replikation am Applikationsserver.