From 2e54605e4b6b828137ae92ac91564b833bdb8a14 Mon Sep 17 00:00:00 2001
From: kstranacher_eGovL
Frage 1
- Mit dem Internet Explorer kommt es bei einer Anmeldung an der lokal
- installierten Version von MOA-ID zu Fehlern beim Redirect. Warum? Frage 2
- Wenn die Proxy-Komponente lokal läuft und per TLS/SSL aufgerufen
- wird, kommt es zu einer Fehlermeldung. Wie kann dies verhindert werden? Frage 3
- Es soll serverseitig lediglich starke TLS/SSL Verschlüsselung (>100
- Bit) unterstützt werden. Wie kann dies erzwungen werden? Frage 4 Beim Starten von
- MOA ID bzw. MOA SPSS tritt folgende Exception auf: java.lang.ClassCastException:
- iaik.asn1.structures.Name. Was kann der Fehler sein? Frage 5 Ich möchte
- MOA in einer Umgebung betreiben, die einen Internet-Zugang nur über
- einen Proxy erlaubt. Funktioniert das? Frage 6 Tomcat: Wärend
- des Betriebs kommt es zu org.apache.commons.logging.LogConfigurationException.
- Wie kann dies verhindert werden? Q: Mit dem Internet Explorer kommt es bei einer Anmeldung
- an der lokal installierten Version von MOA-ID zu Fehlern beim Redirect.
- Warum? A: Aufgrund eines Fehlers in Microsofts Internet
- Explorer schlägt der (lokale) Redirect auf dem lokal installierten
- Tomcat fehl. Als Workaround empfiehlt es sich, zum lokalen Testen einen
- alternativen Browser wie Opera,
- Mozilla oder Netscape
- zu verwenden, da diese Probleme dort nicht auftreten. Von einem anderen
- Rechner aus kann jedoch die Anmeldung an MOA-ID auch mit dem Internet
- Explorer erfolgen. Q: Wenn die Proxy-Komponente lokal läuft und
- per TLS/SSL aufgerufen wird, kommt es zu einer Fehlermeldung. Wie kann
- dies verhindert werden? A: Wenn in der Konfiguration statt 'localhost' der
- eigene Rechnername verwendet wird, funktioniert die Proxy-Komponente
- wie gewohnt. Q: Es soll serverseitig lediglich starke TLS/SSL
- Verschlüsselung (>100 Bit) unterstützt werden. Wie kann
- dies erzwungen werden? A: Tomcat bietet (bis dato) keine einfache Möglichkeit
- die serverseitig verwendeten TLS/SSL Verschlüsselungsalgorithmen
- zu konfigurieren. Daher empfiehlt es sich in diesem Fall, einen Web-Server
- wie Apache oder den Microsoft Internet-Information-Server für das
- SSL-Handling vorzuschalten und dort in der jeweiligen Konfiguration
- starke Verschlüsselung zu erzwingen. FAQ - Häufig gestellte Fragen Frage 1 Mit dem Internet Explorer kommt es bei einer Anmeldung an der lokal
+ installierten Version von MOA-ID zu Fehlern beim Redirect. Warum? Frage 2 Wenn die Proxy-Komponente lokal läuft und per TLS/SSL aufgerufen
+ wird, kommt es zu einer Fehlermeldung. Wie kann dies verhindert werden? Frage 3 Es soll serverseitig lediglich starke TLS/SSL Verschlüsselung (>100
+ Bit) unterstützt werden. Wie kann dies erzwungen werden? Frage 4 Beim Starten von
+ MOA ID bzw. MOA SPSS tritt folgende Exception auf: java.lang.ClassCastException:
+ iaik.asn1.structures.Name. Was kann der Fehler sein? Frage 5 Ich möchte
+ MOA in einer Umgebung betreiben, die einen Internet-Zugang nur über
+ einen Proxy erlaubt. Funktioniert das? Frage 6 Tomcat: Wärend
+ des Betriebs kommt es zu org.apache.commons.logging.LogConfigurationException.
+ Wie kann dies verhindert werden? Q: Mit dem Internet Explorer kommt es bei einer Anmeldung
+ an der lokal installierten Version von MOA-ID zu Fehlern beim Redirect.
+ Warum? A: Aufgrund eines Fehlers in Microsofts Internet
+ Explorer schlägt der (lokale) Redirect auf dem lokal installierten
+ Tomcat fehl. Als Workaround empfiehlt es sich, zum lokalen Testen einen
+ alternativen Browser wie Opera, Mozilla oder Netscape zu verwenden, da diese Probleme dort nicht auftreten. Von einem anderen
+ Rechner aus kann jedoch die Anmeldung an MOA-ID auch mit dem Internet
+ Explorer erfolgen. Q: Wenn die Proxy-Komponente lokal läuft und
+ per TLS/SSL aufgerufen wird, kommt es zu einer Fehlermeldung. Wie kann
+ dies verhindert werden? A: Wenn in der Konfiguration statt 'localhost' der
+ eigene Rechnername verwendet wird, funktioniert die Proxy-Komponente
+ wie gewohnt. Q: Es soll serverseitig lediglich starke TLS/SSL
+ Verschlüsselung (>100 Bit) unterstützt werden. Wie kann
+ dies erzwungen werden? A: Tomcat bietet (bis dato) keine einfache Möglichkeit
+ die serverseitig verwendeten TLS/SSL Verschlüsselungsalgorithmen
+ zu konfigurieren. Daher empfiehlt es sich in diesem Fall, einen Web-Server
+ wie Apache oder den Microsoft Internet-Information-Server für das
+ SSL-Handling vorzuschalten und dort in der jeweiligen Konfiguration
+ starke Verschlüsselung zu erzwingen. A: Auf Grund einer mangelhaften Implementierung
+ A: Auf Grund einer mangelhaften Implementierung
in einigen Versionen des JDK 1.3.1 kann es beim Betrieb von MOA zu folgendem
Problem kommen: Sun macht in der Implementierung von PKCS7.getCertificate()
einen Downcast vom Interface java.security.Principal auf die eigene
@@ -136,7 +91,7 @@ MOA ist eine Entwicklung des Bundesrechenzentrums BRZ in Zusammenarbeit mit A-Tr
noch nicht installiert war. Wird dann von irgendeinem ClassLoader der
jar-Verifier benützt, wird PKCS7.getCertificate() verwendet, und
es kommt zu einer ClassCastException. Wird MOA über die API-Schnittstelle verwendet, ist ein
+ Wird MOA über die API-Schnittstelle verwendet, ist ein
Workaround die manuelle Installation des IAIK-JCE-Providers nach dem
Sun JCE-Provider (etwa an die letzte Stelle), bevor die MOA-Konfiguration
aufgerufen wird. Bei Verwendung der Webservices ist die Möglichkeit
@@ -146,71 +101,47 @@ MOA ist eine Entwicklung des Bundesrechenzentrums BRZ in Zusammenarbeit mit A-Tr
Q: Ich möchte MOA in einer Umgebung betreiben,
- die einen Internet-Zugang nur über einen Proxy erlaubt. Funktioniert
- das? A: Ja, zumindest für Zugriffe über HTTP.
- Sie müssen dazu die nachfolgenden JAVA System-Properties setzen: http.proxyHost=<proxyhost> <proxyhost> gibt den Namen oder die IP-Adresse des
- Proxies an. <proxyport> gibt den Port des Proxies an. <exceptionhosts> enthält eine Liste von Rechnernamen,
- die nicht über den Proxy laufen sollen. Jedenfalls müssen
- sie hier localhost angeben. Einzelne Namen sind durch eine
- Pipe (|) zu trennen. Bitte beachten Sie, dass IP-Addressen
- nicht angegeben werden dürfen, sowie die verpflichtend zu verwendenen
- Anführungszeichen. Q: Tomcat: Wärend des Betriebs kommt es zu org.apache.commons.logging.LogConfigurationException.
- Wie kann dies verhindert werden? org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException:
- org.apache.commons.logging.LogConfigurationException A: Dies ist ein Fehler in tomcat in der Version 4.1.27. $CATALINA_HOME\server\lib\tomcat-util.jar muss gegen eine
- gepatchte Version ausgetauscht werden, da ein BUG in der Originalversion
- von tomcat 4.1.27. Diese gepatchte Version ist in der MOA-ID Distribution
- im Verzeichnis $MOA_ID_INST_AUTH\tomcat\tomcat-util-4.1.27-patched\
- zu finden. Q: Ich möchte MOA in einer Umgebung betreiben,
+ die einen Internet-Zugang nur über einen Proxy erlaubt. Funktioniert
+ das? A: Ja, zumindest für Zugriffe über HTTP.
+ Sie müssen dazu die nachfolgenden JAVA System-Properties setzen: http.proxyHost=<proxyhost> <proxyhost> gibt den Namen oder die IP-Adresse des
+ Proxies an. <proxyport> gibt den Port des Proxies an. <exceptionhosts> enthält eine Liste von Rechnernamen,
+ die nicht über den Proxy laufen sollen. Jedenfalls müssen
+ sie hier localhost angeben. Einzelne Namen sind durch eine
+ Pipe (|) zu trennen. Bitte beachten Sie, dass IP-Addressen
+ nicht angegeben werden dürfen, sowie die verpflichtend zu verwendenen
+ Anführungszeichen. Q: Tomcat: Wärend des Betriebs kommt es zu org.apache.commons.logging.LogConfigurationException.
+ Wie kann dies verhindert werden? org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException:
+ org.apache.commons.logging.LogConfigurationException A: Dies ist ein Fehler in tomcat in der Version 4.1.27. $CATALINA_HOME\server\lib\tomcat-util.jar muss gegen eine
+ gepatchte Version ausgetauscht werden, da ein BUG in der Originalversion
+ von tomcat 4.1.27. Diese gepatchte Version ist in der MOA-ID Distribution
+ im Verzeichnis $MOA_ID_INST_AUTH\tomcat\tomcat-util-4.1.27-patched\
+ zu finden.
<InfoboxReadResponse>
sent by the
+ * security layer implementation.
+ *
+ *
+ *
+ * @param sessionID
+ * ID of associated authentication session data
+ * @param infoboxReadResponseParameters
+ * The parameters from the response returned from the BKU
+ * including the <InfoboxReadResponse>
<InfoboxReadResponse>
<CreateXMLSignatureRequest>
+ * containg the authentication block, meant to be returned to the security
+ * layer implementation<InfoboxReadResponse>
+ * @return String representation of the
+ * <CreateXMLSignatureRequest>
+ */
+ public String verifyCertificate(String sessionID,
+ X509Certificate certificate) throws AuthenticationException,
+ BuildException, ParseException, ConfigurationException,
+ ValidateException, ServiceException {
+
+ if (isEmpty(sessionID))
+ throw new AuthenticationException("auth.10", new Object[] {
+ REQ_VERIFY_CERTIFICATE, PARAM_SESSIONID });
+
+ // check if person is a Organwalter
+ // if true - don't show bPK in AUTH Block
+ boolean isOW = false;
+// String oid = null;
+// if (oid.equalsIgnoreCase(MISMandate.OID_ORGANWALTER))
+// isOW = true;
+//
+ AuthenticationSession session = getSession(sessionID);
+ AuthConfigurationProvider authConf = AuthConfigurationProvider
+ .getInstance();
+
+ OAAuthParameter oaParam = AuthConfigurationProvider.getInstance()
+ .getOnlineApplicationParameter(session.getPublicOAURLPrefix());
+
+ return getCreateXMLSignatureRequestAuthBlockOrRedirectForOW(session,
+ authConf, oaParam, isOW);
+ }
+
/**
* Processes an Mandate
sent by the MIS.
*
@@ -780,6 +832,70 @@ public class AuthenticationServer implements MOAIDAuthConstants {
return createXMLSignatureRequest;
}
+ /**
+ *
+ * @param session
+ * @param authConf
+ * @param oaParam
+ * @return
+ * @throws ConfigurationException
+ * @throws BuildException
+ * @throws ValidateException
+ */
+ public String getCreateXMLSignatureRequestAuthBlockOrRedirectForOW(
+ AuthenticationSession session, AuthConfigurationProvider authConf,
+ OAAuthParameter oaParam, boolean isOW) throws ConfigurationException,
+ BuildException, ValidateException {
+
+ // check for intermediate processing of the infoboxes
+ if (session.isValidatorInputPending())
+ return "Redirect to Input Processor";
+
+ if (authConf == null)
+ authConf = AuthConfigurationProvider.getInstance();
+ if (oaParam == null)
+ oaParam = AuthConfigurationProvider.getInstance()
+ .getOnlineApplicationParameter(
+ session.getPublicOAURLPrefix());
+
+ // BZ.., calculate bPK for signing to be already present in AuthBlock
+ IdentityLink identityLink = session.getIdentityLink();
+ if (identityLink.getIdentificationType().equals(
+ Constants.URN_PREFIX_BASEID)) {
+ // only compute bPK if online application is a public service and we
+ // have the Stammzahl
+ if (isOW) {
+ // if person is OW, delete identification value (bPK is calculated via MIS)
+ identityLink.setIdentificationValue(null);
+ identityLink.setIdentificationType(null);
+ }
+ else {
+ String bpkBase64 = new BPKBuilder().buildBPK(identityLink
+ .getIdentificationValue(), session.getTarget());
+ identityLink.setIdentificationValue(bpkBase64);
+ }
+ }
+ // ..BZ
+ // }
+
+ // builds the AUTH-block
+ String authBlock = buildAuthenticationBlockForOW(session, oaParam, isOW);
+
+ // session.setAuthBlock(authBlock);
+ // builds the
*
@@ -987,6 +1103,60 @@ public class AuthenticationServer implements MOAIDAuthConstants {
return authBlock;
}
+ /**
+ * Builds an authentication block
<saml:Assertion>
from
+ * given session data.
+ *
+ * @param session
+ * authentication session
+ *
+ * @return <saml:Assertion>
as a String
+ *
+ * @throws BuildException
+ * If an error occurs on serializing an extended SAML attribute
+ * to be appended to the AUTH-Block.
+ */
+ private String buildAuthenticationBlockForOW(AuthenticationSession session,
+ OAAuthParameter oaParam, boolean isOW) throws BuildException {
+ IdentityLink identityLink = session.getIdentityLink();
+ String issuer = identityLink.getName();
+ String gebDat = identityLink.getDateOfBirth();
+ String identificationValue = identityLink.getIdentificationValue();
+ String identificationType = identityLink.getIdentificationType();
+
+ String issueInstant = DateTimeUtils.buildDateTime(Calendar
+ .getInstance(), oaParam.getUseUTC());
+ session.setIssueInstant(issueInstant);
+ String authURL = session.getAuthURL();
+ String target = session.getTarget();
+ String targetFriendlyName = session.getTargetFriendlyName();
+ // Bug #485
+ // (https://egovlabs.gv.at/tracker/index.php?func=detail&aid=485&group_id=6&atid=105)
+ // String oaURL = session.getPublicOAURLPrefix();
+ String oaURL = session.getPublicOAURLPrefix().replaceAll("&", "&");
+ List extendedSAMLAttributes = session.getExtendedSAMLAttributesAUTH();
+ Iterator it = extendedSAMLAttributes.iterator();
+ // delete bPK attribute from extended SAML attributes
+ if (isOW) {
+ ExtendedSAMLAttribute toDelete = null;
+ while (it.hasNext()) {
+ ExtendedSAMLAttribute attr = (ExtendedSAMLAttribute)it.next();
+ if (attr.getName().equalsIgnoreCase("bPK"))
+ toDelete = attr;
+ }
+ if (toDelete != null)
+ extendedSAMLAttributes.remove(toDelete);
+ }
+
+ String authBlock = new AuthenticationBlockAssertionBuilder()
+ .buildAuthBlock(issuer, issueInstant, authURL, target,
+ targetFriendlyName, identificationValue,
+ identificationType, oaURL, gebDat,
+ extendedSAMLAttributes, session);
+
+ return authBlock;
+ }
+
/**
* Verifies the infoboxes (except of the identity link infobox) returned by
* the BKU by calling appropriate validator classes.
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationBlockAssertionBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationBlockAssertionBuilder.java
index 53c1168c5..412f1db81 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationBlockAssertionBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationBlockAssertionBuilder.java
@@ -204,22 +204,25 @@ public class AuthenticationBlockAssertionBuilder extends AuthenticationAssertion
gebeORwbpk = MessageFormat.format(GESCHAEFTS_BEREICH_ATTRIBUTE, new Object[] { target + " (" + sectorName + ")" });
//no business service, adding bPK
+
+ System.out.println("identityLinkValue: " + identityLinkValue);
+ if (identityLinkValue != null) {
+ Element bpkSamlValueElement;
+ try {
+ bpkSamlValueElement = DOMUtils.parseDocument(MessageFormat.format(PR_IDENTIFICATION_ATTRIBUTE, new Object[] { identityLinkValue, Constants.URN_PREFIX_BPK }), false, null, null).getDocumentElement();
+ } catch (Exception e) {
+ Logger.error("Error on building AUTH-Block: " + e.getMessage());
+ throw new BuildException("builder.00", new Object[] { "AUTH-Block", e.toString()});
+ }
+
+ // String s = xmlToString(bpkSamlValueElement);
+ // System.out.println("bpkSamlValueElement: " + s);
+
+ ExtendedSAMLAttribute bpkAttribute =
+ new ExtendedSAMLAttributeImpl("bPK", bpkSamlValueElement, Constants.MOA_NS_URI, ExtendedSAMLAttribute.ADD_TO_AUTHBLOCK_ONLY);
+ extendedSAMLAttributes.add(bpkAttribute);
+ }
- Element bpkSamlValueElement;
- try {
- bpkSamlValueElement = DOMUtils.parseDocument(MessageFormat.format(PR_IDENTIFICATION_ATTRIBUTE, new Object[] { identityLinkValue, Constants.URN_PREFIX_BPK }), false, null, null).getDocumentElement();
- } catch (Exception e) {
- Logger.error("Error on building AUTH-Block: " + e.getMessage());
- throw new BuildException("builder.00", new Object[] { "AUTH-Block", e.toString()});
- }
-
-// String s = xmlToString(bpkSamlValueElement);
-// System.out.println("bpkSamlValueElement: " + s);
-
- ExtendedSAMLAttribute bpkAttribute =
- new ExtendedSAMLAttributeImpl("bPK", bpkSamlValueElement, Constants.MOA_NS_URI, ExtendedSAMLAttribute.ADD_TO_AUTHBLOCK_ONLY);
- extendedSAMLAttributes.add(bpkAttribute);
-
boolean useMandate = session.getUseMandate();
if (useMandate) {
String mandateReferenceValue = Random.nextRandom();
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GetMISSessionIDServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GetMISSessionIDServlet.java
index a1b03fcad..04fbc0588 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GetMISSessionIDServlet.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GetMISSessionIDServlet.java
@@ -171,7 +171,8 @@ public class GetMISSessionIDServlet extends AuthServlet {
Element mandateDoc = DOMUtils.parseDocument(stringMandate, false, null, null).getDocumentElement();
//TODO OW bPK (Offen: was bei saml:NameIdentifier NameQualifier="urn:publicid:gv.at:cdid+bpk"> und
-
-
-
+
-
-
-
-
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
- Zum Herausfinden des Rechnernamens wechselt man unter Windows auf die
- Kommandozeile und kann mittels 'ipconfig /all' den Rechnernamen herausfinden.
- Unix/Linux-Anwender sehen bspw. mittels 'cat' in der Datei /etc/hosts
- nach, der Texteintrag hinter der eigenen IP-Adresse spezifiziert den
- Rechnernamen.
-
-
-
-
- Q: Beim Starten von MOA SPSS tritt folgende Exception auf: java.lang.ClassCastException:
+
+ Dokumentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Zum Herausfinden des Rechnernamens wechselt man unter Windows auf die
+ Kommandozeile und kann mittels 'ipconfig /all' den Rechnernamen herausfinden.
+ Unix/Linux-Anwender sehen bspw. mittels 'cat' in der Datei /etc/hosts
+ nach, der Texteintrag hinter der eigenen IP-Adresse spezifiziert den
+ Rechnernamen.
+
+
+
+Q: Beim Starten von MOA SPSS tritt folgende Exception auf: java.lang.ClassCastException:
iaik.asn1.structures.Name. Was kann der Fehler sein?
-
security.provider.1=sun.security.provider.Sun
security.provider.2=com.sun.rsajca.Provider
-
- durch folgenden Eintrag ergänzt werden:
-
+
+durch folgenden Eintrag ergänzt werden:
+
security.provider.3=iaik.security.provider.IAIK
-
-
-
-
-
-
-
- http.proxyPort=<proxyport>
- http.nonProxyHosts="<exceptionhosts>"
-
-
- : Class org.apache.commons.logging.impl.Jdk14Logger does not implement
- Log
-
-
-
-
-
+
+
-
-
-
-
-
+
+
+
+
+ http.proxyPort=<proxyport>
+ http.nonProxyHosts="<exceptionhosts>"
+
+
+ : Class org.apache.commons.logging.impl.Jdk14Logger does not implement
+ Log
-
-
-
- MOA-ID -
- Übersicht
-
-
-
-- - - |
-
-
- MOA ID-Administration v.1.5
-
-Die Komponenten des Moduls Identifikation (MOA-ID), MOA-ID-AUTH und MOA-ID-PROXY, sind als plattformunabhängige Webapplikationen ausgelegt.
-MOA-ID-AUTH ist die Basiskomponente des Moduls, und MOA-ID-PROXY ist eine optionale Zusatzkomponente.
-Für den Betrieb dieser Webapplikationen wird eine Java Virtual Machine und ein Java Servlet Container vorausgesetzt.
- |
- - |
-
- Übersicht -
-Für den Betrieb von MOA-ID-AUTH sind unterschiedliche Szenarien möglich, die unterschiedliche Möglichkeiten bieten und die Installation unterschiedlicher Software- und Hardware-Komponenten erfordern. Dieser Abschnitt gibt einen kurzen Überblick über die notwendige Basis-Installation und optionale weitere Konfigurationsmöglichkeiten.
-
- |
- - |
-
- Basis-Installation von MOA-ID-AUTH
-
-Die Basis-Installation stellt einerseits die minimalen Anforderungen für den Betrieb von MOA-ID-AUTH dar, andererseits dient sie als Ausgangspunkt für weitere (optionale) Konfigurations-Möglichkeiten.
-
--Folgende Software ist Voraussetzung für die Basis-Installation: - -
*) Für den Online-Vollmachten-Modus müssen zumindest JDK 6 Update 22, JDK 5 Update 26 oder JDK 1.4.2 Update 28 eingesetzt werden. -
-Um möglichen Versionskonflikten aus dem Weg zu gehen sollten stets die neuesten Versionen von MOA-ID als auch von MOA-SP/SS verwendet werden.
+
+
+-In diesem Betriebs-Szenario wird MOA-ID-AUTH in Tomcat deployt. Tomcat fungiert gleichzeitig als HTTP- und HTTPS-Endpunkt für MOA-ID-AUTH. Beide Protokolle werden direkt in Tomcat konfiguriert. - -Die Webapplikation verwendet Log4j als Logging Toolkit. -
- - -
- - -
- - -
- - -
- - - - -
- - -
- - - - + + + Administration ++
+ diff --git a/id/server/doc/moa_id/id-admin_0.htm b/id/server/doc/moa_id/id-admin_0.htm new file mode 100644 index 000000000..e7c0ba886 --- /dev/null +++ b/id/server/doc/moa_id/id-admin_0.htm @@ -0,0 +1,175 @@ + + +
+ + Administration-Überblick ++ Inhalt+
+ 1 Übersicht+ +Die Komponenten des Moduls Identifikation (MOA-ID), MOA-ID-AUTH und MOA-ID-PROXY, sind als plattformunabhängige Webapplikationen ausgelegt. +MOA-ID-AUTH ist die Basiskomponente des Moduls, und MOA-ID-PROXY ist eine optionale Zusatzkomponente. +Für den Betrieb dieser Webapplikationen wird eine Java Virtual Machine und ein Java Servlet Container vorausgesetzt. + +Für den Betrieb von MOA-ID-AUTH sind unterschiedliche Szenarien möglich, die unterschiedliche Möglichkeiten bieten und die Installation unterschiedlicher Software- und Hardware-Komponenten erfordern. Dieser Abschnitt gibt einen kurzen Überblick über die notwendige Basis-Installation und optionale weitere Konfigurationsmöglichkeiten. + +2 Basis-Installation von MOA-ID-AUTH+ +Die Basis-Installation stellt einerseits die minimalen Anforderungen für den Betrieb von MOA-ID-AUTH dar, andererseits dient sie als Ausgangspunkt für weitere (optionale) Konfigurations-Möglichkeiten.
*) Für den Online-Vollmachten-Modus müssen zumindest JDK 6 Update 22, JDK 5 Update 26 oder JDK 1.4.2 Update 28 eingesetzt werden. + + Um möglichen Versionskonflikten aus dem Weg zu gehen sollten stets die neuesten Versionen von MOA-ID als auch von MOA-SP/SS verwendet werden. 3 Basis-Installation von MOA-ID-PROXY (optional)+ +Einer Online-Applikation, für die MOA-ID-AUTH die Authentisierung übernimmt, kann die Komponente MOA-ID-PROXY vorgeschaltet werden. Diese Komponente übernimmt die Anmeldedaten von MOA-ID-AUTH, führt die Anmeldung an der Online Applikation durch und schleust in der Folge Daten an die Online-Applikation und Daten an den Benutzer durch.
+
+Die Basis-Installation von MOA-ID-PROXY geschieht im Wesentlichen analog zur Basis-Installation von MOA-ID-AUTH.
4 Konfiguration mit vorgeschaltetem Webserver (optional)+ +
+Den MOA ID Webapplikationen kann jeweils optional ein Webserver vorgeschaltet sein. Unter Microsoft Windows ist das im Regelfall der Microsoft Internet Information Server (MS IIS), auf Unix-Systemen kommt üblicherweise der Apache Webserver zum Einsatz.
+
+Mittels mod_jk werden die Webservice-Aufrufe, die im vorgeschalteten Webserver eintreffen, an Tomcat weiter geleitet, bzw. die Antwort von Tomcat wieder an den Webserver zurück übermittelt. + 5 Konfiguration mit PostgreSQL (optional)+Das MOA ID Webservice kann eine PostgreSQL Datenbank nutzen, um: +
6 Referenzierte Software+Die Versionsangaben beziehen sich auf die Versionen, mit denen die MOA ID Webapplikationen entwickelt und getestet wurde. Geringfügig andere Software-Versionen stellen üblicherweise kein Problem dar. ++
+(**) passend zur Version des Apache Webservers + + + diff --git a/id/server/doc/moa_id/id-admin_1.htm b/id/server/doc/moa_id/id-admin_1.htm index 08a1acc73..940ef4d2d 100644 --- a/id/server/doc/moa_id/id-admin_1.htm +++ b/id/server/doc/moa_id/id-admin_1.htm @@ -1,383 +1,272 @@ -
-
-
-
-
+
diff --git a/id/server/doc/moa_id/id-admin_2.htm b/id/server/doc/moa_id/id-admin_2.htm
index 8db966279..286e9aee1 100644
--- a/id/server/doc/moa_id/id-admin_2.htm
+++ b/id/server/doc/moa_id/id-admin_2.htm
@@ -2,168 +2,74 @@
- Module für Online-Applikationen
-
-
-
-
-
-Projekt moa
-
-+ - -
- - - -
- + + In diesem Fall gibt der mitgeloggte Stacktrace Auskunft
+ über die Art des Fehlers. Der Aufrufer der MOA ID
+ Webapplikation bekommt einen Fehlercode sowie eine kurze
+ Beschreibung des Fehlers als Antwort zurück.
-
-
-
-
-
- Module für Online-Applikationen
-
-
-
-
-
-Projekt moa
-
-- - -
TrustedBKUs TrustedBKUs TrustedTemplateURLs TrustedTemplateURLs |
-
- -
-
-- |
-
- Konfiguration der Online-Applikation -
-Die Konfiguration der OA beschreibt die Art und Weise, wie die Proxykomponente die Anmeldung an der Online-Applikation
-durchführt.
-
-
-
--Der Name der Konfigurationsdatei wird in der Konfiguration von MOA-ID als Wert des Attributs -configFileURL des Elements MOA-IDConfiguration/OnlineApplication/ProxyComponent hinterlegt. - Ist dieses Attribut nicht gesetzt, dann wird die Datei von http://<realURLPrefix>/MOAConfig.xml geladen, -wobei <realURLPrefix> dem Konfigurationswert OnlineApplication/ProxyComponent/ConnectionParameter/@URL entspricht. - -Die Konfigurationsdatei ist eine XML-Datei, die dem Schema -MOA-ID-Configuration-1.5.1.xsd mit dem Wurzelelement -Configuration entspricht. -
-LoginType 2 Konfiguration der Online-Applikation+Die Konfiguration der OA beschreibt die Art und Weise, wie die Proxykomponente die Anmeldung an der Online-Applikation +durchführt. +Der Name der Konfigurationsdatei wird in der Konfiguration von MOA-ID als Wert des Attributs configFileURL des Elements MOA-IDConfiguration/OnlineApplication/ProxyComponent hinterlegt. Die Konfigurationsdatei ist eine XML-Datei, die dem Schema MOA-ID-Configuration-1.5.1.xsd mit dem Wurzelelement Configuration entspricht. - - - -
-ParamAuth
-ParamAuth/Parameter LoginType ParamAuth ParamAuth/Parameter Das Attribut Name beschreibt den Namen des Parameters und ist ein frei zu wählender String. + Das Attribut Value beschreibt den Inhalt des Parameters und kann einen der durch MOAAuthDataType beschriebenen + Werte annehmen. Gültige Werte von MOAAuthDataType sind:
+
+ Die <login-url> ergibt sich aus dem Parameter OA des Aufrufs von MOA-ID-AUTH,
+ zusammen mit der Konfiguration von OnlineApplication/@publicURLPrefix und von OnlineApplication/ProxyComponent/ConnectionParameter/@URL. BasicAuth Das Element UserID gibt die UserId des zu authentisierenden Benutzers an und kann einen der durch MOAAuthDataType beschriebenen Werte annehmen. +Das Element Password gibt das Passwort des zu authentisierenden Benutzers an und kann einen der durch MOAAuthDataType beschriebenen Werte annehmen. + HeaderAuth HeaderAuth/Header Das Attribut Name beschreibt den Namen des Header und ist ein frei zu wählender String. + Das Attribut Value beschreibt den Inhalt des Header und kann einen der durch MOAAuthDataType beschriebenen Werte annehmen. + Die Header werden folgendermaßen in den Request an die Online-Applikation eingefügt:
-
-
-Die <login-url> ergibt sich aus dem Parameter OA des Aufrufs von MOA-ID-AUTH,
-zusammen mit der Konfiguration von OnlineApplication/@publicURLPrefix und von OnlineApplication/ProxyComponent/ConnectionParameter/@URL.
-
-BasicAuth
-HeaderAuth
-HeaderAuth/Header -Der Wert resolvedValue wird in der Proxykomponente je nach Wert des Platzhalters eingesetzt. + + ++<h1.name>:<h1.resolvedValue> <h2.name>:<h2.resolvedValue> ... - Der Wert resolvedValue wird in der Proxykomponente je nach Wert des Platzhalters eingesetzt. Etwaige Header aus dem ursprünglichen Request an die Proxykomponente, die denselben Namen haben, müssen überschrieben werden. - - - |
- -
-
-- |
-
- Konfiguration von MOA-SP -
-
-
-
-
- MOA-ID überprüft die Signaturen der Personenbindung und
- des AUTH-Blocks mit dem VerifyXMLSignatureRequest von
- MOA-SP. Dazu muss MOA-SP wie unten beschreiben konfiguriert werden.
-
-TrustProfile
-Certstore
-Hinweis: Mit dem Wechsel auf Version 1.3 verwendet MOA SP/SS ein neues Format für die XML-Konfigurationsdatei.
-Für die Konvertierung einer älteren Konfigurationsdatei auf das neue Format steht Ihnen ein Tool
-zur Verfügung. Details dazu finden sie in der der Distribution von MOA-SP/SS beiligenden
-Dokumentation im Kapitel 'Konfiguration', Abschnitt 1.2.1.
-- - |
- -
-
-- |
-
- Änderung der Konfiguration während des Betriebs -
-Der Inhalt dieser Konfiguration, bzw. jene Teile, auf die indirekt verwiesen wird, können während des laufenden
-Betriebes des MOA-Servers geändert werden. Der Server selbst wird durch den Aufruf einer URL
-(im Applikationskontext von MOA ID) dazu veranlasst, die geänderte Konfiguration neu einzulesen.
-Im Falle einer fehlerhaften neuen Konfiguration wird die ursprüngliche Konfiguration beibehalten.
-
-
-
- |
-
- -
-
-- |
-
-
- Ändern der Default Errorpages -
- Die Default-Errorpages geben bei MOA-ID-AUTH und MOA-ID-PROXY immer die entsprechende Fehlermeldung aus, so eine vorhanden ist. Möchte man dies verhindern bzw. abhängig vom eingestellten Log-Level machen so können diese Errorpages ersetzt werden. Entsprechende Errorpages sind unter $MOA_ID_INST_AUTH/errorpages bzw. $MOA_ID_INST_PROXY/errorpages zu finden. Diese können die Default-Errorpages unter dem jeweiligen webapps-Kontext von MOA-ID-AUTH (errorpage-auth.jsp) bzw. MOA-ID-PROXY (errorpage-proxy.jsp )ersetzen. -Die in $MOA_ID_INST_AUTH/errorpages bzw. $MOA_ID_INST_PROXY/errorpages enthaltenen Errorpages bedeuten dabei folgendes: -
|
+
- -
-
-- |
-
-
- Tomcat Security Manager -
- Apache Tomcat bietet die Möglichkeit den Server unter einem Security Manager zu betreiben. Damit ist es möglich den lokalen Dateizugriff zu beschränken. Mit Hilfe der Datei "catalina.policy" können so Zugriffe auf lokale Dateien und Verzeichnisse festgelegt werden. Eine beispielhafte catalina.policy Datei finden Sie im Verzeichnis $MOA_ID_INST_AUTH/tomcat bzw. $MOA_ID_INST_PROXY/tomcat. Diese Datei wurde unter Apache Tomcat 4.1.31, 5.0.28 und 5.5.27 getestet. -Mehr Informationen zum Security Manager entnehmen Sie bitte der entsprechenden Apache Tomcat Dokumentation. - |
-
-
- - © 2012
- |
Die Default-Errorpages geben bei MOA-ID-AUTH und MOA-ID-PROXY immer die entsprechende Fehlermeldung aus, so eine vorhanden ist. Möchte man dies verhindern bzw. abhängig vom eingestellten Log-Level machen so können diese Errorpages ersetzt werden. Entsprechende Errorpages sind unter $MOA_ID_INST_AUTH/errorpages bzw. $MOA_ID_INST_PROXY/errorpages zu finden. Diese können die Default-Errorpages unter dem jeweiligen webapps-Kontext von MOA-ID-AUTH (errorpage-auth.jsp) bzw. MOA-ID-PROXY (errorpage-proxy.jsp )ersetzen.
+Die in $MOA_ID_INST_AUTH/errorpages bzw. $MOA_ID_INST_PROXY/errorpages enthaltenen Errorpages bedeuten dabei folgendes:
+Apache Tomcat bietet die Möglichkeit den Server unter einem Security Manager zu betreiben. Damit ist es möglich den lokalen Dateizugriff zu beschränken. Mit Hilfe der Datei "catalina.policy" können so Zugriffe auf lokale Dateien und Verzeichnisse festgelegt werden. Eine beispielhafte catalina.policy Datei finden Sie im Verzeichnis $MOA_ID_INST_AUTH/tomcat bzw. $MOA_ID_INST_PROXY/tomcat. Diese Datei wurde unter Apache Tomcat 4.1.31, 5.0.28 und 5.5.27 getestet.
+Mehr Informationen zum Security Manager entnehmen Sie bitte der entsprechenden Apache Tomcat Dokumentation.
-
- MOA-ID - - - -
- Optionale
-Komponenten - - - - |
-
-
-
- Konfiguration der optionalen Komponenten -Konfiguration des Microsoft Internet Information Server (optional) -
-Vor MOA-ID-AUTH oder MOA-ID-PROXY kann optional ein MS IIS vorgeschaltet sein. In diesem Fall übernimmt der MS IIS die HTTP bzw. HTTPS-Kommunikation mit dem Aufrufer des Webservices. Die Kommunikation zwischen MS IIS und dem in Tomcat deployten Webservice wird durch Jakarta mod_jk durchgeführt.
--Konfiguration von Jakarta mod_jk im MS IIS -Für die Kommunikation des MS IIS mit dem im Tomcat deployten Webservice wird das ISAPI-Modul von Jakarta mod_jk im MS IIS installiert und konfiguriert. Eine detaillierte Installations- und Konfigurationsanleitung gibt das mod_jk IIS HowTo. Beispiele für workers.properties und uriworkermap.properties Dateien liegen im ausgelieferten moa-id-auth-x.y.zip bzw. moa-id-proxy-x.y.zip, Verzeichnis tomcat bei. - -Konfiguration von Tomcat -Damit Tomcat die Aufrufe, die von MS IIS mittels Jakarta mod_jk weiterleitet, entgegennehmen kann, muss in $CATALINA_HOME/conf/server.xml der AJP 1.3 Connector aktiviert werden. Im Gegenzug können die Connectoren für HTTP und HTTPS deaktiviert werden. Das geschieht am einfachsten durch ein- bzw. auskommentieren der entsprechenden Connector Konfigurations-Elemente in dieser Datei. - -
-
-Konfiguration von SSL Konfiguration des zu verwendenden DATA-URL
- Präfix |
- -
-
-- |
-
- Konfiguration des Apache Webservers (optional) -
-Vor MOA-ID-AUTH oder MOA-ID-PROXY kann ein Apache Webserver vorgeschaltet sein. Das Prinzip funktioniert wie bei MS IIS, auch hier wird Jakarta mod_jk für die Kommunikation zwischen Webserver und Tomcat eingesetzt.
-
--Konfiguration von Jakarta mod_jk im Apache Webserver - Um MOA-ID-AUTH oder MOA-ID-PROXY hinter einem Apache Webserver zu betreiben, ist die Konfiguration des Apache-Moduls mod_jk erforderlich. Eine detaillierte Installations- und Konfigurationsanleitung gibt das mod_jk Apache HowTo. Ein Beispiel für eine workers.properties Datei liegt im Verzeichnis $MOA_SPSS_INST/conf/moa bei. -Um MOA-ID-AUTH oder MOA-ID-PROXY dem Apache Webserver bekannt zu machen, muss folgender Eintrag in die Apache Konfigurationsdatei gemacht werden: + + +
+ + Optionale Komponenten ++ Inhalt+
+ 1 Konfiguration des Microsoft Internet Information Server+Vor MOA-ID-AUTH oder MOA-ID-PROXY kann optional ein MS IIS vorgeschaltet sein. In diesem Fall übernimmt der MS IIS die HTTP bzw. HTTPS-Kommunikation mit dem Aufrufer des Webservices. Die Kommunikation zwischen MS IIS und dem in Tomcat deployten Webservice wird durch Jakarta mod_jk durchgeführt.+ + Konfiguration von Jakarta mod_jk im MS IIS + Für die Kommunikation des MS IIS mit dem im Tomcat deployten Webservice wird das ISAPI-Modul von Jakarta mod_jk im MS IIS installiert und konfiguriert. Eine detaillierte Installations- und Konfigurationsanleitung gibt das mod_jk IIS HowTo. Beispiele für workers.properties und uriworkermap.properties Dateien liegen im ausgelieferten moa-id-auth-x.y.zip bzw. moa-id-proxy-x.y.zip, Verzeichnis tomcat bei. + + Konfiguration von Tomcat + Damit Tomcat die Aufrufe, die von MS IIS mittels Jakarta mod_jk weiterleitet, entgegennehmen kann, muss in $CATALINA_HOME/conf/server.xml der AJP 1.3 Connector aktiviert werden. Im Gegenzug können die Connectoren für HTTP und HTTPS deaktiviert werden. Das geschieht am einfachsten durch ein- bzw. auskommentieren der entsprechenden Connector Konfigurations-Elemente in dieser Datei. + + Konfiguration von SSL Konfiguration des zu verwendenden DATA-URL
+ Präfix 2 Konfiguration des Apache Webservers+Vor MOA-ID-AUTH oder MOA-ID-PROXY kann ein Apache Webserver vorgeschaltet sein. Das Prinzip funktioniert wie bei MS IIS, auch hier wird Jakarta mod_jk für die Kommunikation zwischen Webserver und Tomcat eingesetzt. JkMount /moa-id-auth/* moaworker@@ -134,14 +69,13 @@ oder für die Proxy-Komponente JkMount /* moaworker- + Konfiguration von Tomcat -Die Konfiguration von Tomcat ist analog wie im Abschnitt über den MS IIS durchzuführen. - - +Die Konfiguration von Tomcat ist analog wie im Abschnitt über den MS IIS durchzuführen. + Konfiguration von SSL mit mod_SSL -Apache kann in Verbindung mit mod_SSL als SSL-Endpunkt für das MOA-ID-AUTH Webservice fungieren. In diesem Fall entfällt die SSL-Konfiguration in Tomcat, da Apache und Tomcat auch im Fall von SSL Daten via mod_jk austauschen. Eine detaillierte Installations- und Konfigurationsanleitung von mod_SSL gibt die Online-Dokumentation. - +Apache kann in Verbindung mit mod_SSL als SSL-Endpunkt für das MOA-ID-AUTH Webservice fungieren. In diesem Fall entfällt die SSL-Konfiguration in Tomcat, da Apache und Tomcat auch im Fall von SSL Daten via mod_jk austauschen. Eine detaillierte Installations- und Konfigurationsanleitung von mod_SSL gibt die Online-Dokumentation. + Bei der Verwendung von Client-Authentisierung muss darauf geachtet werden, dass mod_ssl die HTTP-Header mit den Informationen über das Client-Zertifikat exportiert. Dies wird durch Angabe der Option SSLOptions +ExportCertData +StdEnvVars @@ -153,52 +87,22 @@ Weiters muss Jakarta mod_jk angewiesen werden, die SSL Schlüssellänge +ForwardURICompat -ForwardDirectories- Konfiguration des zu verwendenden DATA-URL Präfix -siehe gleichnamige Überschrift - in Abschnitt "Konfiguration des Microsoft Internet Information - Server (optional)" - |
- - |
-
- Konfiguration von PostgreSQL -
-MOA-ID-AUTH bzw. MOA-ID-PROXY kann PostgreSQL zum Abspeichern von Log-Meldungen verwenden. Hierfür wird eine installierte und konfigurierte Datenbank vorausgesetzt. Eine detaillierte Übersicht über die Installation und Konfiguration von PostgreSQL gibt die Online-Dokumentation.
-
--Logging -Für das Logging in eine PostgreSQL Datenbank mittels Jakarta Log4j muss zunächst eine Tabelle für die Log-Meldungen angelegt werden. Dies kann mit folgendem SQL-Statement erreicht werden: + Konfiguration des zu verwendenden DATA-URL Präfix +siehe gleichnamige Überschrift in Abschnitt "Konfiguration des Microsoft Internet Information + Server (optional)" +3 Konfiguration von PostgreSQL+MOA-ID-AUTH bzw. MOA-ID-PROXY kann PostgreSQL zum Abspeichern von Log-Meldungen verwenden. Hierfür wird eine installierte und konfigurierte Datenbank vorausgesetzt. Eine detaillierte Übersicht über die Installation und Konfiguration von PostgreSQL gibt die Online-Dokumentation. create table spss_log (log_time timestamp, log_level varchar(5), log_msg varchar(256));-Um das Logging in die Datenbank Log4j bekannt zu machen, muss die Log4j-Konfiguration adaptiert werden. Die Datei $MOA_SPSS_INST/conf/moa/log4.properties enthält bereits eine beispielhafte Jakarta Log4j-Konfiguration für das Logging in eine PostgreSQL Datenbank, die standardmäßig ausgeschaltet ist. Hinweis: Bei Tests hat sich das Logging in eine Datenbank mit Jakarta Log4j als Performance-Engpaß herausgestellt. Es wird deshalb empfohlen, auf dieses Feature zu verzichten. - - |
- - © 2012
- |
Um das Logging in die Datenbank Log4j bekannt zu machen, muss die Log4j-Konfiguration adaptiert werden. Die Datei $MOA_SPSS_INST/conf/moa/log4.properties enthält bereits eine beispielhafte Jakarta Log4j-Konfiguration für das Logging in eine PostgreSQL Datenbank, die standardmäßig ausgeschaltet ist. Hinweis: Bei Tests hat sich das Logging in eine Datenbank mit Jakarta Log4j als Performance-Engpaß herausgestellt. Es wird deshalb empfohlen, auf dieses Feature zu verzichten.