<html> <head> <title>MOA-ID Anwendung</title> <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> <link rel="stylesheet" href="./common/MOA.css" type="text/css"> </head> <body link="#990000"> <table class="logoTable" width="100%" border="0" cellspacing="0" cellpadding="10"> <tr> <td align="center" class="logoTitle" width="267"><img src="common/LogoBKA.png" alt="Logo BKA" width="267" height="37" align="left"></td> <td align="center" class="logoTitle">Dokumentation</td> <td align="center" class="logoTitle" width="123"><img src="common/LogoEGIZ.png" alt="Logo EGIZ" width="230" height="81" align="right"></td> </tr> </table> <hr/> <p class="title"><a href="./moa.htm">MOA: Identifikation (ID)</a></p> <p class="subtitle">Basis-Installation</p> <hr/> <h1>Inhalt</h1> <ol> <li> <p><a href="#uebersicht">Übersicht</a></p> </li> <li> <p><a href="#webservice">Aufruf des MOA-ID-AUTH Web Service</a></p> </li> <li> <p><a href="#proxy">Einsatz von MOA-ID-PROXY zum Abfragen der Anmeldedaten von MOA-ID-AUTH</a></p> </li> </ol> <hr/> <h1><a name="uebersicht" id="uebersicht">1 Übersicht</a></h1> Nach erfolgter Authentisierung stehen in MOA-ID-AUTH Anmeldedaten zum Abholen bereit, und MOA-ID-AUTH veranlasst einen Redirect zur Online-Applikation (OA). <br /> <br /> In diesem Redirect werden der Geschäftsbereich und ein SAML-Artifact als Parameter übergeben. <pre><a href="https://<oa-url> ?Target=<geschäftsbereich> &SAMLArtifact=<saml-artifact>"></pre> <table border="1"> <tbody valign="baseline"> <tr> <td><oa-url></td> <td>URL, der beim Aufruf von MOA-ID-AUTH als Parameter "OA" übergeben wurde</td> </tr> <tr> <td>Target=<geschäftsbereich></td> <td>Parameter, der beim Aufruf von MOA-ID-AUTH übergeben wurde</td> </tr> <tr> <td>SAMLArtifact=<saml-artifact></td> <td>SAML-Artifact, das von MOA-ID-AUTH zu den Anmeldedaten erstellt wurde. Mithilfe dieses SAML-Artifacts kann die OA die Anmeldedaten von MOA-ID-AUTH abholen.</td> </tr> </tbody> </table> <br/> Grundsätzlich stehen einer OA mehrere Arten zum Abholen der Anmeldedaten von MOA-ID-AUTH zur Verfügung: <ol> <li>Die Applikation ruft selbst das MOA-ID-AUTH Web Service auf. <br/> Die Implementierung dieser Variante wird empfohlen, insbesondere für Online-Applikationen, die neu erstellt werden. </li> <li>Es wird die MOA-ID-PROXY Webapplikation eingesetzt, um die Anmeldedaten abzuholen und an die OA zu übergeben. <br/> Aus Sicht von MOA-ID-PROXY ist bedeutsam, ob die OA die Anmeldedaten nach Abarbeitung des HTTP-Requests behält. <ul> <li>Stateful OA: MOA-ID-PROXY übergibt einmalig die Anmeldedaten an die OA, und die OA speichert die Anmeldedaten, typischerweise unter Einsatz von Cookies.</li> <li>Stateless OA: MOA-ID-PROXY übergibt die Anmeldedaten bei jedem HTTP-Request vom Browser des Bürgers an die OA.</li> </ul> Diese Variante ist vorzuziehen, wenn <ul> <li>für die Plattform, auf der die OA aufbaut, Web Service-Schnittstellen nicht verfügbar sind</li> <li>das nötige Web Service-Know How nicht zur Verfügung steht</li> <li>die Implementierung von Variante 1 zu aufwändig wäre</li> <li>eine Anpassung der OA aus bestimmten Gründen nicht möglich ist</li> </ul> </li> </ol> <h1><a name="webservice" id="webservice">2 Aufruf des MOA-ID-AUTH Web Service</a></h1> <p>Das MOA-ID-AUTH Web Service wird über einen <samlp:Request> aufgerufen. Der <samlp:Request> enthält in einem <samlp:AssertionArtifact> das von MOA-ID-AUTH übergebene SAML-Artifact. <br/> <br/> MOA-ID-AUTH liefert als Antwort einen <samlp:Response>. Die Anmeldedaten sind im <samlp:Response> in Form einer <saml:Assertion> enthalten. <ul> <li> <a href="../cs-sstc-schema-protocol-01.xsd">SAML 1.0 Protocol Schema</a> <br/> </li> <li> <a href="../cs-sstc-schema-assertion-01.xsd">SAML 1.0 Assertion Schema</a> </p> </li> </ul> <p>Der detaillierte Aufbau der <saml:Assertion> zu den Anmeldedaten ist in der <a href="../MOA_ID_1.4_20070306.pdf">Spezifikation MOA-ID 1.4</a> beschrieben. <br/> <br/> <b>Beispiel LoginServletExample</b> Das Abholen der Anmeldedaten durch Aufruf des Web Service von MOA-ID-AUTH wird anhand eines beispielhaften Java Servlet gezeigt. Das LoginServletExample wird in einer Stateful OA von MOA-ID-AUTH nach erfolgter Authentisierung über Redirect aufgerufen. <br/> <br/> Das Beispiel demonstriert insgesamt die Integration von MOA-ID-AUTH in die OA: </p> <ul> <li>Parameterübergabe von MOA-ID-AUTH an die OA</li> <li>Aufruf des MOA-ID-AUTH Web Service mittels des SOAP Frameworks "Apache AXIS"</li> <li>Parsen der Anmeldedaten mittels der XPath Engine "Jaxen"</li> <li>Speichern der Anmeldedaten in der HTTPSession</li> <li>Redirect auf die eigentliche Startseite der OA</li> </ul> <p><b>Voraussetzungen</b><br > Die folgende Liste enthält die für das Beispiel erforderlichen Java-Bibliotheken. Die angeführten Versionsnummern bezeichnen jene Versionen dieser Java-Bibliotheken, mit denen das Beispiel getestet wurde.</p> <table border="1" width="100%" cellpadding="2" cellspacing="0"> <tr> <th>Java-Bibliothek</th> <th>Version</th> <th>Bemerkung</th> </tr> <tr> <tr valign="top"> <td>JDK</td> <td>1.4.0+, 1.5.0</td> <td>Java Development Kit</td> </tr> <tr valign="top"> <td>Xerces <br /> XML Parser</td> <td>2.0.2+</td> <td id="klein2">Download: <a href="http://xml.apache.org/xerces2-j/">xml.apache.org/xerces2-j</a></td> </tr> <tr valign="top"> <td>AXIS <br /> SOAP Framework</td> <td>1.0+</td> <td id="klein2">Download: <a href="http://xml.apache.org/axis/">xml.apache.org/axis</a></td> </tr> <tr valign="top"> <td>Jaxen XPath Engine</td> <td>1.0+</td> <td id="klein2">Download: <a href="http://jaxen.sourceforge.net/">http://jaxen.sourceforge.net</a></td> </tr> <tr valign="top"> <td>Servlet API</td> <td>2.3+</td> <td id="klein2">Download: <a href="http://java.sun.com/products/servlet/">java.sun.com/products/servlet</a></td> </tr> </table> <br/> <b>Code</b><br /> <a href="examples/LoginServletExample.txt">LoginServletExample</a> <h1><a name="proxy" id="proxy">3 Einsatz von MOA-ID-PROXY zum Abfragen der Anmeldedaten von MOA-ID-AUTH</a></h1> Anstatt den Aufruf des MOA-ID-AUTH Web Service in der OA zu implementieren, kann die MOA-ID-PROXY Webapplikation eingesetzt werden, um dies für die OA zu erledigen. MOA-ID-PROXY muss für die OA konfiguriert werden, so wie in <a href="id-admin_2.htm#OnlineApplication/ProxyComponent">MOA-ID-Administration</a> beschrieben. <br/> <br/> Bei der Konfiguration ist speziell zu beachten: <br/> <br/> <b>Konfigurationsdatei zur OA</b><br /> Der <a href="id-admin_2.htm#oa-config">LoginType</a> (stateful oder stateless) ist gemäß dem Applikationstyp zu setzen. <br/> <br/> Die <a href="id-admin_2.htm#oa-config">Übergabe der Anmeldedaten</a> ist in Form und Inhalt zu konfigurieren. <ul> <li>BasicAuth: HTTP Basic Authentication (<a href="examples/conf/OAConfBasicAuth.xml">Beispiel</a>)</li> <li>ParamAuth: Übergabe über Requestparameter (<a href="examples/conf/OAConfParamAuth.xml">Beispiel</a>)</li> <li>HeaderAuth: Übergabe über Requestheader (<a href="examples/conf/OAConfHeaderAuth.xml">Beispiel</a>)</li> </ul> <b>LoginParameterResolver</b><br /> Das Übergabe der Anmeldedaten an die OA über Request Parameter oder Header geschieht in einer Standardimplementierung des Interface <pre>at.gv.egovernment.moa.proxy.LoginParameterResolver</pre> Falls die Erfordernisse der OA mittels <a href="id-admin_2.htm#oa-config">Konfiguration</a> nicht abgedeckt werden können, so kann eine maßgeschneiderte Implementierung von <tt>LoginParameterResolver</tt> erstellt und zusammen mit MOA-ID-PROXY zum Einsatz gebracht werden (siehe <a href="../api-doc/at/gv/egovernment/moa/id/proxy/LoginParameterResolver.html">API</a>). <br/> <br/> <b>ConnectionBuilder</b> Das Herstellen einer URL-Verbindung von MOA-ID-PROXY zur OA geschieht einer Standardimplementierung des Interface <pre>at.gv.egovernment.moa.proxy.ConnectionBuilder </pre> Falls nötig, kann eine maßgeschneiderte Implementierung von <tt>ConnectionBuilder</tt> erstellt und zusammen mit MOA-ID-PROXY zum Einsatz gebracht werden (siehe <a href="../api-doc/at/gv/egovernment/moa/id/proxy/ConnectionBuilder.html">API</a>). </body> </html>