aboutsummaryrefslogtreecommitdiff
path: root/id.server/doc/moa_id/id-anwendung_2.htm
diff options
context:
space:
mode:
Diffstat (limited to 'id.server/doc/moa_id/id-anwendung_2.htm')
-rw-r--r--id.server/doc/moa_id/id-anwendung_2.htm249
1 files changed, 249 insertions, 0 deletions
diff --git a/id.server/doc/moa_id/id-anwendung_2.htm b/id.server/doc/moa_id/id-anwendung_2.htm
new file mode 100644
index 000000000..1ffeb4c08
--- /dev/null
+++ b/id.server/doc/moa_id/id-anwendung_2.htm
@@ -0,0 +1,249 @@
+<html>
+<head>
+ <title>MOA ID-Anwendung</title>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
+ <meta content="heinz.rosenkranz@brz.gv.at" name="author"/>
+
+<style type="text/css">
+ body { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ td { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ th { font-family:"Verdana", "Arial"; font-size:10pt; font-weight:bold; color:#d8d8d8; background:#505050}
+ li { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ ul { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ tt { font-size:9pt; color:#505060; }
+ pre { font-size:9pt; color:#505060; }
+ #titel { font-family:"Verdana", "Arial"; font-size:18pt; color:#505060; }
+ #subtitel { font-family:"Verdana", "Arial"; font-size:12pt; font-weight:bold; color:#505060; }
+ #slogan { font-family:"Verdana", "Arial"; font-size:8pt; color:#808090; text-align:justify; width:160px }
+ #block { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; text-align:justify }
+ #klein { font-family:"Verdana", "Arial"; font-size:9pt; color:#505060; margin-top:3px }
+ #info { font-family:"Verdana", "Arial"; font-size:8pt; color:#505060; padding:3px; border:solid 1px #c0c0c0 }
+ #infolist { font-family:"Verdana", "Arial"; font-size:8pt; color:#505060; }
+ a:link {color:#000090}
+ a:visited {color:#000090}
+ a:hover {color:#c03030}
+ a {text-decoration: none}
+</style>
+
+<script language="JavaScript">
+<!--
+function goWin(url) {
+ Fenster=window.open(url,"smallWin","toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=yes,scrollbars=yes,width=500,height=480,top=20,screenY=0,left=20,screenX=0");
+ window.setTimeout("showWin()",300);
+}
+function showWin() { Fenster.focus(); }
+// -->
+</script>
+</head>
+
+<body bgcolor="#FFFFFF" >
+<div style="width:650px">
+
+<!-- Projekt-Logo -->
+<div style="height:42px; font-size:16pt; color:#b0b8c0; background:#003050">
+&#160;Module für Online-Applikationen
+</div>
+<div style="margin-left:8px; margin-top:3px; font-size:8pt; color:#707070; ">
+<!-- Development Center der BRZ GmbH, A-Trust und IAIK Graz -->&#160;
+</div>
+<div style="margin-top:-65px; text-align:right; font-size:8pt; font-weight:bold; color:#d04040;" >
+Projekt <span style="font-size:48pt; ">moa</span>&#160;
+</div>
+<br />
+
+<!-- First Section with Navigation -->
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top">
+<div style="font-weight:bold; margin-top:12px">MOA-ID</div><br />
+<div id="klein"><a href="id-anwendung.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Übersicht</b></a></div>
+<div id="klein"><a href="id-anwendung_1.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Aufruf MOA-ID-AUTH</b></a></div>
+<div id="klein"><a href="id-anwendung_2.htm"><img src="../moa_images/select.gif" border="0" width="13" height="14" />
+ <b> Abfrage MOA-ID-AUTH </b></a></div>
+<br />
+<div id="klein"><a href="moa.htm"><img src="../moa_images/west.gif" border="0" width="13" height="14" />
+ <b> Zurück</b></a></div>
+</br /><br />
+<div id="slogan">
+<b>Abfragearten: </b>
+</br />
+<a href="#webservice"><b>Web Service</b></a><br />
+<a href="#proxy"><b>MOA-ID-PROXY</b></a><br />
+</div>
+</td>
+
+
+<td valign="top">
+<p id="titel">Abfrage der Anmeldedaten von MOA-ID-AUTH</p>
+<div id="block">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.
+</div>
+<pre>&lt;a href=&quot;https://&lt;oa-url&gt;
+?Target=&lt;geschäftsbereich&gt;
+&SAMLArtifact=&lt;saml-artifact&gt;&quot;&gt;</pre>
+
+<table border="1"><tbody valign="baseline">
+<tr><td>&lt;oa-url&gt;</td><td>URL, der beim Aufruf von MOA-ID-AUTH als Parameter &quot;OA&quot; übergeben wurde</td></tr>
+<tr><td>Target=&lt;geschäftsbereich&gt;</td><td>Parameter, der beim Aufruf von MOA-ID-AUTH übergeben wurde</td></tr>
+<tr><td>SAMLArtifact=&lt;saml-artifact&gt;</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/><br/>
+<div id="block">Grundsätzlich stehen einer OA mehrere Arten zum Abholen der Anmeldedaten von MOA-ID-AUTH zur Verfügung: </div>
+<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>
+</td></tr></table>
+
+
+
+<div id="webservice" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<br /><br />
+</div>
+</td>
+
+<td valign="top">
+<p id="subtitel">Aufruf des MOA-ID-AUTH Web Service</p>
+<div id="block">Das MOA-ID-AUTH Web Service wird über einen &lt;samlp:Request&gt; aufgerufen.
+Der &lt;samlp:Request&gt; enthält in einem &lt;samlp:AssertionArtifact&gt; das von MOA-ID-AUTH übergebene SAML-Artifact.
+<br/><br/>
+MOA-ID-AUTH liefert als Antwort einen &lt;samlp:Response&gt;. Die Anmeldedaten sind im &lt;samlp:Response&gt; in Form einer &lt;saml:Assertion&gt; enthalten.
+<br/><br/>
+<a href="../cs-sstc-schema-protocol-01.xsd">SAML 1.0 Protocol Schema</a>
+<br/>
+<a href="../cs-sstc-schema-assertion-01.xsd">SAML 1.0 Assertion Schema</a>
+<br/>
+Der detaillierte Aufbau der &lt;saml:Assertion&gt; zu den Anmeldedaten ist in der <a href="../MOA-ID-1.1-20030630.pdf">Spezifikation MOA-ID 1.1</a> beschrieben.
+<br/><br/>
+<h4>Beispiel LoginServletExample</h4>
+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:
+</div>
+<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>
+
+
+<b>Voraussetzungen</b><br >
+<div id="block">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. </div>
+<br />
+<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.3 bzw. 1.4.1</td><td>Java Development Kit</td>
+</tr><tr valign="top">
+<td>Xerces <br />XML Parser</td><td>2.0.2+</td>
+<td id="klein">nicht nötig wenn JDK 1.4 oder höher verwendet wird <br />
+ 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="klein">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="klein">Download: <a href="http://jaxen.sourceforge.net/">http://jaxen.sourceforge.net</a> </td>
+</tr><tr valign="top">
+<td>JSSE</td><td>1.0.3+</td>
+<td id="klein">wenn eine SSL Verbindung verwendet wird, nicht nötig ab JDK 1.4 <br />Download: <a href="http://java.sun.com/products/jsse/">java.sun.com/products/jsse</a> </td>
+</tr><tr valign="top">
+<td>Servlet API</td><td>2.3+</td>
+<td id="klein">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>
+
+</td></tr></table>
+
+<DIV bla="hhalloo">
+
+
+
+<div id="proxy" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<br /><br />
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Einsatz von MOA-ID-PROXY zum Abfragen der Anmeldedaten von MOA-ID-AUTH</p>
+<div id="block">
+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.
+</div>
+<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>
+
+<div id="block">
+<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>).
+</div>
+</td></tr></table>
+
+
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top"><br /></td>
+<td valign="top">
+<hr />
+<div style="font-size:8pt; color:#909090">&copy; 2003 <!-- Development Center, BRZ GmbH --></div>
+</td></tr></table>
+<br />
+
+
+</div>
+</body>
+</html>