diff options
Diffstat (limited to 'id')
87 files changed, 2569 insertions, 2214 deletions
diff --git a/id/ConfigWebTool/pom.xml b/id/ConfigWebTool/pom.xml index 18bd1306b..961b58c8b 100644 --- a/id/ConfigWebTool/pom.xml +++ b/id/ConfigWebTool/pom.xml @@ -150,12 +150,12 @@ <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> - <version>2.3.16.3</version> + <version>2.3.20</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-json-plugin</artifactId> - <version>2.3.16.3</version> + <version>2.3.20</version> </dependency> <dependency> diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/MetaDataVerificationFilter.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/MetaDataVerificationFilter.java index 332adaa80..7bf2cf93f 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/MetaDataVerificationFilter.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/MetaDataVerificationFilter.java @@ -46,7 +46,6 @@ public class MetaDataVerificationFilter implements MetadataFilter { public void doFilter(XMLObject metadata) throws FilterException { if (metadata instanceof EntitiesDescriptor) { EntitiesDescriptor entitiesDescriptor = (EntitiesDescriptor) metadata; - if(entitiesDescriptor.getSignature() == null) { throw new FilterException("Root element of metadata file has to be signed", null); } @@ -57,7 +56,7 @@ public class MetaDataVerificationFilter implements MetadataFilter { throw new FilterException("Invalid Metadata file Root element is no EntitiesDescriptor", null); } - } if (metadata instanceof EntityDescriptor) { + } if (metadata instanceof EntityDescriptor) { try { EntityDescriptor entity = (EntityDescriptor) metadata; if (entity.getSignature() != null) diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java index 957479b29..e6000319e 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java @@ -437,23 +437,23 @@ public class ConfigurationProvider { return parseVersionFromManifest(); } - public String getCertStoreDirectory() throws CertificateException { + public String getCertStoreDirectory() throws ConfigurationException { String dir = props.getProperty("general.ssl.certstore"); if (MiscUtil.isNotEmpty(dir)) return FileUtils.makeAbsoluteURL(dir, configRootDir); else - throw new CertificateException("No SSLCertStore configured use default JAVA TrustStore."); + throw new ConfigurationException("No SSLCertStore configured use default JAVA TrustStore."); } - public String getTrustStoreDirectory() throws CertificateException { + public String getTrustStoreDirectory() throws ConfigurationException { String dir = props.getProperty("general.ssl.truststore"); if (MiscUtil.isNotEmpty(dir)) return FileUtils.makeAbsoluteURL(dir, configRootDir); else - throw new CertificateException("No SSLTrustStore configured use default JAVA TrustStore."); + throw new ConfigurationException("No SSLTrustStore configured use default JAVA TrustStore."); } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAAuthenticationData.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAAuthenticationData.java index 0e65b7dca..a9c914f74 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAAuthenticationData.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAAuthenticationData.java @@ -30,6 +30,7 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import at.gv.egovernment.moa.id.commons.db.ConfigurationDBRead; +import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils; import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentOA; import at.gv.egovernment.moa.id.commons.db.dao.config.BKUURLS; import at.gv.egovernment.moa.id.commons.db.dao.config.DefaultBKUs; @@ -40,6 +41,7 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication; import at.gv.egovernment.moa.id.commons.db.dao.config.TemplateType; import at.gv.egovernment.moa.id.commons.db.dao.config.TemplatesType; import at.gv.egovernment.moa.id.commons.db.dao.config.TestCredentials; +import at.gv.egovernment.moa.id.commons.db.dao.config.TestCredentialsCredentialOIDItem; import at.gv.egovernment.moa.id.commons.db.dao.config.TransformsInfoType; import at.gv.egovernment.moa.id.configuration.Constants; import at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser; @@ -207,8 +209,9 @@ public class OAAuthenticationData implements IOnlineApplicationData { } if (oaauth.getTestCredentials() != null) { - enableTestCredentials = oaauth.getTestCredentials().isEnableTestCredentials(); - testCredentialOIDs = oaauth.getTestCredentials().getCredentialOID(); + enableTestCredentials = oaauth.getTestCredentials().isEnableTestCredentials(); + testCredentialOIDs = new ArrayList<String>(); + testCredentialOIDs.addAll(oaauth.getTestCredentials().getCredentialOID()); } @@ -315,12 +318,20 @@ public class OAAuthenticationData implements IOnlineApplicationData { if (enableTestCredentials) { TestCredentials testing = authoa.getTestCredentials(); - if (testing == null) - testing = new TestCredentials(); - - testing.setEnableTestCredentials(enableTestCredentials); + if (testing != null) + ConfigurationDBUtils.delete(testing); + + testing = new TestCredentials(); + authoa.setTestCredentials(testing); + testing.setEnableTestCredentials(enableTestCredentials); testing.setCredentialOID(testCredentialOIDs); + } else { + TestCredentials testing = authoa.getTestCredentials(); + if (testing != null) { + testing.setEnableTestCredentials(false); + } + } return null; @@ -576,12 +587,14 @@ public class OAAuthenticationData implements IOnlineApplicationData { */ public String getTestCredentialOIDs() { String value = null; - for (String el : testCredentialOIDs) { - if (value == null) - value = el; - else - value += "," + el; + if (testCredentialOIDs != null) { + for (String el : testCredentialOIDs) { + if (value == null) + value = el; + else + value += "," + el; + } } return value; @@ -595,12 +608,13 @@ public class OAAuthenticationData implements IOnlineApplicationData { * @param testCredentialOIDs the testCredentialOIDs to set */ public void setTestCredentialOIDs(String testCredentialOIDs) { - String[] oidList = testCredentialOIDs.split(","); + if (MiscUtil.isNotEmpty(testCredentialOIDs)) { + String[] oidList = testCredentialOIDs.split(","); - this.testCredentialOIDs = new ArrayList<String>(); - for (int i=0; i<oidList.length; i++) - this.testCredentialOIDs.add(oidList[i].trim()); + this.testCredentialOIDs = new ArrayList<String>(); + for (int i=0; i<oidList.length; i++) + this.testCredentialOIDs.add(oidList[i].trim()); + } } - - + } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OATargetConfiguration.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OATargetConfiguration.java index 150cd959e..bb7bac4f8 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OATargetConfiguration.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OATargetConfiguration.java @@ -82,7 +82,7 @@ public class OATargetConfiguration implements IOnlineApplicationData { */ @Override public List<String> parse(OnlineApplication dbOA, - AuthenticatedUser authUser, HttpServletRequest request) { + AuthenticatedUser authUser, HttpServletRequest request) { String target_full = dbOA.getTarget(); if (MiscUtil.isNotEmpty(target_full)) { if (TargetValidator.isValidTarget(target_full)) { diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java index 150483dd8..e5ee5ac09 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java @@ -60,10 +60,12 @@ public class FormDataHelper { for (OnlineApplication dboa : dbOAs) { - if ( !((dboa.isIsInterfederationIDP() != null && dboa.isIsInterfederationIDP()) || + if ( !((dboa.isIsInterfederationIDP() != null && dboa.isIsInterfederationIDP()) || + (dboa.isIsInterfederationGateway() != null && dboa.isIsInterfederationGateway()) || (dboa.getAuthComponentOA().getOASTORK() != null && dboa.getAuthComponentOA().getOASTORK().isVidpEnabled() != null - && dboa.getAuthComponentOA().getOASTORK().isVidpEnabled()))) { + && dboa.getAuthComponentOA().getOASTORK().isVidpEnabled()) || + (dboa.isIsInterfederationGateway() != null && dboa.isIsInterfederationGateway() ))) { formOAs.add(addOAFormListElement(dboa, ServiceType.OA)); } } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java index 5a9787069..26d97484b 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java @@ -291,8 +291,17 @@ public class BasicOAAction extends BasicAction { } else { - if (oaid == -1) { - onlineapplication = ConfigurationDBRead.getOnlineApplication(oaidentifier); + if (oaid == -1) { + List<OnlineApplication> oaList = ConfigurationDBRead.getAllOnlineApplications(); + for (OnlineApplication el : oaList) { + if (el.getPublicURLPrefix().startsWith(oaidentifier) ) + onlineapplication = el; + + } + if (onlineapplication == null) { + onlineapplication = ConfigurationDBRead.getOnlineApplication(oaidentifier); + + } setNewOA(true); if (onlineapplication != null) { log.info("The OAIdentifier is not unique"); @@ -306,7 +315,17 @@ public class BasicOAAction extends BasicAction { onlineapplication = ConfigurationDBRead.getOnlineApplication(oaid); if (!oaidentifier.equals(onlineapplication.getPublicURLPrefix())) { - if (ConfigurationDBRead.getOnlineApplication(oaidentifier) != null) { + OnlineApplication dbOA = null; + List<OnlineApplication> oaList = ConfigurationDBRead.getAllOnlineApplications(); + for (OnlineApplication el : oaList) { + if (el.getPublicURLPrefix().startsWith(oaidentifier) ) + dbOA = el; + + } + if (dbOA == null) + dbOA = ConfigurationDBRead.getOnlineApplication(oaidentifier); + + if ( (dbOA != null && !dbOA.getHjid().equals(oaid))) { log.info("The OAIdentifier is not unique"); throw new BasicOAActionException( LanguageHelper.getErrorString("validation.general.oaidentifier.notunique", request), diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java index 31c29aef0..4236c0d13 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java @@ -241,6 +241,9 @@ public class EditGeneralConfigAction extends BasicAction { } MOAIDConfiguration dbconfig = ConfigurationDBRead.getMOAIDConfiguration(); + if (dbconfig == null) + dbconfig = new MOAIDConfiguration(); + AuthComponentGeneral dbauth = dbconfig.getAuthComponentGeneral(); if (dbauth == null) { diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/ListOAsAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/ListOAsAction.java index 7f7f083c9..335dbc91e 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/ListOAsAction.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/ListOAsAction.java @@ -133,7 +133,7 @@ public class ListOAsAction extends BasicAction { } else { if (ValidationHelper.containsPotentialCSSCharacter(friendlyname, false)) { log.warn("SearchOA textfield contains potential XSS characters"); - addActionError(LanguageHelper.getErrorString("validation.general.oafriendlyname", + addActionError(LanguageHelper.getErrorString("validation.general.oafriendlyname.valid", new Object[] {ValidationHelper.getPotentialCSSCharacter(false)}, request)); return Constants.STRUTS_SUCCESS; } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAAuthenticationDataValidation.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAAuthenticationDataValidation.java index fd40bd447..fd4226c5b 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAAuthenticationDataValidation.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAAuthenticationDataValidation.java @@ -147,12 +147,14 @@ public class OAAuthenticationDataValidation { } } - if (form.isEnableTestCredentials()) { + if (form.isEnableTestCredentials() + && form.getTestCredialOIDList() != null && !form.getTestCredialOIDList().isEmpty()) { for (String el : form.getTestCredialOIDList()) { - if (!el.startsWith(MOAIDAuthConstants.TESTCREDENTIALROOTOID)) + if (!el.startsWith(MOAIDAuthConstants.TESTCREDENTIALROOTOID)) { log.warn("Test credential OID does not start with test credential root OID"); errors.add(LanguageHelper.getErrorString("validation.general.testcredentials.oid.valid", new Object[] {el}, request )); + } } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAPVP2ConfigValidation.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAPVP2ConfigValidation.java index 40e243d0b..8e1dd6e64 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAPVP2ConfigValidation.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAPVP2ConfigValidation.java @@ -36,8 +36,10 @@ import javax.servlet.http.HttpServletRequest; import org.apache.commons.httpclient.MOAHttpClient; import org.apache.log4j.Logger; import org.opensaml.Configuration; +import org.opensaml.common.xml.SAMLSchemaBuilder; import org.opensaml.saml2.metadata.provider.HTTPMetadataProvider; import org.opensaml.saml2.metadata.provider.MetadataFilter; +import org.opensaml.saml2.metadata.provider.MetadataFilterChain; import org.opensaml.saml2.metadata.provider.MetadataProviderException; import org.opensaml.xml.io.Marshaller; import org.opensaml.xml.io.MarshallerFactory; @@ -58,6 +60,7 @@ import at.gv.egovernment.moa.id.configuration.config.ConfigurationProvider; import at.gv.egovernment.moa.id.configuration.data.oa.OAPVP2Config; import at.gv.egovernment.moa.id.configuration.exception.ConfigurationException; import at.gv.egovernment.moa.id.configuration.helper.LanguageHelper; +import at.gv.egovernment.moa.id.protocols.pvp2x.verification.metadata.SchemaValidationFilter; import at.gv.egovernment.moa.util.MiscUtil; public class OAPVP2ConfigValidation { @@ -126,17 +129,29 @@ public class OAPVP2ConfigValidation { } catch (ConfigurationException e) { log.info("No MOA specific SSL-TrustStore configured. Use default Java TrustStore.", e); - } + } + + List<MetadataFilter> filterList = new ArrayList<MetadataFilter>(); + filterList.add(new MetaDataVerificationFilter(credential)); + filterList.add(new SchemaValidationFilter()); + MetadataFilterChain filter = new MetadataFilterChain(); + filter.setFilters(filterList); httpProvider = new HTTPMetadataProvider(timer, httpClient, form.getMetaDataURL()); httpProvider.setParserPool(new BasicParserPool()); httpProvider.setRequireValidMetadata(true); - httpProvider.setMetadataFilter(new MetaDataVerificationFilter(credential)); + httpProvider.setMetadataFilter(filter); httpProvider.setMinRefreshDelay(1000*60*15); //15 minutes httpProvider.setMaxRefreshDelay(1000*60*60*24); //24 hours + + httpProvider.setRequireValidMetadata(true); + httpProvider.initialize(); + + + if (httpProvider.getMetadata() == null) { log.info("Metadata could be received but validation FAILED."); errors.add(LanguageHelper.getErrorString("validation.pvp2.metadata.validation", request)); @@ -157,6 +172,8 @@ public class OAPVP2ConfigValidation { } catch (MetadataProviderException e) { + + //TODO: check exception handling if (e.getCause() != null && e.getCause().getCause() instanceof SSLHandshakeException) { log.info("SSL Server certificate not trusted.", e); errors.add(LanguageHelper.getErrorString("validation.pvp2.metadata.ssl", request)); diff --git a/id/server/auth/src/main/webapp/common/MOA.css b/id/server/auth/src/main/webapp/common/MOA.css deleted file mode 100644 index b7a2b9280..000000000 --- a/id/server/auth/src/main/webapp/common/MOA.css +++ /dev/null @@ -1,617 +0,0 @@ -body -{ - font-family: "Times New Roman", Times, serif; - font-size: medium; - font-weight: normal; - margin-left: 2.5em; - margin-right: 2.5em; - background-color: white; - text: #000000; - link: #990000; - vlink: #666666; - alink: #cc9966; -} - - - -p -{ - margin-top: 0pt; - margin-bottom: 0.5em; - text-align: justify -} - -pre -{ - font-family: "Courier New", monospace; - font-size: 90%; - background-color: #cccccc; - color: #000000; - margin-left:1.5%; - margin-right:1.5%; - margin-top: 1em; - margin-bottom: 1em; - border: #008000 none; -} - -hr -{ - color: #000080; - background-color: #000080; - margin-top: 0.5em; - margin-bottom: 0.5em; -} - -table.fixedWidth -{ - width: 97%; - margin-left:1.5%; - margin-right:1.5%; - margin-top: 1em; - margin-bottom: 1em; -} - - -table.varWidth -{ - margin-left:1.5%; - margin-top: 1em; - margin-bottom: 1em; -} - -th -{ - text-align: left; -} - -h1 -{ - color: #000000; - text-align: left; - font-size: 167%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal; - background-color:#999; -} - -h2 -{ - color: #000000; - font-size: 150%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal; - background-color:#999; -} - -h3 -{ - color: #000000; - font-size: 133%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal; - background-color:#999; -} - -h4 -{ - color: #000000; - font-size: 116%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal; - background-color:#999; -} - -h5 -{ - color: #000000; - font-size: 100%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal; - background-color:#999; -} - -h6 -{ - color: #000000; - font-size: 83%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal; - background-color:#999; -} - -code -{ - font-family: "Courier New", Courier, monospace; - font-size: 90%; - color: #000000 -} - -dd -{ - margin-top: 0.8em; - margin-bottom: 0.8em; - text-align: justify - -} - -dt -{ - margin-top: 0.8em; - font-family: Arial, Helvetica, sans-serif; - color: #000080 -} - -ol -{ - margin-top: 0.5em; - margin-bottom: 0.5em -} - -ol.alpha -{ - list-style-type: lower-alpha -} - -li -{ - margin-top: 0.25em; - margin-bottom: 0.25em; - text-align: justify -} - -a:hover -{ - color: #990000 -} - - -.title -{ - text-align: left; - font-size: 200%; - color: #000000; - font-family: Arial, Helvetica, sans-serif; - margin-top: 0.4em; - margin-bottom: 0.4em; - background-color:#999; -} - -.subtitle -{ - text-align: left; - font-size: 133%; - color: #000000; - font-family: Arial, Helvetica, sans-serif; - margin-top: 0.4em; - margin-bottom: 0.4em -} - -.glossaryTerm -{ - font-style: italic; - color: #006699 -} - -.example -{ - font-family: "Courier New", monospace; - background-color: #CCFFFF; - color: #000000; - margin: 0pt 0pt; - border: #008000 none -} - -.schema -{ - font-family: "Courier New", monospace; - background-color: #FFFFCC; - color: #000000; - margin: 0pt 0pt; - border: #008000 none -} - -.documentinfo -{ - font-family: Arial, Helvetica, sans-serif; - font-size: 100%; -} - -.ol-contents -{ - font-size: 100%; - margin-top: 0.0em; - margin-bottom: 0.0em; -} - -.li-contents -{ - font-size: 100%; - margin-top: 0.0em; - margin-bottom: 0.0em; -} - -.logoTitle -{ - text-align: center; - font-size: 200%; - color: #000080; - font-family: Arial, Helvetica, sans-serif; -} - -.logoTable -{ - margin-bottom: 0px; - margin-left: 0px -} - -.superscript -{ - vertical-align: super; - font-size: 66%; -} - -.term -{ - font-style: italic; -} - -.comment -{ - color: #000000; - background: #ffff00; - font-style: italic -} - -.addedErrata12 -{ - color: #FF0000; - background-color: #FFEEEE; - text-decoration: underline -} - -.deletedErrata12 -{ - color: #999999; - background-color: #EEEEEE; - text-decoration: line-through -} - -.added12 -{ - color: #FF0000; - text-decoration: underline -; background-color: #F8F0FF -} - -.deleted12 -{ - color: #999999; - text-decoration: line-through -; background-color: #f8f0ff -} - -.rfc2119Keyword -{ - font-variant: small-caps; - font-style: normal; -} - -.remark { font-style: italic} - -li.faq -{ - margin-top: 1.5em; - margin-bottom: 1.5em; -} - -.faq-question -{ - color: #000080; - font-size: 100%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal; - margin-bottom: 0.4em; -} - - -/*body -{ - font-family: "Times New Roman", Times, serif; - font-size: medium; - font-weight: normal; - margin-left: 2.5em; - margin-right: 2.5em; -} - -p -{ - margin-top: 0pt; - margin-bottom: 0.5em; - text-align: justify -} - -pre -{ - font-family: "Courier New", monospace; - font-size: 90%; - background-color: #cccccc; - color: #000000; - margin-left:1.5%; - margin-right:1.5%; - margin-top: 1em; - margin-bottom: 1em; - border: #008000 none; -} - -hr -{ - color: #000080; - background-color: #000080; - margin-top: 0.5em; - margin-bottom: 0.5em; -} - -table.fixedWidth -{ - width: 97%; - margin-left:1.5%; - margin-right:1.5%; - margin-top: 1em; - margin-bottom: 1em; -} - - -table.varWidth -{ - margin-left:1.5%; - margin-top: 1em; - margin-bottom: 1em; -} - -th -{ - text-align: left; -} - -h1 -{ - color: #000080; - text-align: left; - font-size: 167%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal -} - -h2 -{ - color: #000080; - font-size: 150%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal -} - -h3 -{ - color: #000080; - font-size: 133%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal -} - -h4 -{ - color: #000080; - font-size: 116%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal -} - -h5 -{ - color: #000080; - font-size: 100%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal -} - -h6 -{ - color: #000080; - font-size: 83%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal -} - -code -{ - font-family: "Courier New", Courier, monospace; - font-size: 90%; - color: #000000 -} - -dd -{ - margin-top: 0.8em; - margin-bottom: 0.8em; - text-align: justify - -} - -dt -{ - margin-top: 0.8em; - font-family: Arial, Helvetica, sans-serif; - color: #000080 -} - -ol -{ - margin-top: 0.5em; - margin-bottom: 0.5em -} - -ol.alpha -{ - list-style-type: lower-alpha -} - -li -{ - margin-top: 0.25em; - margin-bottom: 0.25em; - text-align: justify -} - -a:hover -{ - color: #990000 -} - - -.title -{ - text-align: left; - font-size: 167%; - color: #000080; - font-family: Arial, Helvetica, sans-serif; - margin-top: 0.4em; - margin-bottom: 0.4em -} - -.subtitle -{ - text-align: left; - font-size: 133%; - color: #000080; - font-family: Arial, Helvetica, sans-serif; - margin-top: 0.4em; - margin-bottom: 0.4em -} - -.glossaryTerm -{ - font-style: italic; - color: #006699 -} - -.example -{ - font-family: "Courier New", monospace; - background-color: #CCFFFF; - color: #000000; - margin: 0pt 0pt; - border: #008000 none -} - -.schema -{ - font-family: "Courier New", monospace; - background-color: #FFFFCC; - color: #000000; - margin: 0pt 0pt; - border: #008000 none -} - -.documentinfo -{ - font-family: Arial, Helvetica, sans-serif; - font-size: 100%; -} - -.ol-contents -{ - font-size: 100%; - margin-top: 0.0em; - margin-bottom: 0.0em; -} - -.li-contents -{ - font-size: 100%; - margin-top: 0.0em; - margin-bottom: 0.0em; -} - -.logoTitle -{ - text-align: center; - font-size: 133%; - color: #000080; - font-family: Arial, Helvetica, sans-serif; -} - -.logoTable -{ - margin-bottom: 0px; - margin-left: 0px -} - -.superscript -{ - vertical-align: super; - font-size: 66%; -} - -.term -{ - font-style: italic; -} - -.comment -{ - color: #000000; - background: #ffff00; - font-style: italic -} - -.addedErrata12 -{ - color: #FF0000; - background-color: #FFEEEE; - text-decoration: underline -} - -.deletedErrata12 -{ - color: #999999; - background-color: #EEEEEE; - text-decoration: line-through -} - -.added12 -{ - color: #FF0000; - text-decoration: underline -; background-color: #F8F0FF -} - -.deleted12 -{ - color: #999999; - text-decoration: line-through -; background-color: #f8f0ff -} - -.rfc2119Keyword -{ - font-variant: small-caps; - font-style: normal; -} - -.remark { font-style: italic} - -li.faq -{ - margin-top: 1.5em; - margin-bottom: 1.5em; -} - -.faq-question -{ - color: #000080; - font-size: 100%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal; - margin-bottom: 0.4em; -} -*/
\ No newline at end of file diff --git a/id/server/auth/src/main/webapp/common/logo_digAT.png b/id/server/auth/src/main/webapp/common/logo_digAT.png Binary files differnew file mode 100644 index 000000000..4f36681e2 --- /dev/null +++ b/id/server/auth/src/main/webapp/common/logo_digAT.png diff --git a/id/server/auth/src/main/webapp/common/main.css b/id/server/auth/src/main/webapp/common/main.css new file mode 100644 index 000000000..6bd964346 --- /dev/null +++ b/id/server/auth/src/main/webapp/common/main.css @@ -0,0 +1,253 @@ +html { + font-family: "Roboto", sans-serif; + color: #000; + font-weight:300; +} + +.container { + margin: auto; + max-width: 1000px; + padding-left: 20px; + padding-right: 20px; +} + +body { + margin: 0; + padding: 0; + letter-spacing: 0.05em; +} + +h1 +{ +font-family: "Roboto", sans-serif; +} + +#headline { + /*background: linear-gradient(center top , #FAFAFA, #F5F5F5) repeat scroll 0% 0% transparent;*/ + background: linear-gradient(#FAFAFA, #F5F5F5); + border-bottom: 1px solid #EEE; +} + +#headline br { + clear: both; +} + +#headline h1 { + color: #404040; + padding-right: 1em; + padding-top: 0.3em; + margin-bottom: 0; + float: right; + font-size: 220%; + font-weight: 400; + } +#headline img { + width: 300px; + padding-left: 0; + padding-top: 35px; + padding-bottom:20px; + } + +#description { + text-align: justify; +} + +#maincontent { + height: 13em; +} + +#demologin p { + padding-left: 10px; + padding-right: 10px; + text-align: justify; + font-size: 100%; + color: #000; + padding-top:20px; + +} + +#demologin a{ + +} + +.button { + border-radius: 5px; + /*background-color: rgb(41,127,184); */ + background-color: #E10319; + text-decoration: none; + text-transform: uppercase; + padding: 10px 80px 10px 80px; + letter-spacing: 1.5px; + text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.3); + color: WHITE; + box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); + margin-left: 10px; +} + +.button:hover { + box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.8); + text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.9); +} + +#singlelogout { + clear: both; + width: 100%; + box-sizing: border-box; + +} +a{ + text-decoration: none; + font-size:100%; + color: #666; +} +a:hover{ + text-decoration: none; + font-size:100%; + color: #E10319; +} + +/*****************************/ +@media ( max-width :599px) { + #headline { + /*background: linear-gradient(center top , #FAFAFA, #F5F5F5) repeat scroll 0% 0% transparent;*/ + background: linear-gradient(#FAFAFA, #F5F5F5); + border-bottom: 1px solid #EEE; + } + + #headline img { + width: 150px; + padding-left: 0; + padding-top: 0.5em; + padding-bottom:0.5em; + } + #headline br { + clear: both; + } + #headline h1 {font-family: "Roboto", sans-serif; + color: #404040; + padding: 0; + margin-bottom: 0; + margin-top: 0; + text-align: center; + } + nav { + display: block; + width: 100%; + text-align: center; + box-sizing: border-box; + color: WHITE; + margin: 0px 0px 0px 0px; + overflow: hidden; + + } + nav ul { + margin: 0; + padding: 0; + } + nav ul li { + list-style-type: none; + padding-top: 2px; + padding-bottom: 2px; + } + nav>ul>li>a { + color: #666; + display: block; + text-decoration: none; + } + nav>ul>li:hover { + color: #404040; + } + nav>ul>li:hover>a { + color: #404040; + } + nav>ul>li:active>a { + color: #404040; + } + #demologin { + width: 100%; + box-sizing: border-box; + border: 1px solid; + border-radius: 1px; + border-color: #818286; + background: #F5F5F5; + height: 182px; + width: 242px; + margin-top: 18px; + padding-left:0; + } +} +/*****************************/ +@media ( min-width :600px) { + #headline { + /*background: linear-gradient(center top , #FAFAFA, #F5F5F5) repeat scroll 0% 0% transparent;*/ + background: linear-gradient(#FAFAFA, #F5F5F5); + border-bottom: 1px solid #EEE; + + } + #headline br { + clear: both; + } + + #headline h1 { + color: #404040; + padding-right: 1em; + padding-top: 0.15em; + margin-bottom: 0; + float: right; + } + #headline img { + width: 300px; + padding-left: 0; + padding-top: 35px; + padding-bottom:20px; + } + nav { + display: block; + float: left; + width: 30%; + box-sizing: border-box; + background-color: #fff; + color: #888; + margin: 8px 0px 8px 0px; + overflow: hidden; + } + nav ul { + margin: 0; + padding: 0; + } + nav ul li { + list-style-type: none; + padding-top: 15px; + } + nav>ul>li>a { + color: #666; + display: block; + text-decoration: none; + } + nav>ul>li:hover { + color: #E10319; + } + nav>ul>li:hover>a { + color: #E10319; + } + nav>ul>li:active>a { + color: #E10319; + } + #demologin { + float: right; + width: 50%; + box-sizing: border-box; + border: 1px solid; + border-radius: 1px; + border-color: #818286; + background: #F5F5F5; + height: 282px; + width: 342px; + margin-right: 150px; + margin-top: 18px; + padding-left:0; + } + #demologin a:hover{ + color:white; + } +}
\ No newline at end of file diff --git a/id/server/auth/src/main/webapp/index.html b/id/server/auth/src/main/webapp/index.html index 391195def..381d8d82d 100644 --- a/id/server/auth/src/main/webapp/index.html +++ b/id/server/auth/src/main/webapp/index.html @@ -1,102 +1,91 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
- <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" >
- <title>MOA-ID 2.1.x</title>
- <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"> </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">MOA-ID 2.1.2</p>
-<hr/>
- <h1>Inhalt</h1>
- <ol>
- <li><a href="#allgemeines">Allgemeines</a>
- <ol>
- <li><a href="#allgemeines_service">Externe Services</a></li>
- </ol>
- </li>
- <li><a href="#ss">MOA-ID-Auth </a>
- <ol>
- <li><a href="#ablauf">Ablauf einer Anmeldung</a></li>
- </ol>
- </li>
- <li><a href="#sp">MOA-ID-Configuration</a></li>
- </ol>
-<hr/>
- <h1><a name="allgemeines"></a>1 Allgemeines</h1>
- <p> Das Module MOA-ID-Auth kann von Anwendungen zur Identifizierung und Authentifizierung im Rahmen eines Anmeldeprozesses an einer Online-Applikation verwendet werden. Die Konfiguration des Modules MOA-ID-Auth erfolgt mit Hilfe des Zusatzmodules MOA-ID-Configuration welches eine web-basierte Konfigurationsschnittstelle zur Verfügung stellt.</p>
- <p>Das nachfolgende Blockdiagramm zeigt Struktur von MOA-ID und gibt eine kurze Beschreibung der einzelnen Komponenten.</p>
- <p><img src="Blockdiagramm.png" alt="Architektur MOA-ID" width="1000" height="678"></p>
- <p> </p>
-<p>MOA-ID besteht aus folgenden Kernkomponenten:</p>
- <ol>
- <li><u>CORE LOGIC</u>: Diese Komponente ist die zentrale Logik zur Steuerung der einzelnen Prozesse innerhalb MOA-ID 2.x.</li>
- <li><u>Protocol Adapter</u>: Stellt die in MOA-ID 2.x unterstützten Authentifizierungsprotokolle für die Anbindung von Service Providern zur Verfügung.</li>
- <li><u>Auth Sources</u>: Stellt die von MOA-ID 2.x unterstützten Identifikationsmechanismen und Single Sign-On Management Funktionen zur Verfügung. Dies sind die österreichische Bürgerkarte oder Handy-Signatur, die Anmeldung ausländischer Personen mit Hilfe des STORK Protokoll oder mittels Single Sign-On von einem weiteren vertrauenswürdigen Identity Provider (Interfederation). Dieses Modul beinhaltet somit alle jene Funktionen welche für den Authentifizierungs- oder Abmeldeprocess erforderlich sind. </li>
- <li><u>Template Generator</u>: Der Template Generator erzeugt für Service Provider die entsprechenden Login-Masken für die Integration in die eigene Web-Applikation.</li>
- <li><u>SSO Module</u>: Das Single Sign-On (SSO) Modul verwaltet die zusätzlichen Operationen die sich aus der Umsetzung von SSO ergeben. Dies umfasst im Besonderen das SSO Session-Management.</li>
- <li><u>Statistic Module</u>: Dieses Modul dient zur Generierung von anonymisierten Statistikdaten aus den Anmeldeinformationen. </li>
- <li><u>Monitoring & Testing Module</u>: Dieses Modul implementiert Methoden mit deren Hilfe einzelne funktionale Bereiche aus MOA-ID-Auth getestet werden können. Somit dient dieses Modul als Schnittstellte zu einem externen Monitoring-Service.</li>
- <li><u>Configuration</u><u> Modul</u>: Dieses Modul stellt die Schnittstelle zur MOA-ID-Auth Konfiguration dar welche in einer Datenbank abgelegt wird. </li>
- <li><u>Konfigurationstool</u>: Oberfläche, mit deren Hilfe MOA-ID konfiguriert werden kann. Dies umfasst sowohl allgemeine Konfigurationsteile als auch die Konfiguration der einzelnen bei MOA-ID-Auth registrierten Online-Applikationen. Service Provider können sich am Konfigurationstool mittels Bürgerkarte oder Handy-Signatur anmelden und ihre Online-Applikationen verwalten.</li>
- </ol>
- <h2><a name="allgemeines_service" id="allgemeines_service"></a>1.1 Externe Services</h2>
-<p>Für die Anmeldung in Vertretung und die Anmeldung ausländischer Personen werden zusätzliche externe Services verwendet.</p>
- <h3><a name="allgemeines_service_ovs" id="allgemeines_service2"></a>1.1.1 Online-Vollmachten</h3>
-<p>Ab der MOA-ID Release 1.5.0 werden Online-Vollmachten (für Anwendungen aus dem öffentlichen Bereich) unterstützt. Hierzu werden diese Vollmachten über eine Online-Vollmachten-Service ausgewählt. Der Zugang zu diesem Online-Vollmachten Service ist über eine Client-Server Authentifizierung abgesichert. Als Client-Zertifikate werden Zertifikate der Firmen A-Trust bzw. A-CERT, die mit der Verwaltungs- oder Dienstleistereigenschaft versehen sind, akzeptiert. </p>
- <h3><a name="allgemeines_service_szrgw" id="allgemeines_service3"></a>1.1.2 Ausländische Bürger</h3>
- <p> Ab der MOA-ID Release 1.4.7 ist es möglich, dass sich auch ausländische Bürger mittels MOA-ID einloggen können. Hierzu wird eine Verbindung zu einem sogenannten Stammzahlenregister-Gateway aufgebaut, dass basierend auf den Zertifikatsdaten des ausländischen Bürgers eine Eintragung im Ergänzungsregister für natürliche Personen gemäß E-Government Gesetz §6(5) vornimmt. Somit ist es möglich, dass eine Personenbindung ausgestellt werden kann, die in weitere Folge an MOA-ID weitergeleitet wird. Der Zugang zu diesem Stammzahlenregister-Gateway ist über eine Client-Server Authentifizierung abgesichert. Als Client-Zertifikate werden Zertifikate der Firmen A-Trust bzw. A-CERT, die mit der Verwaltungs- oder Dienstleistereigenschaft versehen sind, akzeptiert. </p>
-<h1><a name="moaidauth" id="moaidauth"></a>2 MOA-ID-Auth</h1>
-<p>Das Modul MOA-ID-Auth dient der Identifizierung und Authentifizierung im Rahmen eines Anmeldevorgangs an einer Online-Applikation. Die Identifizierung und Authentifizierung erfolgt mit Bürgerkartem, Handy-Signatur oder für ausändische Personen mittels STORK.</p>
-<p>Die Funktionalität und der Aufbau der Schnittstellen des Modules MOA-ID-Auth in Richtung Online-Applikation wird im Kapitel Protokolle beschriebe.
-<p>Für den Betrieb von MOA-ID-Auth ist der Einsatz von MOA-Signaturprüfung (MOA-SP) erforderlich.</p>
-<h2><a name="ablauf" id="ablauf"></a> 2.1 Ablauf einer Anmeldung</h2>
-<p>Die nachfolgende Grafik beschreibt den Ablauf eines Abmeldevorgangs an einer Online-Applikation mit Hilfe von MOA-ID-Auth unter Verwendung der Bürgerkarte oder der Handy-Signatur.</p>
-<p><img src="anmeldeablauf.png" width="947" height="881" alt="Sequenzdiagramm eines Anmeldevorgangs mit MOA-ID-Auth"></p>
-<p> </p>
-<ol>
- <li>Der Benutzer verbindet sich zu einem Web-Portal (Service Provider) über das die Online-Applikation erreichtbar ist. Nach der Betätigung eines Login-Buttons wird der Anmeldevorgang ausgelöst.</li>
- <li>Der Benutzer wird zur Identifizierung und Authentifizierung an MOA-ID-Auth weitergeleitet. </li>
- <li>MOA-ID-Auth validiert die Authentifizierungsanfrage des Service Providers</li>
- <li>MOA-ID-Auth bietet dem Benutzer eine Auswahl von verfügbaren Authentifizierungsmethoden (Bürgerkarte, Handy-Signatur, STORK) an.</li>
- <li>Der Benutzer wählt die gewünschte Authentifizierungsmethode und sendet diese an MOA-ID-Auth.</li>
- <li>MOA-ID-AUTH erzeugt eine HTML-Seite mit einem <InfoboxReadRequest> zum Auslesen der Personenbindung. Diese HTML-Seite wird an den Browser geschickt.</li>
- <li>Der Browser schickt den <InfoboxReadRequest> an die ausgewählte Bürgerkartenumgebung unter Verwendung des Security-Layer. Die Bürgerkartenumgebung liest die Personenbindung von der Bürgerkarte und sendet diese an MOA-ID-AUTH. MOA-ID-Auth prüft die Signatur der Personenbindung durch einen Aufruf von MOA-SP.</li>
- <li>MOA-ID-AUTH erstellt den AUTH-Block. Der AUTH-Block enthält Vor- und Nachname aus der Personenbindung, URL von MOA-ID-AUTH, URL und Geschäftsbereich der Online-Applikation oder im Falle einer SSO Anmeldung die URL und den Geschäftsbereich der MOA-ID-Auth Instanz, die aktuelle Zeit, das aktuelle Datum und einen Zufallswert für diesen Anmeldevorgang. Anschließend wird eine XML Antwortseite, die das Kommando zum Signieren (<CreateXMLSignatureRequest>) des generierten AUTH-Blocks enthält, an die ausgewählte Bürgerkartenumgebung, unter Verwendung des Security-Layers, gesendet.</li>
- <li>Der Request wird von der Bürgerkartenumgebung verarbeitet. Die signierten Daten werden an MOA-ID-AUTH zurückgesendet.</li>
- <li>MOA-ID-Auth überprüft den signierten AUTH-Block und generiert Information für weitere Anmeldungen mittels Single Sign-On.</li>
- <li>MOA-ID-Auth generiert die Anmeldedaten (Assertion) welche folgende Information enthalten:
- <ul>
- <li>die bereichsspezifischen Personenkennzeichen (bPK / wbPK)</li>
- <li>Vorname, Nachname und Geburtsdatum (optional)</li>
- <li>den signierten AUTH-Block (optional)</li>
- <li>die Personenbindung (optional)</li>
- <li>das Zertifikat mit dem die Signatur erzeugt wurde (optional)</li>
- <li>informationen zum Vertreten im Falle einer Anmeldung in Vertretung (optional)</li>
- <li>die elektronische Vollmacht im Falle einer Anmeldung in Vertretung (optional)</li>
- <li>informationen aus dem STORK Protokoll im Falle einer Anmeldung mittels STORK (optional)</li>
- </ul>
- </li>
- <li> MOA-ID-Auth sendet die Anmeldedaten an den Service-Provider und setzt im Browser des Benutzers ein SSO Session-Tokken welches für weitere Anmeldevorgänge verwendet werden kann.</li>
- <li>Die Anmeldedaten werden vom Service-Provider verarbeitet und der Benutzer wird vom Service-Provider an die Online-Applikation weitergeleitet. </li>
-</ol>
-<h1><a name="config" id="config"></a>3 MOA-ID-Configuration </h1>
-<p>Das Modul MOA-ID-Configuration stellt eine web-basierte Benutzerschnittstelle zur Konfiguration des Moduls MOA-ID-Auth zur Verfügung, wobei sich die Konfiguration in zwei Teilbereiche unterteilt ist. Eine detailierte Aufstellung der einzelnen Konfigurationspunkte befindet sich im Kapitel <a href="../config/config.html">Konfiguration</a>.</p>
-<ol>
- <li>Allgemeine Konfiguration<br>
- In diesem Bereich sind alle Basiseinstellungen der MOA-ID-Auth Instanz hinterlegt. Beispiele hierfür sind Single Sign-On, unterstütze Authentifizierungsprotokolle, Informationen zu MOA-ID-Auth, URLs zu externen Services, ... Eine Änderung der Basiseinstellung erfordert besondere Benutzerrechte am Konfigurationstool.</li>
- <li>Online-Applikationen<br>
- In diesem Abschnitt erfolgt die Konfiguration der einzelnen bei MOA-ID-Auth registrierten Service-Provider. Hierbei handelt es sich um authentifizierungsprotkollspezifische Einstellungen, Bereich des Service-Providers (öffentlich / Privatwirtschaftlich), Konfiguration der BKU Auswahl, .... Wobei sich die Konfigurationsmöglichkeiten je nachdem welche Benutzerrechten vergeben sind, unterscheiden können.</li>
-</ol>
-<p>Zusätzlich unterstützt das Module MOA-ID-Configuration auch eine einfache Bentzerverwaltung mit Rechtevergabe mit deren Hilfe die Verwaltung von Online-Applikatioen an den jeweiligen Service-Provider ausgelagert werden kann. Die Anmeldung am Konfigurationstool erfolgt mittels Bürgerkarte, Handy-Signature oder STORK, wobei optional auch eine Anmeldung mittels Benutzername und Passwort zur Verfügung steht.</p>
-<p> </p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> + <head> + <meta http-equiv="content-type" content="text/html; charset=utf8" > + <title>MOA-ID 2.1.x</title> + <link rel="stylesheet" href="./common/main.css" type="text/css"> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> + <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' type='text/css'> + <script language="JavaScript" type="text/javascript"> + + function PVP2LoginIframe(url) { + var el = document.getElementById("demologin"); + var iframe = document.createElement("iframe"); + iframe.setAttribute("src", url); + iframe.setAttribute("width", "240"); + iframe.setAttribute("height", "180"); + iframe.setAttribute("frameborder", "0"); + iframe.setAttribute("scrolling", "no"); + iframe.setAttribute("title", "Login"); + //iframe.setAttribute("scrolling", "yes"); + + iframe.setAttribute("name", "iframelogin"); + iframe.setAttribute("id", "iframelogin"); + + + iframe.setAttribute("onload","iframeLoaded()"); + + var divdemologin = document.getElementById("demologin"); + divdemologin.innerHTML=""; + + el.appendChild(iframe, el); + } + + function iframeLoaded(){ + //console.log(document.title); + var ifr=document.getElementById("iframelogin"); + + //only works on same origin + + /* + var iframedoc=(ifr.contentWindow||ifr.contentDocument); + + //var iframedoc=ifr.contentDocument||iframe.contentWindow.document; + console.log(iframedoc.title); + if(iframedoc.title=="Demo Applikation"){ + ifr.setAttribute("width",480); + ifr.setAttribute("height",240); + + var demologin=document.getElementById("demologin"); + demologin.style.marginRight="250px"; + } + */ + } + + </script> + </head> + <body> + <div id="headline"> + <div class="container"> + <a href="http://www.digitales.oesterreich.gv.at/"><img src="./common/logo_digAT.png"/></a> + <a href="../index.html"><h1>MOA-ID-AUTH </h1></a> + <br/> + </div> + </div> + <div id="description" class="container"> + <p>Bei MOA-ID-AUTH handelt es sich um ein Modul für die Identifizierung und Authentifizierung bei Onlineapplikationen unter Verwendung der Bürgerkarte. + Hier kann sowohl die Smartcard-Variante (e-Card) als auch die Handysignatur verwendet werden. + Die Konfiguration des Modules MOA-ID-Auth erfolgt mit Hilfe des Zusatzmodules MOA-ID-Configuration welches eine web-basierte Konfigurationsschnittstelle zur Verfügung stellt.</p> + </div> + <div id="maincontent" class="container"> + <nav> + <ul> + <!--li><a href="_index.html">Allgemein</a></li--> + <!--li><a href="http://joinup.ec.europa.eu/site/moa-idspss/">Dokumentation</a></li--> + <li><a href="http://joinup.ec.europa.eu/site/moa-idspss/moa-id-2.0.0/doc/handbook">Dokumentation</a></li> + <!--Link zu den Demo-Clients--> + <li><a href=#>Demo Clients</a></li> + <!--Link zum Konfigtool--> + <li><a href="https://localhost:8443/moa-id-configuration">Konfiguration GUI</a></li> + + </ul> + </nav> + <div id="demologin" class="container"> + <br/> + <a href="#" id="loginButton" class="button" onclick="PVP2LoginIframe('https://menja.iaik.tugraz.at:8443/moa-id-oa/servlet/pvp2login')">Login</a> + <p id="loginText">Über den Login-Button können Sie sich anschließend bei Ihrer Online-Applikation mit der Bürgerkarte oder der Handysignatur anmelden. Dazu müssen Sie allerdings zuvor die Applikation gemäß <a href="http://joinup.ec.europa.eu/site/moa-idspss/moa-id-2.0.0/doc/handbook/application/application.html#DemoApp_pvp21">Beschreibung</a> konfigurieren.</p> + </div> + </div> + + </body> +</html>
\ No newline at end of file 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 9d1e931e9..c330758c8 100644 --- a/id/server/data/deploy/conf/moa-id/moa-id.properties +++ b/id/server/data/deploy/conf/moa-id/moa-id.properties @@ -13,6 +13,7 @@ ##For Testing configuration.validation.certificate.QC.ignore=false protocols.pvp2.assertion.encryption.active=false +protocols.pvp2.schemavalidation=true ##General MOA-ID 2.0 operations #MOA-ID 2.0 session information encryption key (PassPhrase) @@ -43,6 +44,12 @@ service.foreignidentities.acceptedServerCertificates= service.foreignidentities.clientKeyStore=keys/.... service.foreignidentities.clientKeyStorePassword= +##STORK 2 +stork.fakeIdL.active=false +stork.fakeIdL.countries= +stork.fakeIdL.keygroup= +stork.documentservice.url= + ##Protocol configuration## #PVP2 diff --git a/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_VIDP.xml b/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_VIDP.xml index ee4c636ce..b45b69054 100644 --- a/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_VIDP.xml +++ b/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_VIDP.xml @@ -119,5 +119,6 @@ <!-- ISA 1.18 attributes--> <entry key="ECApplicationRole">http://www.stork.gov.eu/1.1/ECApplicationRole</entry> + <entry key="MSOrganization">http://www.stork.gov.eu/1.1/MSOrganization</entry> </properties> diff --git a/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming.xml b/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming.xml index 83e69ac23..3370978b3 100644 --- a/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming.xml +++ b/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming.xml @@ -90,5 +90,9 @@ <entry key="mandateContent">http://www.stork.gov.eu/1.0/mandateContent</entry> <entry key="representative">http://www.stork.gov.eu/1.0/representative</entry> <entry key="represented">http://www.stork.gov.eu/1.0/represented</entry> - + + <!-- ISA 1.18 attributes--> + <entry key="ECApplicationRole">http://www.stork.gov.eu/1.1/ECApplicationRole</entry> + <entry key="MSOrganization">http://www.stork.gov.eu/1.1/MSOrganization</entry> + </properties> diff --git a/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming_attr.xml b/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming_attr.xml index 83e69ac23..33437c110 100644 --- a/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming_attr.xml +++ b/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming_attr.xml @@ -90,5 +90,9 @@ <entry key="mandateContent">http://www.stork.gov.eu/1.0/mandateContent</entry> <entry key="representative">http://www.stork.gov.eu/1.0/representative</entry> <entry key="represented">http://www.stork.gov.eu/1.0/represented</entry> - + + <!-- ISA 1.18 attributes--> + <entry key="ECApplicationRole">http://www.stork.gov.eu/1.1/ECApplicationRole</entry> + <entry key="MSOrganization">http://www.stork.gov.eu/1.1/MSOrganization</entry> + </properties> diff --git a/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_outgoing.xml b/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_outgoing.xml index b095b9e7e..2b0c05b88 100644 --- a/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_outgoing.xml +++ b/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_outgoing.xml @@ -91,4 +91,8 @@ <entry key="representative">http://www.stork.gov.eu/1.0/representative</entry> <entry key="represented">http://www.stork.gov.eu/1.0/represented</entry> + <!-- ISA 1.18 attributes--> + <entry key="ECApplicationRole">http://www.stork.gov.eu/1.1/ECApplicationRole</entry> + <entry key="MSOrganization">http://www.stork.gov.eu/1.1/MSOrganization</entry> + </properties>
\ No newline at end of file diff --git a/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cer b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cer Binary files differnew file mode 100644 index 000000000..1bb449441 --- /dev/null +++ b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cer diff --git a/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-enc-02.20140701-20240701.SerNo144dfd.cer b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-enc-02.20140701-20240701.SerNo144dfd.cer Binary files differnew file mode 100644 index 000000000..6c0c042b4 --- /dev/null +++ b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-enc-02.20140701-20240701.SerNo144dfd.cer diff --git a/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer new file mode 100644 index 000000000..60bc9a557 --- /dev/null +++ b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIID2zCCAsOgAwIBAgIDFhIPMA0GCSqGSIb3DQEBBQUAMIGTMQswCQYDVQQGEwJB +VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp +bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRwwGgYDVQQLDBNhLXNpZ24tVEVT +VC1RdWFsLTAxMRwwGgYDVQQDDBNhLXNpZ24tVEVTVC1RdWFsLTAxMB4XDTE0MTEx +NzA3NDAzNloXDTI0MTExMTA2NDAzNlowgZMxCzAJBgNVBAYTAkFUMUgwRgYDVQQK +DD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4g +RGF0ZW52ZXJrZWhyIEdtYkgxHDAaBgNVBAsME2Etc2lnbi1URVNULVF1YWwtMDEx +HDAaBgNVBAMME2Etc2lnbi1URVNULVF1YWwtMDEwggEiMA0GCSqGSIb3DQEBAQUA +A4IBDwAwggEKAoIBAQD4TRgyXzhxJ2AkndX0RPY771f64dsJrReEeuShLRK5io0B +kJWc4t7wuD1B98cJ0MUPlMmOJ2Ckc/vuLhQUyY3qEUmhMhixCUIcdHQ5yH3H0yMV +HxyJxAG83fE8M25kpKA4TzzMW8KPd2S63wbpPElyEy7vrllrLxvdQRSDpMZMvRg8 +fvoDGAehxsnKKwlXZuMq1aSBzfMz3cMBDKxvqzDIz7yC1iWNkdiwog3a5a5PbViK +shhZ0h+bx9WFDpiN6ooPQgcGhjD+NqIDoiOr7CUFHp+HiC6xIsEFJaBHTf3dRZ61 +0r1FDABx0Yj8+wlXSQLYq/1nR/QMwsvH0Cz1qYTPAgMBAAGjNjA0MA8GA1UdEwEB +/wQFMAMBAf8wEQYDVR0OBAoECE8h1CulBqTdMA4GA1UdDwEB/wQEAwIBBjANBgkq +hkiG9w0BAQUFAAOCAQEAimFu+xTm3UdyU+fO+2hz4DS20OGSC9NBDkorjzhRPWoZ +IVhUi6yH5drqSBm4/2ZYS1Ba5npzfyJwm+cLO28ljxAApfRHlbN0y83hKv7c0I7g +zWTMRs8X8ar5Gd7d4O5jpC4PAaZ1ozSDoE06U5im6YMLaJy/0QYvf5EQBMvLdeoc +d1vl17JYKYqYzcX2dvayikrfiglFqDaZZ66yJPBSuiyNhXpPkbXsOoyyTPtV/0Bh +eKIQiQyJID5aZtR7D4fBAzKdp5wB9KLQXBZ80hrwqrIuy+ME0tFaBWYBi8dzQ1iq +/E3Qz0USfGmxPMm8y/zRqsDvxZCRiSuvzBkOXbGMdA== +-----END CERTIFICATE----- diff --git a/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer Binary files differnew file mode 100644 index 000000000..e4bd48dac --- /dev/null +++ b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer diff --git a/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-02.20140701-20240701.SerNo144e10.cer b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-02.20140701-20240701.SerNo144e10.cer Binary files differnew file mode 100644 index 000000000..74c4ce3b8 --- /dev/null +++ b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-02.20140701-20240701.SerNo144e10.cer diff --git a/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-03.20140701-20240701.SerNo144e13.cer b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-03.20140701-20240701.SerNo144e13.cer Binary files differnew file mode 100644 index 000000000..6c50ec079 --- /dev/null +++ b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-03.20140701-20240701.SerNo144e13.cer diff --git a/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Test-Sig-02.20141124-20141118.SerNo3969edc1.cer b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Test-Sig-02.20141124-20141118.SerNo3969edc1.cer Binary files differnew file mode 100644 index 000000000..1bb449441 --- /dev/null +++ b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Test-Sig-02.20141124-20141118.SerNo3969edc1.cer diff --git a/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cer b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cer Binary files differnew file mode 100644 index 000000000..1bb449441 --- /dev/null +++ b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cer diff --git a/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer new file mode 100644 index 000000000..60bc9a557 --- /dev/null +++ b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIID2zCCAsOgAwIBAgIDFhIPMA0GCSqGSIb3DQEBBQUAMIGTMQswCQYDVQQGEwJB +VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp +bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRwwGgYDVQQLDBNhLXNpZ24tVEVT +VC1RdWFsLTAxMRwwGgYDVQQDDBNhLXNpZ24tVEVTVC1RdWFsLTAxMB4XDTE0MTEx +NzA3NDAzNloXDTI0MTExMTA2NDAzNlowgZMxCzAJBgNVBAYTAkFUMUgwRgYDVQQK +DD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4g +RGF0ZW52ZXJrZWhyIEdtYkgxHDAaBgNVBAsME2Etc2lnbi1URVNULVF1YWwtMDEx +HDAaBgNVBAMME2Etc2lnbi1URVNULVF1YWwtMDEwggEiMA0GCSqGSIb3DQEBAQUA +A4IBDwAwggEKAoIBAQD4TRgyXzhxJ2AkndX0RPY771f64dsJrReEeuShLRK5io0B +kJWc4t7wuD1B98cJ0MUPlMmOJ2Ckc/vuLhQUyY3qEUmhMhixCUIcdHQ5yH3H0yMV +HxyJxAG83fE8M25kpKA4TzzMW8KPd2S63wbpPElyEy7vrllrLxvdQRSDpMZMvRg8 +fvoDGAehxsnKKwlXZuMq1aSBzfMz3cMBDKxvqzDIz7yC1iWNkdiwog3a5a5PbViK +shhZ0h+bx9WFDpiN6ooPQgcGhjD+NqIDoiOr7CUFHp+HiC6xIsEFJaBHTf3dRZ61 +0r1FDABx0Yj8+wlXSQLYq/1nR/QMwsvH0Cz1qYTPAgMBAAGjNjA0MA8GA1UdEwEB +/wQFMAMBAf8wEQYDVR0OBAoECE8h1CulBqTdMA4GA1UdDwEB/wQEAwIBBjANBgkq +hkiG9w0BAQUFAAOCAQEAimFu+xTm3UdyU+fO+2hz4DS20OGSC9NBDkorjzhRPWoZ +IVhUi6yH5drqSBm4/2ZYS1Ba5npzfyJwm+cLO28ljxAApfRHlbN0y83hKv7c0I7g +zWTMRs8X8ar5Gd7d4O5jpC4PAaZ1ozSDoE06U5im6YMLaJy/0QYvf5EQBMvLdeoc +d1vl17JYKYqYzcX2dvayikrfiglFqDaZZ66yJPBSuiyNhXpPkbXsOoyyTPtV/0Bh +eKIQiQyJID5aZtR7D4fBAzKdp5wB9KLQXBZ80hrwqrIuy+ME0tFaBWYBi8dzQ1iq +/E3Qz0USfGmxPMm8y/zRqsDvxZCRiSuvzBkOXbGMdA== +-----END CERTIFICATE----- diff --git a/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkartePersonenbindungMitTestkarten/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkartePersonenbindungMitTestkarten/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer Binary files differnew file mode 100644 index 000000000..e4bd48dac --- /dev/null +++ b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkartePersonenbindungMitTestkarten/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer diff --git a/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkartePersonenbindungOhneTestkarten/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkartePersonenbindungOhneTestkarten/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer Binary files differnew file mode 100644 index 000000000..e4bd48dac --- /dev/null +++ b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkartePersonenbindungOhneTestkarten/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer diff --git a/id/server/doc/handbook/additional/additional.html b/id/server/doc/handbook/additional/additional.html index fb4e76733..d26447748 100644 --- a/id/server/doc/handbook/additional/additional.html +++ b/id/server/doc/handbook/additional/additional.html @@ -2,23 +2,24 @@ <html> <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" > + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>MOA-ID - Zusatzinformationen</title> <link rel="stylesheet" href="../common/MOA.css" type="text/css"> + <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' 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="../index.html">MOA-ID (Identifikation) </a></p> -<p class="subtitle">Zusatzinformationen</p> -<hr/> - <h1>Inhalt</h1> - <ol> + <div id="headline"> + <div class="container"> + <a href="http://www.digitales.oesterreich.gv.at/"><img src="../common/logo_digAT.png"/></a> + <a href="../index.html"><h1>MOA-ID-AUTH </h1></a> + <br/> + </div> + </div> + <div class="container"> +<h1 align="center">Zusatzinformationen</h1> + + <h2>Inhalt</h2> + <ol class="index"> <li><a href="#allgemeines">Datenmanagement</a> <ol> <li><a href="#sessiondata">Sessiondaten</a> @@ -32,149 +33,148 @@ </li> <li><a href="#networkconnections">Benötigte Netzwerkverbindungen (incoming / outgoing)</a></li> </ol> -<hr/> - <h1><a name="allgemeines"></a>1 Datenmanagement</h1> + <h2><a name="allgemeines"></a>1 Datenmanagement</h2> <p>Dieser Abschnitt spezifiziert jene Datensätze die während eines Anmeldevorgangs durch das Modul MOA-ID-Auth temporär oder permanent gespeichert werden. Hierbei handelt es sich sowohl um temporäre Sessiondaten als auch um dauerhaft gespeicherte Statistikdaten.</p> - <h2><a name="sessiondata" id="sessiondata"></a>1.1 Sessiondaten</h2> + <h3><a name="sessiondata" id="sessiondata"></a>1.1 Sessiondaten</h3> <p>Dieser Abschnitt behandelt jene Informationen die das Modul MOA-ID-Auth während eines Authentifizierungsvorgangs oder während einer aktiven Single Sign-On Session im Speicher hält. Diese Datensätze werden nach Beendigung des Anmeldevorgangs, bei einfacher Anmeldung, oder nach Beendigung der Single Sign-On Session gelöscht. Die nachfolgenden Unterkapitel geben eine Aufstellung jener Daten die von MOA-ID im jeweiligen Falle gespeichert werden.</p> - <h3><a name="sessiondata_general" id="sessiondata2"></a>1.1.1 Allgemein</h3> + <h4><a name="sessiondata_general" id="sessiondata2"></a>1.1.1 Allgemein</h4> <p>Folgende Daten müssen mindestens von MOA-ID gecached werden um einen korrekten Anmeldevorgang zu ermöglichen.</p> - <table border="1" cellspacing="0" cellpadding="0"> + <table class="configtable"> <tr> - <td width="160" valign="top"><p><strong>Element</strong></p></td> - <td width="764" valign="top"><p><strong>Beschreibung</strong></p></td> + <td><p><strong>Element</strong></p></td> + <td><p><strong>Beschreibung</strong></p></td> </tr> <tr> - <td width="160" valign="top"><p>Authentication Request</p></td> - <td width="764" valign="top"><p>Dieser wird von der Online-Applikation als Start des Anmeldevorgangs übertragen.</p></td> + <td><p>Authentication Request</p></td> + <td><p>Dieser wird von der Online-Applikation als Start des Anmeldevorgangs übertragen.</p></td> </tr> <tr> - <td width="160" valign="top"><p>Session ID</p></td> - <td width="764" valign="top"><p>Wird von MOA-ID generiert und dient zur Identifikation von Datensätzen.</p></td> + <td><p>Session ID</p></td> + <td><p>Wird von MOA-ID generiert und dient zur Identifikation von Datensätzen.</p></td> </tr> <tr> - <td width="160" valign="top"><p>Personenbindung</p></td> - <td width="764" valign="top"><p>Die Personenbindung der Benutzerin oder des Benutzers.</p></td> + <td><p>Personenbindung</p></td> + <td><p>Die Personenbindung der Benutzerin oder des Benutzers.</p></td> </tr> <tr> - <td width="160" valign="top"><p>AuthBlock</p></td> - <td width="764" valign="top"><p>Der Authentifizierungsblock, welcher im Rahmen des Anmeldevorgangs vom der Benutzerin oder dem Benutzer signiert wird.</p></td> + <td><p>AuthBlock</p></td> + <td><p>Der Authentifizierungsblock, welcher im Rahmen des Anmeldevorgangs vom der Benutzerin oder dem Benutzer signiert wird.</p></td> </tr> <tr> - <td width="160" valign="top"><p>Signaturzertifikat</p></td> - <td width="764" valign="top"><p>Das Signaturzertifikat, welches zur Signierung des Authentifizierungsblocks verwendet wurde.</p></td> + <td><p>Signaturzertifikat</p></td> + <td><p>Das Signaturzertifikat, welches zur Signierung des Authentifizierungsblocks verwendet wurde.</p></td> </tr> <tr> - <td width="160" valign="top"><p>Vollmacht</p></td> - <td width="764" valign="top"><p>Die Online-Vollmacht, welche bei einer Anmeldung in Vertretung ausgewählt wurde.</p></td> + <td><p>Vollmacht</p></td> + <td><p>Die Online-Vollmacht, welche bei einer Anmeldung in Vertretung ausgewählt wurde.</p></td> </tr> <tr> - <td width="160" valign="top"><p>STORK</p></td> - <td width="764" valign="top"><p>Alle Attribute, welche bei einer Anmeldung mittels STORK übertragen werden.</p></td> + <td><p>STORK</p></td> + <td><p>Alle Attribute, welche bei einer Anmeldung mittels STORK übertragen werden.</p></td> </tr> <tr> - <td valign="top">AuthTimeStamp</td> - <td valign="top">Zeitpunkt an dem sich die Benutzerin oder der Benutzer an MOA-ID-Auth authentifiziert hat.</td> + <td>AuthTimeStamp</td> + <td>Zeitpunkt an dem sich die Benutzerin oder der Benutzer an MOA-ID-Auth authentifiziert hat.</td> </tr> </table> -<h3><a name="sessiondata_sso" id="sessiondata3"></a>1.1.2 Single Sign-On</h3> +<h4><a name="sessiondata_sso" id="sessiondata3"></a>1.1.2 Single Sign-On</h4> <p>Im Falle einer Anmeldung mit Single Sign-In werden zusätzlich zu den oben genannten Elementen noch weitere Datensätze gecached.</p> -<table border="1" cellspacing="0" cellpadding="0"> + <table class="configtable"> <tr> - <td width="159" valign="top"><p><strong>Element</strong></p></td> - <td width="760" valign="top"><p><strong>Beschreibung</strong></p></td> + <td><p><strong>Element</strong></p></td> + <td><p><strong>Beschreibung</strong></p></td> </tr> <tr> - <td width="159" valign="top"><p>SSO Session Token</p></td> - <td width="760" valign="top"><p>Das SSO Session Token dient zur Identifizierung einer aktuell bestehenden Single Sign-On Session.</p></td> + <td><p>SSO Session Token</p></td> + <td><p>Das SSO Session Token dient zur Identifizierung einer aktuell bestehenden Single Sign-On Session.</p></td> </tr> <tr> - <td valign="top">UpdateTimeStamp</td> - <td valign="top">Zeitpunkt des letzten Zugriffs der Benutzerin oder des Benutzers mittels SSO.</td> + <td>UpdateTimeStamp</td> + <td>Zeitpunkt des letzten Zugriffs der Benutzerin oder des Benutzers mittels SSO.</td> </tr> <tr> - <td width="159" valign="top"><p>Liste: ungültige SSO Token</p></td> - <td width="760" valign="top"><p>Eine Liste aller in dieser Single Sign-On Session bereits vergebenen und verwendeten SSO Session Token. </p></td> + <td><p>Liste: ungültige SSO Token</p></td> + <td><p>Eine Liste aller in dieser Single Sign-On Session bereits vergebenen und verwendeten SSO Session Token. </p></td> </tr> <tr> - <td width="159" valign="top"><p>Liste: Online-Applikationen</p></td> - <td width="760" valign="top"><p>Eine Liste aller Onlineapplikationen an denen im Rahmen dieser SSO Session eine Anmeldung stattgefunden hat.</p></td> + <td><p>Liste: Online-Applikationen</p></td> + <td><p>Eine Liste aller Onlineapplikationen an denen im Rahmen dieser SSO Session eine Anmeldung stattgefunden hat.</p></td> </tr> </table> -<h2><a name="statisticdata" id="statisticdata"></a>1.2 Logging von Statistikdaten</h2> +<h3><a name="statisticdata" id="statisticdata"></a>1.2 Logging von Statistikdaten</h3> <p align="left">Zusätzlich zu den Daten aus den temporären Sessiondaten werden vom Modul MOA-ID-Auth auch Logging- und Statistikdaten generiert, welche nicht automatisiert gelöscht werden. Diese Daten dienen der Statuskontrolle und zur Protokollierung von Anmeldevorgängen an MOA-ID-Auth. Von MOA-ID-Auth werden folgende <a href="./../config/config.html#basisconfig_moa_id_auth_param_database_info">Statistikdaten</a> je Anmeldevorgang gespeichert, wobei je nach Art der Anmeldung nicht alle Datenelemente gefüllt werden. Die nachstehende Tabelle beschreibt den maximalen Umfang der Loggingdaten, wobei keine Informationen zur anmeldenden Person gespeichert werden.</p> -<table border="1" cellspacing="0" cellpadding="0"> + <table class="configtable"> <tr> - <td width="163" valign="top"><p><strong>Element</strong></p></td> - <td width="757" valign="top"><p><strong>Beschreibung</strong></p></td> + <td><p><strong>Element</strong></p></td> + <td><p><strong>Beschreibung</strong></p></td> </tr> <tr> - <td width="163" valign="top"><p>timestamp</p></td> - <td width="757" valign="top"><p>Datum und Uhrzeit des Eintrags.</p></td> + <td><p>timestamp</p></td> + <td><p>Datum und Uhrzeit des Eintrags.</p></td> </tr> <tr> - <td width="163" valign="top"><p>OAID</p></td> - <td width="757" valign="top"><p>Eindeutige Datenbank ID der Online-Applikation.</p></td> + <td><p>OAID</p></td> + <td><p>Eindeutige Datenbank ID der Online-Applikation.</p></td> </tr> <tr> - <td width="163" valign="top"><p>OAURLPrefix</p></td> - <td width="757" valign="top"><p>Publik URL Prefix der Online-Applikation</p></td> + <td><p>OAURLPrefix</p></td> + <td><p>Publik URL Prefix der Online-Applikation</p></td> </tr> <tr> - <td width="163" valign="top"><p>OAFriendlyName</p></td> - <td width="757" valign="top"><p>Bezeichnung der Online-Applikation</p></td> + <td><p>OAFriendlyName</p></td> + <td><p>Bezeichnung der Online-Applikation</p></td> </tr> <tr> - <td width="163" valign="top"><p>isBusinessService</p></td> - <td width="757" valign="top"><p>„True“ wenn die Online-Applikation aus dem privatwirtschaftlichen Bereich stammt.</p></td> + <td><p>isBusinessService</p></td> + <td><p>„True“ wenn die Online-Applikation aus dem privatwirtschaftlichen Bereich stammt.</p></td> </tr> <tr> - <td width="163" valign="top"><p>OATarget</p></td> - <td width="757" valign="top"><p>Bereichskennzeichen der Online-Applikation (Target oder privatwirtschaftlicher Bereich)</p></td> + <td><p>OATarget</p></td> + <td><p>Bereichskennzeichen der Online-Applikation (Target oder privatwirtschaftlicher Bereich)</p></td> </tr> <tr> - <td width="163" valign="top"><p>BKUType</p></td> - <td width="757" valign="top"><p>Art der Bürgerkartenumgebung die für den Anmeldevorgang verwendet wurde. (online, local, handy)</p></td> + <td><p>BKUType</p></td> + <td><p>Art der Bürgerkartenumgebung die für den Anmeldevorgang verwendet wurde. (online, local, handy)</p></td> </tr> <tr> - <td width="163" valign="top"><p>BKUURL</p></td> - <td width="757" valign="top"><p>URL der verwendeten Bürgerkartenumgebung</p></td> + <td><p>BKUURL</p></td> + <td><p>URL der verwendeten Bürgerkartenumgebung</p></td> </tr> <tr> - <td width="163" valign="top"><p>isSSOLogin</p></td> - <td width="757" valign="top"><p>„True“ wenn die die Anmeldung als Teil einer SSO Anmeldung erfolgt ist.</p></td> + <td><p>isSSOLogin</p></td> + <td><p>„True“ wenn die die Anmeldung als Teil einer SSO Anmeldung erfolgt ist.</p></td> </tr> <tr> - <td width="163" valign="top"><p>isMandateLogin</p></td> - <td width="757" valign="top"><p>„True“ wenn die Anmeldung in Vertretung erfolgt ist.</p></td> + <td><p>isMandateLogin</p></td> + <td><p>„True“ wenn die Anmeldung in Vertretung erfolgt ist.</p></td> </tr> <tr> - <td width="163" valign="top"><p>MandateType</p></td> - <td width="757" valign="top"><p>Art der verwendeten Vollmacht (Einzelprofile des Vollmachtenservice oder OID des Organwalters / berufsmäßigen Parteienvertreters)</p></td> + <td><p>MandateType</p></td> + <td><p>Art der verwendeten Vollmacht (Einzelprofile des Vollmachtenservice oder OID des Organwalters / berufsmäßigen Parteienvertreters)</p></td> </tr> <tr> - <td width="163" valign="top"><p>MandatorType</p></td> - <td width="757" valign="top"><p>„jur“ / „nat“ je nach Art der vertretenen juristischen oder natürlichen Person</p></td> + <td><p>MandatorType</p></td> + <td><p>„jur“ / „nat“ je nach Art der vertretenen juristischen oder natürlichen Person</p></td> </tr> <tr> - <td width="163" valign="top"><p>isPV</p></td> - <td width="757" valign="top"><p>„True“ wenn die Anmeldung in Vertretung durch einen Organwalter oder berufsmäßigen Parteienvertreter erfolgt ist.</p></td> + <td><p>isPV</p></td> + <td><p>„True“ wenn die Anmeldung in Vertretung durch einen Organwalter oder berufsmäßigen Parteienvertreter erfolgt ist.</p></td> </tr> <tr> - <td width="163" valign="top"><p>PVOID</p></td> - <td width="757" valign="top"><p>OID des Organwalter oder berufsmäßigen Parteienvertreter</p></td> + <td><p>PVOID</p></td> + <td><p>OID des Organwalter oder berufsmäßigen Parteienvertreter</p></td> </tr> <tr> - <td width="163" valign="top"><p>ProtocolType</p></td> - <td width="757" valign="top"><p>Type des für die Anmeldung verwendeten Authentifizierungsprotokolls. (PVP21, OpenID, SAML1)</p></td> + <td><p>ProtocolType</p></td> + <td><p>Type des für die Anmeldung verwendeten Authentifizierungsprotokolls. (PVP21, OpenID, SAML1)</p></td> </tr> <tr> - <td width="163" valign="top"><p>ProtocolSubType</p></td> - <td width="757" valign="top"><p>Nähere Spezifizierung des Protokolltyps. (Im Falle von PVP 2.1: POST oder Redirect)</p></td> + <td><p>ProtocolSubType</p></td> + <td><p>Nähere Spezifizierung des Protokolltyps. (Im Falle von PVP 2.1: POST oder Redirect)</p></td> </tr> <tr> - <td width="163" valign="top"><p>ExceptionType</p></td> - <td width="757" valign="top"><p>Typ des Fehlers der während des Anmeldevorgangs aufgetreten ist. Aktuell werden folgende Typen unterschieden:</p> + <td><p>ExceptionType</p></td> + <td><p>Typ des Fehlers der während des Anmeldevorgangs aufgetreten ist. Aktuell werden folgende Typen unterschieden:</p> <ul> <li><strong>bku</strong>: Fehler während der Kommunikation mit der Bürgerkartenumgebung.</li> <li> <strong>moa-sp</strong>: Fehler bei der Kommunikation mit MOA-SP oder der Signaturprüfung.</li> @@ -184,74 +184,71 @@ </ul> </td> </tr> <tr> - <td width="163" valign="top"><p>ExceptionCode</p></td> - <td width="757" valign="top"><p>Fehlercode des aufgetretenen Fehlers falls vorhanden.</p></td> + <td><p>ExceptionCode</p></td> + <td><p>Fehlercode des aufgetretenen Fehlers falls vorhanden.</p></td> </tr> <tr> - <td width="163" valign="top"><p>ExceptionMessage</p></td> - <td width="757" valign="top"><p>Fehlermeldung in textueller Form (max. 255 Zeichen lang)</p></td> + <td><p>ExceptionMessage</p></td> + <td><p>Fehlermeldung in textueller Form (max. 255 Zeichen lang)</p></td> </tr> </table> <p> </p> -<h1><a name="networkconnections" id="networkconnections"></a>2 Benötigte Netzwerkverbindungen (incoming / outgoing)</h1> +<h2><a name="networkconnections" id="networkconnections"></a>2 Benötigte Netzwerkverbindungen (incoming / outgoing)</h2> <p>Für die Betrieb des Modules MOA-ID-Auth werden Netzwerkverbindungen zu externen Service benötigt. Die nachfolgende Tabelle gibt eine Aufstellung der benötigten Verbindungen und eine kurze Beschreibung über deren Funktion.</p> -<table border="1" cellpadding="0" cellspacing="0"> + <table class="configtable"> <tr> - <td width="105" height="34" valign="middle"><strong>Service</strong></td> - <td width="275" valign="middle"><strong>URL</strong></td> - <td width="63" valign="middle"><strong>Port</strong></td> - <td width="87" valign="middle"><strong>Richtung</strong></td> - <td width="702" valign="middle"><strong>Beschreibung</strong></td> + <td><strong>Service</strong></td> + <td><strong>URL</strong></td> + <td><strong>Port</strong></td> + <td><strong>Richtung</strong></td> + <td><strong>Beschreibung</strong></td> </tr> <tr> - <td valign="middle"><p>MOA-ID-Auth</p></td> - <td align="center" valign="middle">*</td> - <td align="center" valign="middle">80, 443</td> - <td align="center" valign="middle">eingehend</td> - <td valign="middle"><p>Front-Channel und Back-Channel Verbinding zum IDP</p></td> + <td><p>MOA-ID-Auth</p></td> + <td>*</td> + <td>80, 443</td> + <td>eingehend</td> + <td><p>Front-Channel und Back-Channel Verbinding zum IDP</p></td> </tr> <tr> - <td valign="middle"><p>MOA-ID-Auth</p></td> - <td align="center" valign="middle">*</td> - <td align="center" valign="middle">80, 443</td> - <td align="center" valign="middle">ausgehend</td> - <td valign="middle">Abholen von Template oder PVP 2.1 Metadaten</td> + <td><p>MOA-ID-Auth</p></td> + <td>*</td> + <td>80, 443</td> + <td>ausgehend</td> + <td>Abholen von Template oder PVP 2.1 Metadaten</td> </tr> <tr> - <td height="26" valign="middle">LDAP</td> - <td align="center" valign="middle">*</td> - <td align="center" valign="middle">389, 636</td> - <td align="center" valign="middle">ausgehend</td> - <td valign="middle">Zertifikatsprüfung</td> + <td>LDAP</td> + <td>*</td> + <td>389, 636</td> + <td>ausgehend</td> + <td>Zertifikatsprüfung</td> </tr> <tr> - <td width="105" valign="middle"><p>OSCP / CRL</p></td> - <td width="275" align="center" valign="middle">*</td> - <td width="63" align="center" valign="middle">80, 443</td> - <td width="87" align="center" valign="middle">ausgehend</td> - <td width="702" valign="middle"><p>Zertifikatsprüfung</p></td> + <td><p>OSCP / CRL</p></td> + <td>*</td> + <td>80, 443</td> + <td>ausgehend</td> + <td><p>Zertifikatsprüfung</p></td> </tr> <tr> - <td valign="middle">OVS</td> - <td align="center" valign="middle"><p><strong>Prod:</strong> <a href="https://vollmachten.stammzahlenregister.gv.at/mis/">vollmachten.stammzahlenregister.gv.at</a><br> + <td>OVS</td> + <td>vollmachten.stammzahlenregister.gv.at</a><br> <strong>Test:</strong> <a href="https://vollmachten.egiz.gv.at/mis-test/">vollmachten.egiz.gv.at</a></p></td> - <td align="center" valign="middle">443</td> - <td align="center" valign="middle">ausgehend</td> - <td valign="middle">Online-Vollmachten Service (MIS) via SOAP Service</td> + <td>443</td> + <td>ausgehend</td> + <td>Online-Vollmachten Service (MIS) via SOAP Service</td> </tr> <tr> - <td height="46" valign="middle">SZR-Gateway</td> - <td align="left" valign="middle"><strong>Prod: </strong><a href="https://gateway.stammzahlenregister.gv.at/">gateway.stammzahlenregister.gv.at</a><br> + <td>SZR-Gateway</td> + <td>gateway.stammzahlenregister.gv.at</a><br> <strong>Test:</strong> <a href="http://szrgw.egiz.gv.at/">szrgw.egiz.gv.at</a></td> - <td align="center" valign="middle">443</td> - <td align="center" valign="middle">ausgehend</td> - <td valign="middle">Stammzahlenregister Gateway via SOAP Service</td> + <td>443</td> + <td>ausgehend</td> + <td>Stammzahlenregister Gateway via SOAP Service</td> </tr> </table> -<p> </p> -<p align="left"> </p> -<p> </p> - <p> </p> -<p> </p> + + </div> </body> </html> diff --git a/id/server/doc/handbook/application/application.html b/id/server/doc/handbook/application/application.html index 8dbae87ed..5fadafd9a 100644 --- a/id/server/doc/handbook/application/application.html +++ b/id/server/doc/handbook/application/application.html @@ -2,23 +2,24 @@ <html> <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" > + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>MOA-ID - Anwendungen</title> <link rel="stylesheet" href="../common/MOA.css" type="text/css"> + <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' 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="../index.html">MOA-ID (Identifikation) </a></p> -<p class="subtitle">Anwendungen</p> - <hr/> - <h1>Inhalt</h1> - <ol> + <div id="headline"> + <div class="container"> + <a href="http://www.digitales.oesterreich.gv.at/"><img src="../common/logo_digAT.png"/></a> + <a href="../index.html"><h1>MOA-ID-AUTH </h1></a> + <br/> + </div> + </div> + <div class="container"> +<h1 align="center">Anwendungen</h1> + + <h2>Inhalt</h2> + <ol class="index"> <li><a href="#allgemeines">Allgemeines</a></li> <li><a href="#bkuselection">Integration in bestehende Online-Applikationen</a> <ol> @@ -44,36 +45,36 @@ </ol> </li> </ol> - <hr/> - <h1><a name="allgemeines"></a>1 Allgemeines</h1> + + <h2><a name="allgemeines"></a>1 Allgemeines</h2> <p>Das erste Kapitel behandelt die Integration der von MOA-ID-Auth generierten Bürgerkartenauswahl in bestehende Online-Applikationen. Zusätzlich zur Beschreibung ist MOA-ID auch eine PVP 2.1 Demo Applikation beigelegt. Die Konfiguration und Verwendung dieser Demo Applikation ist Inhalt des letzten Kapitels.</p> -<h1><a name="bkuselection" id="allgemeines_zugangspunkte2"></a>2 Integration in bestehende Online-Applikationen</h1> +<h2><a name="bkuselection" id="allgemeines_zugangspunkte2"></a>2 Integration in bestehende Online-Applikationen</h2> <p>Ab MOA-ID 2.0 wird die Bürgerkartenauswahl und die Single Sign-On Anmeldeabfrage standardmäßig vom Modul MOA-ID-Auth bereitgestellt und muss nicht mehr durch den Service Provider implementiert werden.</p> <p>Die im Modul MOA-ID-Auth hinterlegten Standard Templates (<a href="./../config/config.html#import_template_bku">Bürgerkartenauswahl</a>, <a href="./../config/config.html#import_template_sso">Single Sign-On Anmeldeabfrage</a>) unterstützt Responsive Design und passt sich somit in einem weiten Bereich an die aktuelle Fenstergröße an, wodurch eine individuelle Integration der von MOA-ID-Auth erzeugten Formulare möglich ist. Zusätzlich bietet das Konfigurationstool die Möglichkeit der <a href="./../config/config.html#konfigurationsparameter_oa_additional_formular">online-applikationsspezifischen Anpassung der Standard Templates</a>. Mit dieser Funktion können einzelne Parameter der Standard Templates an die Online-Applikation individualisiert werden um die Integration weiter zu verfeinern.</p> <p><strong>Hinweis:</strong> Es besteht jedoch auch die Möglichkeit der Hinterlegung von vollständig benutzerdefinierten online-applikationsspezifischen Templates für die Bürgerkartenauswahl und die Single Sign-On Anmeldeabfrage (siehe <a href="./../config/config.html#konfigurationsparameter_oa_bku">hier</a>).</p> -<h2><a name="bkuselection" id="allgemeines_zugangspunkte6"></a>2.1 Bürgerkartenauswahl</h2> +<h3><a name="bkuselection" id="allgemeines_zugangspunkte6"></a>2.1 Bürgerkartenauswahl</h3> <p>Die Bürgerkartenauswahl wird ab MOA-ID 2.0 standardmäßig von MOA-ID-Auth, als Antwort auf einen eingehenden Authentifizierungsrequest, bereitgestellt. Dem zu Folge müssen die aus MOA-ID 1.5.1 bekannten Parameter (target, bkuURL, template, usemandate) nicht mehr im Authentifizierungsrequest an MOA-ID-Auth übergeben werden und es kann ein standardkonformer Protokollrequest verwendet werden. Die aus MOA-ID 1.5.1 bekannte Variante der Bürgerkartenauswahl in der Online-Applikation des Service Providers steht jedoch weiterhin als <a href="./../protocol/protocol.html#allgemeines_legacy">Legacy Variante</a> zur Verfügung.</p> <p>Die Integration der von MOA-ID-Auth bereitgestellten Bürgerkartenauswahl in eine bestehende Online-Applikation kann auf zwei Arten erfolgen. Bei beiden Varianten erfolgt der Login Vorgang (senden des Authentifizierungsrequests an MOA-ID-Auth) durch den Klick auf einen Login Button. Die Auswahl der Bürgerkartenumgebung erfolgt somit erst im zweiten Schritt. Das Sequenzdiagramm eines solchen Anmeldevorgangs finden Sie <a href="./../intro/intro.html#ablauf">hier</a> und die nachfolgende Grafik zeigt ein Beispiel zur Integration eines Login Buttons.</p> -<p><img src="login_button.PNG" width="853" height="683" alt="Integration Login Button"></p> -<h3><a name="bkuselection_iframe" id="allgemeines_zugangspunkte5"></a>2.1.1 Request aus einem iFrame</h3> +<div class="largeImgDiv"><img src="login_button.PNG" alt="Integration Login Button"></div> +<h4><a name="bkuselection_iframe" id="allgemeines_zugangspunkte5"></a>2.1.1 Request aus einem iFrame</h4> <p>Bei dieser Variante wird der Authentifizierungsrequests aus einem iFrame, welcher in die Online-Applikation eingebunden ist, abgesetzt. MOA-ID-Auth antwortet auf diesen Request mit der konfigurierten Bürgerkartenauswahl welche durch Verwendung des iFrame in die Online-Applikation eingebunden werden kann. Die nachfolgende Grafik zeigt ein Beispiel für die von MOA-ID-Auth bereitgestellte Bürgerkartenauswahl, welche nach Betätigung des Login Buttons im iFrame dargestellt wird. </p> -<p><img src="iframe.png" width="752" height="764" alt="Bürgerkartenauswahl im iFrame"></p> +<div class="largeImgDiv"><img src="iframe.png" alt="Bürgerkartenauswahl im iFrame"></div> <p><strong>Hinweis:</strong> Bei dieser Variante wird die Assertion ebenfalls an den iFrame ausgeliefert wodurch der authentifizierte Bereich der Online-Applikation im iFrame dargestellt wird. Dieses Verhalten kann durch eine <a href="./../config/config.html#konfigurationsparameter_oa_additional_formular">online-applikationsspezifischen Anpassung der Standard Templates</a> und dem Parameter <em>Targetparameter</em> unterbunden werden.</p> -<h3><a name="bkuselection_mainframe" id="allgemeines_zugangspunkte7"></a>2.1.2 Request aus dem Hauptframe</h3> +<h4><a name="bkuselection_mainframe" id="allgemeines_zugangspunkte7"></a>2.1.2 Request aus dem Hauptframe</h4> <p>Bei dieser Variante wird der Authentifizierungsrequests direkt aus dem aktuell offenen Browserfenster an MOA-ID-Auth gesendet. In diesem Fall wird die Bürgerkartenauswahl fensterfüllend im Browser dargestellt und die Benutzerin oder der Benutzer befindet sich nicht mehr in der Domain der Online-Applikation (Service Provider). Nach erfolgreicher Authentifizierung wird die Benutzerin oder der Benutzer an die Online-Applikation zurückgeleitet. Die nachfolgende Grafik zeigt die Bürgerkartenauswahl im seitenfüllenden Layout.</p> -<p><img src="mainframe.PNG" width="1330" height="822" alt="Bürgerkartenauswahl im seitenfüllenden Layout"></p> -<h2><a name="ssoquestion" id="allgemeines_zugangspunkte3"></a> 2.2 Single Sign-On Anmeldeabfrage</h2> +<div class="largeImgDiv"><img src="mainframe.PNG" alt="Bürgerkartenauswahl im seitenfüllenden Layout"></div> +<h3><a name="ssoquestion" id="allgemeines_zugangspunkte3"></a> 2.2 Single Sign-On Anmeldeabfrage</h3> <p>Wird für die Integration in die Online-Applikation die Variante mit dem Login Button und der von MOA-ID-Auth bereitgestellten Bürgerkartenauswahl verwendet (<a href="#bkuselection_iframe">iFrame</a> oder <a href="#bkuselection_mainframe">Hauptframe</a>), ergeben sich für die Single Sign-On Anmeldeabfrage keine zusätzlichen Anforderungen. Im Falle einer aktiven Single Sign-On Session, würde MOA-ID-Auth mit der Single Sign-On Anmeldeabfrage anstatt der Bürgerkartenauswahl antworten. Auch in diesem Fall stehen beide Möglichkeiten der Integration, identisch zum Kapitel Bürgerkartenauswahl, zur Verfügung. Die nachfolgende Grafik zeigt eine Single Sign-On Abfrage welche je nach verwendeter Variante die Bürgerkartenauswahl, in den zuvor gezeigten Beispielen, ersetzen würde.</p> -<p><img src="sso_sendassertion.PNG" width="383" height="240" alt="Single Sign-On Anmeldeabfrage"></p> +<div class="largeImgDiv"><img src="sso_sendassertion.PNG" alt="Single Sign-On Anmeldeabfrage"></div> <p><strong>Hinweis:</strong> Wird für die Integration der Bürgerkartenauswahl jedoch die <a href="./../protocol/protocol.html#allgemeines_legacy">Legacy Variante</a> verwendet (direkte Integration der Bürgerkartenauswahl in die Online-Applikation) kann es zu Inkompatibilitäten mit der Single Sign-On Anmeldeabfrage kommen, da diese Abfrage von MOA-ID-Auth generiert werden muss und eine direkte Integration in eine Online-Applikation nicht möglich ist. </p> -<h2><a name="DemoApp" id="allgemeines_zugangspunkte4"></a>3 Demo Applikationen</h2> +<h3><a name="DemoApp" id="allgemeines_zugangspunkte4"></a>3 Demo Applikationen</h3> <p>Dieser Abschnitt behandelt die Konfiguration und Verwendung der bei MOA-ID beigelegten Demo Applikationen.</p> -<h2><a name="DemoApp_pvp21" id="allgemeines_zugangspunkte"></a>3.1 PVP 2.1 Demo</h2> +<h3><a name="DemoApp_pvp21" id="allgemeines_zugangspunkte"></a>3.1 PVP 2.1 Demo</h3> <p>Die PVP 2.1 Demo stellt das Minimalbeispiel einer Online-Applikation dar, welche zur Authentifizierung das Protokoll PVP 2.1 verwendet. Die nachfolgenden Abschnitte beschreiben die Installation, Konfiguration und Verwendung der PVP 2.1 Demo Applikation.</p> <p><strong>Hinweis:</strong> Der Source Code der PVP 2.1 Demo Applikation ist im Order <code>$MOA_ID_AUTH_INST/source/moa-id-oa</code> verfügbar. Jedoch ist die Validierung der PVP 2.1 Assertion in dieser Version nicht vollständig implementiert und müsste bei Verwendung in einem Produktivsystem noch erweitert werden.</p> -<h3><a name="DemoApp_pvp21_install" id="allgemeines_zugangspunkte9"></a>3.1.1 Installation</h3> +<h4><a name="DemoApp_pvp21_install" id="allgemeines_zugangspunkte9"></a>3.1.1 Installation</h4> <p>Für die Installation der Demo Applikation wird ein Apache Tomcat benötigt. Die Konfiguration dieser Tomcat Instanz ist identisch zur <a href="./../install/install.html#webservice_basisinstallation">Konfiguration der Tomcat Instanz</a> der Module MOA-ID-Auth und MOA-ID-Configuration.</p> -<h5><a name="DemoApp_pvp21_install_demooa" id="allgemeines_zugangspunkte10"></a>3.1.1.1 Einsatz der Demo Applikation in Tomcat</h5> +<h6><a name="DemoApp_pvp21_install_demooa" id="allgemeines_zugangspunkte10"></a>3.1.1.1 Einsatz der Demo Applikation in Tomcat</h6> <ul> <li>Die Datei <code>$MOA_ID_AUTH_INST/moa-id_oa.war</code> enthält das einsatzfertige Webarchiv der Demo Applikation und muss ins Verzeichnis <code>$CATALINA_HOME/webapps</code> kopiert werden. Dort wird sie beim ersten Start von Tomcat automatisch ins Verzeichnis <code>$CATALINA_HOME/webapps/moa-id-oa</code> entpackt. </li> <li>Die Konfigurationsdatei mit der Basiskonfiguration für die Demo Applikation und die zugehörigen Verzeichnisse müssen in ein beliebiges Verzeichnis im Dateisystem kopiert werden (z.B. <code>$CATALINA_HOME/conf/moa-id-oa</code>). Eine funktionsfähige Konfiguration, die als Ausgangspunkt für die Basiskonfiguration der Demo Applikation dienen kann, finden Sie <a href="../../../conf/moa-id-oa/oa.properties">hier</a>. <br> @@ -89,7 +90,7 @@ </ul> </li> </ul> -<h4><a name="DemoApp_pvp21_install_start" id="allgemeines_zugangspunkte11"></a>3.1.1.2 Einsatz der Demo Applikation in Tomcat</h4> +<h5><a name="DemoApp_pvp21_install_start" id="allgemeines_zugangspunkte11"></a>3.1.1.2 Einsatz der Demo Applikation in Tomcat</h5> <p>Das starten und stoppen der Demo Applikation erfolgt identisch zur Beschreibung für die Module MOA-ID-Auth und MOA-ID-Configuration.</p> <p>Ein erfolgreicher Start der Demo Applikation ist an folgender Log-Meldung ersichtlich:</p> <pre>INFO at.gv.egovernment.moa.id.demoOA.Configuration - Demo Application initializaten finished.</pre> @@ -99,15 +100,15 @@ <pre> https://<host>:<port>/moa-id-oa/ </pre> -<h3><a name="DemoApp_pvp21_config" id="allgemeines_zugangspunkte8"></a>3.1.2 Konfiguration Demo Applikation</h3> +<h4><a name="DemoApp_pvp21_config" id="allgemeines_zugangspunkte8"></a>3.1.2 Konfiguration Demo Applikation</h4> <p>Die zentrale Konfigurationsdatei für die Demo Applikation wird der <span class="term">Java Virtual Machine</span>, in der die Demo Applikation läuft, durch eine <span class="term">System Property </span> mitgeteilt (wird beim Starten der <span class="term">Java Virtual Machine</span> in der Form <code>-D<name>=<wert></code> gemacht). Der Name der <span class="term">System Property</span> lautet <code>moa.id.demoOA</code> als Wert der <span class="term">System Property</span> ist der Pfad sowie der Name der Konfigurationsdatei im Dateisystem anzugeben, z.B.</p> <pre>moa.id.demoOA=C:/Programme/apache/tomcat-4.1.30/conf/moa-id-oa/oa.properties</pre> <p>Diese Konfigurationsdatei beinhaltet folgende Parameter. </p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="395" scope="col">Name</th> - <th width="271" scope="col">Beispielwert</th> - <th width="559" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>general.publicURLContext</td> @@ -200,9 +201,9 @@ http://<host>:<port>/moa-id-oa/servlet/metadata</pre> <pre> https://<host>:<port>/moa-id-oa/servlet/metadata</pre> <p>Nach erfolgreicher Konfiguration muss die Tomcat Instanz neu gestartet werden.</p> -<h3><a name="DemoApp_pvp21_config_moaidauth" id="allgemeines_zugangspunkte13"></a>3.1.3 Konfiguration von MOA-ID-Auth</h3> +<h4><a name="DemoApp_pvp21_config_moaidauth" id="allgemeines_zugangspunkte13"></a>3.1.3 Konfiguration von MOA-ID-Auth</h4> <p>Bevor ein Anmeldevorgang gestartet werden kann muss die Demo Applikation auch als Online-Applikation für das Modul MOA-ID-Auth konfiguriert werden. Hierfür kann das Konfigurationstool (Modul MOA-ID-Configuration) verwendet werden. Tragen Sie die Demo Applikation als Online-Applikation bei Ihrer MOA-ID-Auth Instanz ein. Eine Beschreibung der einzelnen Konfigurationsparameter finden Sie <a href="./../config/config.html#konfigurationsparameter_oa">hier</a>.</p> -<h3><a name="DemoApp_pvp21_use" id="allgemeines_zugangspunkte12"></a>3.1.4 Anwendung</h3> +<h4><a name="DemoApp_pvp21_use" id="allgemeines_zugangspunkte12"></a>3.1.4 Anwendung</h4> <p>Nach dem Starten von Tomcat steht die Demo Applikation zur Verfügung.</p> <pre>http://<host>:<port>/moa-id-oa/</pre> <p>bzw. </p> @@ -214,5 +215,6 @@ https://<host>:<port>/moa-id-oa/ <p>Nach erfolgreicher Authentifizierung werden Sie an die Demo Applikation zurückgeleite. Diese extrahiert einige Basisdaten aus der PVP 2.1 Assertion und stellt diese im Browser dar. Zusätzlich kann die gesamte übertragene PVP 2.1 Assertion angezeigt werden.</p> <p>Wurde der Anmeldevorgang durch einen Fehler abgebrochen werden Sie ebenfalls an die Demo Applikation zurückgeleitet. In diesem Fall wird eine kurze Fehlerbeschreibung dargestellt. Eine ausführliche Fehlerbeschreibung kann der PVP 2.1 Assertion entnommen werden.</p> <p> </p> + </div> </body> </html> diff --git a/id/server/doc/handbook/common/LogoBKA.png b/id/server/doc/handbook/common/LogoBKA.png Binary files differdeleted file mode 100644 index 6a92647fd..000000000 --- a/id/server/doc/handbook/common/LogoBKA.png +++ /dev/null diff --git a/id/server/doc/handbook/common/MOA.css b/id/server/doc/handbook/common/MOA.css index f76ea53d4..f8fd01d8c 100644 --- a/id/server/doc/handbook/common/MOA.css +++ b/id/server/doc/handbook/common/MOA.css @@ -1,353 +1,77 @@ +.container { + margin: auto; + max-width: 1000px; + padding-left: 20px; + padding-right: 20px; +} + body { - font-family: "Times New Roman", Times, serif; + font-family: "Roboto", sans-serif; + + color: #000; font-size: medium; - font-weight: normal; - margin-left: 2.5em; - margin-right: 2.5em; + font-weight: 300; + margin-left: 0px; + margin-right: 0px; + margin-top: 0px; background-color: white; - text: #000000; - link: #990000; - vlink: #666666; - alink: #cc9966; -} + letter-spacing: 0.05em; +} +b{ + font-weight: 500; +} p { margin-top: 0pt; margin-bottom: 0.5em; - text-align: justify -} - -pre -{ - font-family: "Courier New", monospace; - font-size: 90%; - background-color: #cccccc; - color: #000000; - margin-left:1.5%; - margin-right:1.5%; - margin-top: 1em; - margin-bottom: 1em; - border: #008000 none; -} - -hr -{ - color: #000080; - background-color: #000080; - margin-top: 0.5em; - margin-bottom: 0.5em; -} - -table.fixedWidth -{ - width: 97%; - margin-left:1.5%; - margin-right:1.5%; - margin-top: 1em; - margin-bottom: 1em; -} - - -table.varWidth -{ - margin-left:1.5%; - margin-top: 1em; - margin-bottom: 1em; -} - -th -{ - text-align: left; -} - -h1 -{ - color: #000000; - text-align: left; - font-size: 167%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal; - background-color:#999; -} - -h2 -{ - color: #000000; - font-size: 150%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal; - background-color:#999; -} - -h3 -{ - color: #000000; - font-size: 133%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal; - background-color:#999; -} - -h4 -{ - color: #000000; - font-size: 116%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal; - background-color:#999; -} - -h5 -{ - color: #000000; - font-size: 100%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal; - background-color:#999; -} - -h6 -{ - color: #000000; - font-size: 83%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal; - background-color:#999; -} - -code -{ - font-family: "Courier New", Courier, monospace; - font-size: 90%; - color: #000000 -} - -dd -{ - margin-top: 0.8em; - margin-bottom: 0.8em; - text-align: justify - -} - -dt -{ - margin-top: 0.8em; - font-family: Arial, Helvetica, sans-serif; - color: #000080 -} - -ol -{ - margin-top: 0.5em; - margin-bottom: 0.5em -} - -ol.alpha -{ - list-style-type: lower-alpha -} - -li -{ - margin-top: 0.25em; - margin-bottom: 0.25em; - text-align: justify -} - -a:hover -{ - color: #990000 -} - - -.title -{ - text-align: left; - font-size: 200%; - color: #000000; - font-family: Arial, Helvetica, sans-serif; - margin-top: 0.4em; - margin-bottom: 0.4em; - background-color:#999; -} - -.subtitle -{ - text-align: left; - font-size: 133%; - color: #000000; - font-family: Arial, Helvetica, sans-serif; - margin-top: 0.4em; - margin-bottom: 0.4em -} - -.glossaryTerm -{ - font-style: italic; - color: #006699 -} - -.example -{ - font-family: "Courier New", monospace; - background-color: #CCFFFF; - color: #000000; - margin: 0pt 0pt; - border: #008000 none -} - -.schema -{ - font-family: "Courier New", monospace; - background-color: #FFFFCC; - color: #000000; - margin: 0pt 0pt; - border: #008000 none -} + text-align: justify; -.documentinfo -{ - font-family: Arial, Helvetica, sans-serif; - font-size: 100%; } -.ol-contents -{ - font-size: 100%; - margin-top: 0.0em; - margin-bottom: 0.0em; +.centeredimage{ + text-align: center; + width:100%; } -.li-contents -{ - font-size: 100%; - margin-top: 0.0em; - margin-bottom: 0.0em; +.index{ + padding-left: 0; } - -.logoTitle -{ - text-align: center; - font-size: 200%; - color: #000080; - font-family: Arial, Helvetica, sans-serif; +.index a{ + color: #666; } - -.logoTable -{ - margin-bottom: 0px; - margin-left: 0px -} - -.superscript -{ - vertical-align: super; - font-size: 66%; -} - -.term -{ - font-style: italic; -} - -.strongerterm -{ - font-style: italic; - font-weight: 600; -} - - -.comment -{ - color: #000000; - background: #ffff00; - font-style: italic -} - -.addedErrata12 -{ - color: #FF0000; - background-color: #FFEEEE; - text-decoration: underline -} - -.deletedErrata12 -{ - color: #999999; - background-color: #EEEEEE; - text-decoration: line-through -} - -.added12 -{ - color: #FF0000; - text-decoration: underline -; background-color: #F8F0FF -} - -.deleted12 +.index a:hover { - color: #999999; - text-decoration: line-through -; background-color: #f8f0ff + color:#E10319; } - -.rfc2119Keyword -{ - font-variant: small-caps; - font-style: normal; +.index ul{ + list-style-type: none; } - -.remark { font-style: italic} - -li.faq -{ - margin-top: 1.5em; - margin-bottom: 1.5em; +.index li{ + list-style-type: none; } -.faq-question -{ - color: #000080; - font-size: 100%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal; - margin-bottom: 0.4em; +td{ + font-weight: 300; } -/*body -{ - font-family: "Times New Roman", Times, serif; - font-size: medium; - font-weight: normal; - margin-left: 2.5em; - margin-right: 2.5em; -} - -p -{ - margin-top: 0pt; - margin-bottom: 0.5em; - text-align: justify -} pre { font-family: "Courier New", monospace; font-size: 90%; - background-color: #cccccc; + background-color: #DDD; color: #000000; margin-left:1.5%; margin-right:1.5%; margin-top: 1em; margin-bottom: 1em; border: #008000 none; + white-space: pre-wrap; } hr @@ -365,9 +89,8 @@ table.fixedWidth margin-right:1.5%; margin-top: 1em; margin-bottom: 1em; + color:#404040; } - - table.varWidth { margin-left:1.5%; @@ -375,86 +98,114 @@ table.varWidth margin-bottom: 1em; } +table.configtable{ + width:100%; + border-collapse: collapse; + border-style:solid; + border-color: #404040; + border-width: 2px; + font-family: "Roboto",sans-serif +} +table.configtable th{ + border-style:solid; + border-color: #404040; + border-width: 2px; + padding:3px; +} +table.configtable th{ + font-weight: 300; + font-size: 120%; +} +table.configtable td{ + border-style:solid; + border-color: #404040; + border-width: 1px; + border-left-width: 2px; + border-right-width: 2px; + padding:3px; + font-weight: 300; +} + + th { text-align: left; + } h1 -{ - color: #000080; - text-align: left; - font-size: 167%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal +{ + font-size: 220%; + font-weight: 400; } h2 { - color: #000080; - font-size: 150%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal + letter-spacing: 1px; + font-size: 170%; + font-weight: 300; + } h3 { - color: #000080; - font-size: 133%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal + letter-spacing: 1px; + font-size: 160%; + font-weight: 300; } h4 { - color: #000080; - font-size: 116%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal + letter-spacing: 1px; + font-size: 150%; + font-weight: 300; + } h5 { - color: #000080; - font-size: 100%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal + letter-spacing: 1px; + font-size: 140%; + font-weight: 300; } h6 { - color: #000080; - font-size: 83%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal + letter-spacing: 1px; + font-size: 130%; + font-weight: 300; } code { - font-family: "Courier New", Courier, monospace; + font-family: "Roboto","Courier New", Courier, monospace; font-size: 90%; - color: #000000 + font-weight: 400; + color: #000000; } dd { margin-top: 0.8em; margin-bottom: 0.8em; - text-align: justify + text-align: justify; } dt { margin-top: 0.8em; - font-family: Arial, Helvetica, sans-serif; - color: #000080 + color: #E10319; +} +dt a{ + text-decoration:none; } ol { margin-top: 0.5em; - margin-bottom: 0.5em + margin-bottom: 0.5em; + padding-left:0.8em; } ol.alpha @@ -466,31 +217,35 @@ li { margin-top: 0.25em; margin-bottom: 0.25em; - text-align: justify + text-align: justify; } a:hover { - color: #990000 + color: #E10319; +} +a{ + color: #666; + text-decoration: none; } .title { text-align: left; - font-size: 167%; - color: #000080; - font-family: Arial, Helvetica, sans-serif; + font-size: 200%; + color: #000000; + font-family: "Roboto", sans-serif; margin-top: 0.4em; - margin-bottom: 0.4em + margin-bottom: 0.4em; } .subtitle { text-align: left; font-size: 133%; - color: #000080; - font-family: Arial, Helvetica, sans-serif; + color: #000000; + font-family: "Roboto", sans-serif; margin-top: 0.4em; margin-bottom: 0.4em } @@ -503,7 +258,7 @@ a:hover .example { - font-family: "Courier New", monospace; + font-family: "Roboto", sans-serif; background-color: #CCFFFF; color: #000000; margin: 0pt 0pt; @@ -521,7 +276,7 @@ a:hover .documentinfo { - font-family: Arial, Helvetica, sans-serif; + font-family: "Roboto", sans-serif; font-size: 100%; } @@ -542,19 +297,21 @@ a:hover .logoTitle { text-align: center; - font-size: 133%; - color: #000080; - font-family: Arial, Helvetica, sans-serif; + font-size: 200%; } .logoTable { margin-bottom: 0px; - margin-left: 0px + margin-left: 0px; + background: linear-gradient(#FAFAFA, #F5F5F5); + border-bottom: 1px solid #EEE; + border-color: #818286; + } .superscript -{ +{ vertical-align: super; font-size: 66%; } @@ -564,6 +321,13 @@ a:hover font-style: italic; } +.strongerterm +{ + font-style: italic; + font-weight: 500; +} + + .comment { color: #000000; @@ -588,8 +352,8 @@ a:hover .added12 { color: #FF0000; - text-decoration: underline -; background-color: #F8F0FF + text-decoration: underline; + background-color: #F8F0FF; } .deleted12 @@ -617,8 +381,121 @@ li.faq { color: #000080; font-size: 100%; - font-family: Arial, Helvetica, sans-serif; - font-weight: normal; + font-family: "Roboto", sans-serif; + font-weight: 300; margin-bottom: 0.4em; } -*/ +/*********************************/ +@media ( min-width :600px) { + #headline { + /*background: linear-gradient(center top , #FAFAFA, #F5F5F5) repeat scroll 0% 0% transparent;*/ + background: linear-gradient(#FAFAFA, #F5F5F5); + border-bottom: 1px solid #EEE; + + } + #headline br { + clear: both; + } + + #headline h1 { + color: #404040; + padding-right: 1em; + padding-top: 0.15em; + margin-bottom: 0; + float: right; + } + #headline img { + width: 300px; + padding-left: 0; + padding-top: 35px; + padding-bottom:20px; + } + + .smallImgDiv{ + width:50%; + margin:auto; + margin-bottom:40px; + margin-top:20px; + } + .smallImgDiv img{ + max-width: 100%; + max-height: 100%; + margin:auto; + display: block; + } + .largeImgDiv{ + width:100%; + margin: auto; + margin-bottom:40px; + margin-top:20px; + } + .largeImgDiv img{ + max-width: 100%; + max-height: 100%; + margin:auto; + display: block; + } +} +/*****************************/ +@media ( max-width :599px) { + #headline { + /*background: linear-gradient(center top , #FAFAFA, #F5F5F5) repeat scroll 0% 0% transparent;*/ + background: linear-gradient(#FAFAFA, #F5F5F5); + border-bottom: 1px solid #EEE; + } + + #headline img { + width: 150px; + padding-left: 0; + padding-top: 0.5em; + padding-bottom:0.5em; + } + #headline br { + clear: both; + } + #demologin { + width: 100%; + box-sizing: border-box; + border: 1px solid; + border-radius: 1px; + border-color: #818286; + background: #F5F5F5; + height: 182px; + width: 242px; + margin-top: 18px; + padding-left:0; + } + #headline h1 { + color: #404040; + padding: 0; + margin-bottom: 0; + margin-top: 0; + text-align: center; + } + .smallImgDiv{ + width:100%; + margin:auto; + margin-bottom:40px; + margin-top:20px; + } + .smallImgDiv img{ + max-width: 100%; + max-height: 100%; + margin:auto; + display: block; + } + .largeImgDiv{ + width:100%; + margin: auto; + margin-bottom:40px; + margin-top:20px; + } + .largeImgDiv img{ + max-width: 100%; + max-height: 100%; + margin:auto; + display: block; + } +} + + diff --git a/id/server/doc/handbook/common/logo_digAT.png b/id/server/doc/handbook/common/logo_digAT.png Binary files differnew file mode 100644 index 000000000..4f36681e2 --- /dev/null +++ b/id/server/doc/handbook/common/logo_digAT.png diff --git a/id/server/doc/handbook/config/config.html b/id/server/doc/handbook/config/config.html index 9b4190035..f5292f76a 100644 --- a/id/server/doc/handbook/config/config.html +++ b/id/server/doc/handbook/config/config.html @@ -2,23 +2,25 @@ <html> <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" > + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>MOA-ID - Konfiguration</title> <link rel="stylesheet" href="../common/MOA.css" type="text/css"> + <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' 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="../index.html">MOA-ID (Identifikation) </a></p> -<p class="subtitle">Konfiguration</p> - <hr/> -<h1>Inhalt</h1> - <ol> + + <div id="headline"> + <div class="container"> + <a href="http://www.digitales.oesterreich.gv.at/"><img src="../common/logo_digAT.png"/></a> + <a href="../index.html"><h1>MOA-ID-AUTH </h1></a> + <br/> + </div> + </div> +<div class="container"> +<h1 align="center">Konfiguration<h1> + +<h2>Inhalt</h2> + <ol class="index"> <li> <p><a href="#uebersicht">Übersicht</a></p> <ol> @@ -75,6 +77,7 @@ </li> <li> <a href="#basisconfig_moa_id_auth_param_testing">Testing</a></li> <li><a href="#basisconfig_moa_id_auth_szrclient">SZR Client für STORK <-> PVP Gateway Betrieb</a></li> + <li><a href="#basisconfig_moaid_stork2">STORK 2.0</a></li> </ol> </li> </ol> @@ -152,14 +155,14 @@ <li><a href="#sp-config">Konfiguration von MOA-SP</a></li> <li><a href="#security">Tomcat Security Manager</a></li> </ol> -<ol type="A"> +<ol type="A" class="index"> <li><a href="#referenzierte_spezifikation">Referenzierte Spezifikation</a></li> </ol> -<hr/> - <h1><a name="uebersicht" id="uebersicht"></a>1 Übersicht </h1> + + <h2><a name="uebersicht" id="uebersicht"></a>1 Übersicht </h2> <p>Dieses Handbuch beschreibt detailliert die Konfigurationsmöglichkeiten für die Module MOA-ID-Auth und MOA-ID-Configuration. Wobei das zentrale Einsatzgebiet des Modules MOA-ID-Configuration die Konfiguration des Modules MOA-ID-Auth darstellt.</p> <p>Die Konfiguration der beiden Module MOA-ID-Auth und MOA-ID-Configuration kann in zwei Teilbereiche unterteilt werden. Der erste Abschnitt behandelt die Basiskonfiguration der beiden Module, welche in textueller Form mit Hilfe von properties-Konfigurationsdateien erfolgt. Der zweite Abschnitt behandelt die Konfiguration des Modules MOA-ID-Auth unter Zuhilfenahme des Modules MOA-ID-Configuration.</p> - <h2><a name="uebersicht_ablauf" id="uebersicht2"></a>1.1 Empfohlener Konfigurationsablauf</h2> + <h3><a name="uebersicht_ablauf" id="uebersicht2"></a>1.1 Empfohlener Konfigurationsablauf</h3> <ol> <li><a href="#moa_id_config_parameters">Basiskonfiguration des Modules MOA-ID-Configuration</a></li> <li><a href="#moa_id_config_init">Initialisierung des Modules MOA-ID-Configuration</a></li> @@ -168,24 +171,24 @@ <li><a href="#konfigurationsparameter_oa">Konfiguration von Online-Applikationen</a></li> </ol> <p>Optional kann nach dem Schritt 3 Basiskonfiguration des Modules MOA-ID-Auth eine <a href="#import_export_legacy">bestehende MOA-ID 1.5.1 Konfiguration importiert</a> werden. Für bestehende Konfigurationen < 1.5.1 wird eine vollständige Neukonfiguration empfohlen.</p> -<h1><a name="uebersicht_zentraledatei" id="uebersicht_zentraledatei"></a>2 Basiskonfiguration</h1> +<h2><a name="uebersicht_zentraledatei" id="uebersicht_zentraledatei"></a>2 Basiskonfiguration</h2> <p>Die Basiskonfiguration für die Module MOA-ID-Auth und MOA-ID-Configuration erfolgt mit Hilfe textueller properties-Dateien. Diese properties-Dateien beinhalten alle Konfigurationsparameter welche für den Start der Module erforderlich sind und müssen der Java Virtual Machine durch eine System Property mitgeteilt werden. Alle Änderungen die an der Basiskonfiguration vorgenommen werden erfordern einen Neustart der jeweiligen Java Virtual Machine.</p> <p><strong>Hinweis:</strong> Alle URL Konfigurationsparameter auf Dateien ohne den Prefix <em>file:/</em> werden als relative Pfadangaben zum Konfigurationsbasisverzeichnis des jeweiligen Modules interpretiert.</p> -<h2><a name="uebersicht_zentraledatei_aktualisierung" id="uebersicht_zentraledatei_aktualisierung"></a>2.1 MOA-ID-Configuration</h2> +<h3><a name="uebersicht_zentraledatei_aktualisierung" id="uebersicht_zentraledatei_aktualisierung"></a>2.1 MOA-ID-Configuration</h3> <p>Dieser Abschnitt behandelt die Basiskonfiguration des Modules MOA-ID-Configuration. Der erste Teilabschnitt behandelt die Bekanntmachung der Konfigurationsdatei mittels einer System Property und der zweite Teilabschnitt beschreibt die einzelnen Konfigurationsparameter im Detail. Eine Konfiguration die als Ausgangspunkt für die individuelle Konfiguration verwendet werden kann finden Sie <a href="../../conf/moa-id-configuration/moa-id-configtool.properties">hier</a>.</p> -<h3><a name="moa_id_config_property" id="uebersicht_zentraledatei_aktualisierung7"></a>2.1.1 Bekanntmachung der Konfigurationsdatei</h3> +<h4><a name="moa_id_config_property" id="uebersicht_zentraledatei_aktualisierung7"></a>2.1.1 Bekanntmachung der Konfigurationsdatei</h4> <p>Die zentrale Konfigurationsdatei von MOA-ID-Configuration wird der <span class="term">Java Virtual Machine</span>, in der MOA-ID-Configuration läuft, durch eine <span class="term">System Property </span> mitgeteilt (wird beim Starten der <span class="term">Java Virtual Machine</span> in der Form <code>-D<name>=<wert></code> gemacht). Der Name der <span class="term">System Property</span> lautet <code>moa.id.webconfig</code> als Wert der <span class="term">System Property</span> ist der Pfad sowie der Name der Konfigurationsdatei im Dateisystem anzugeben, z.B.</p> <pre>moa.id.webconfig=C:/Programme/apache/tomcat-4.1.30/conf/moa-id-configuration/moa-id-configuration.properties</pre> <p>Weitere Informationen zum Bekanntmachen der zentralen Konfigurationsdatei für MOA-ID-Configuration erhalten Sie in <a href="../install/install.html#moa_id_configuration_deploy">Abschnitt 2.1.2.4</a> des Installationshandbuchs.</p> -<h3><a name="moa_id_config_parameters" id="uebersicht_zentraledatei_aktualisierung8"></a>2.1.2 Konfigurationsparameter</h3> +<h4><a name="moa_id_config_parameters" id="uebersicht_zentraledatei_aktualisierung8"></a>2.1.2 Konfigurationsparameter</h4> <p>Aus Gründen der Übersichtlichkeit werden die einzelnen Konfigurationsparameter in logisch zusammenhängende Blöcke unterteilt. Die Konfiguration der Blöcke <a href="#moa_id_config_parameters_generel">Allgemeine Konfigurationsparameter</a> und <a href="#moa_id_config_parameters_database">Datenbankzugriff</a> sind nicht optional und müssen für den Betrieb angepasst werden. </p> -<h4><a name="moa_id_config_parameters_generel" id="uebersicht_zentraledatei_aktualisierung9"></a>2.1.2.1 Allgemeine Konfigurationsparameter</h4> +<h5><a name="moa_id_config_parameters_generel" id="uebersicht_zentraledatei_aktualisierung9"></a>2.1.2.1 Allgemeine Konfigurationsparameter</h5> <p>Die folgenden Konfigurationsparameter sind nicht optional und müssen in der Konfigurationsdatei enthalten sein und individuell angepasst werden.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="176" scope="col">Name</th> - <th width="222" scope="col">Beispielwert</th> - <th width="827" scope="col">Beschreibung</th> + <th scope="col">Name</th> + <th scope="col">Beispielwert</th> + <th scope="col">Beschreibung</th> </tr> <tr> <td>general.login.deaktivate</td> @@ -230,13 +233,13 @@ <td>Innerhalb dieses Zeitraums muss ein neuer Benutzer die im Benutzerprofil hinterlegte eMail Adresse validieren. </td> </tr> </table> -<h4>2.1.2.3 Datenbankzugriff</h4> +<h5>2.1.2.3 Datenbankzugriff</h5> <p>Diese Konfigurationsparameter sind nicht optional und müssen in der Konfigurationsdatei enthalten sein und individuell angepasst werden. Für die Beispielkonfiguration wurde mySQL als Datenbank verwendet wodurch sich die Konfigurationsparameter auf mySQL beziehen. Das Modul MOA-ID-Configuration kann jedoch auch mit Datenbanken anderer Hersteller betrieben werden. Hierfür wird jedoch auf die <a href="http://docs.jboss.org/hibernate/core/4.2/manual/en-US/html/">Hibernate Dokumention</a> verwiesen, welches im Module MOA-ID-Configuration für den Datenbankzugriff verwendet wird. </p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="209" scope="col">Name</th> - <th width="223" scope="col">Beispielwert</th> - <th width="793" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>hibernate.dialect</td> @@ -266,13 +269,13 @@ </table> <p> </p> <p>Die Beispielkonfiguration beinhaltet noch zusätzliche Konfigurationsparameter für den Datenbankzugriff welche direkt aus der Beispielkonfiguration übernommen werden können. Eine detaillierte Beschreibung der einzelnen Einstellungsparameter kann der <a href="http://docs.jboss.org/hibernate/core/4.2/manual/en-US/html/">Hibernate Dokumention</a> entnommen werden.</p> -<h4><a name="moa_id_config_parameters_pvp2" id="uebersicht_zentraledatei_aktualisierung11"></a>2.1.2.4 Bürgerkarten LogIn</h4> +<h5><a name="moa_id_config_parameters_pvp2" id="uebersicht_zentraledatei_aktualisierung11"></a>2.1.2.4 Bürgerkarten LogIn</h5> <p>Zusätzlich zur Authentifizierung mittels Benutzername und Passwort unterstützt das Modul MOA-ID-Configuration auch eine Authentifizierung mittels Bürgerkarte oder Handy-Signatur unter Verwendung des <a href="./protocol/protocol.html">Authentifizierungsprotokolls PVP2.1</a>. Wenn eine Authentifizierung mittels Bürgerkarte oder Handy-Signatur gewünscht wird müssen die nachfolgen Parameter konfiguriert werden.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="395" scope="col">Name</th> - <th width="271" scope="col">Beispielwert</th> - <th width="559" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>general.login.pvp2.isactive</td> @@ -363,13 +366,13 @@ http://<host>:<port>/moa-id-configuration/servlet/metadata</pre> <p>bzw. </p> <pre> https://<host>:<port>/moa-id-configuration/servlet/metadata</pre> -<h4><a name="moa_id_config_parameters_mail" id="uebersicht_zentraledatei_aktualisierung12"></a>2.1.2.5 Mailversand</h4> +<h5><a name="moa_id_config_parameters_mail" id="uebersicht_zentraledatei_aktualisierung12"></a>2.1.2.5 Mailversand</h5> <p>Das Modul MOA-ID-Configuration bietet die Möglichkeit zur Generierung von automatischen Statusmeldungen welche via eMail versendet werden. Diese Statusmeldungen betreffen die Aktivierung neuer Online-Applikationen oder Benutzeraccounts und die Verifikation von eMail Adressen welche einem Benutzeraccount zugeordnet sind. Detailinformationen hierzu finden Sie im Abschnitt <a href="#moa_id_config_user">Benutzerverwaltung</a>.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="395" scope="col">Name</th> - <th width="271" scope="col">Beispielwert</th> - <th width="559" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>general.mail.host</td> @@ -453,7 +456,7 @@ https://<host>:<port>/moa-id-configuration/servlet/metadata</pre> </tr> </table> <p> </p> -<h3><a name="moa_id_config_init" id="uebersicht_zentraledatei_aktualisierung13"></a>2.1.3 Initialisierung des Modules MOA-ID-Configuration</h3> +<h4><a name="moa_id_config_init" id="uebersicht_zentraledatei_aktualisierung13"></a>2.1.3 Initialisierung des Modules MOA-ID-Configuration</h4> <p>Für den ersten Start muss die Authentifizierung deaktiviert werden (siehe <em>general.login.deaktivate</em> <a href="#moa_id_config_parameters_generel">Abschnitt 2.2.2.1</a>). Anschließend kann die Benutzerverwaltung des Modules MOA-ID-Configuration unter der folgenden Adresse aufgerufen werden.</p> <pre>http://<host>:<port>/moa-id-configuration/secure/usermanagementInit.action</pre> <p>bzw. </p> @@ -461,16 +464,16 @@ https://<host>:<port>/moa-id-configuration/servlet/metadata</pre> https://<host>:<port>/moa-id-configuration/secure/usermanagementInit.action</pre> <p>Mit Hilfe dieser Benutzerverwaltung kann ein neuer Benutzeraccount am Konfigurationstool angelegt und ein Kennwort für den Benutzer vergeben werden. Zusätzlich müssen dem neu erstellten Benutzer die Eigenschaften <em>aktiv</em> und <em>admin</em> zugewiesen werden. Nach dem speichern wird der neu angelegte Benutzer in der Liste aller vorhandenen Benutzern dargestellt.</p> <p>Hiermit ist die Initialisierung des Moduls MOA-ID-Configuration abgeschlossen und die Authentifizierung kann wieder aktiviert werden (siehe <em>general.login.deaktivate</em> <a href="#moa_id_config_parameters_generel">Abschnitt 2.2.2.1</a>). Anschließend muss die Java Virtual Machine, in welchem das Modul MOA-ID-Configuration betrieben wird, neu gestartet werden.</p> -<p><b>Hinweis:</b> Ein Betrieb des Moduls MOA-ID-Configuration ohne Authentifizierung ist ebenfalls möglich. In diesem Fall wird jedoch empfohlen den Zugriff auf das Konfigurationstool mit anderen Mitteln einzuschränken.</b></p> -<h3><a name="moa_id_config_user" id="uebersicht_zentraledatei_aktualisierung14"></a>2.1.4 Benutzerverwaltung</h3> +<p><b>Hinweis:</b> Ein Betrieb des Moduls MOA-ID-Configuration ohne Authentifizierung ist ebenfalls m\F6glich. In diesem Fall wird jedoch empfohlen den Zugriff auf das Konfigurationstool mit anderen Mitteln einzuschr\E4nken.</b></p> +<h4><a name="moa_id_config_user" id="uebersicht_zentraledatei_aktualisierung14"></a>2.1.4 Benutzerverwaltung</h4> <p>Das Modul MOA-ID-Configuration unterstützt die Benützung und Verwaltung unterschiedlicher Benutzeraccounts. Hierfür stellt die Web-Oberfläche des Modules MOA-ID-Configuration ein spezielles Interface zur Benutzerverwaltung zur Verfügung. </p> -<h4><a name="moa_id_config_user_add" id="uebersicht_zentraledatei_aktualisierung15"></a>2.1.4.1 Einen neuen Benutzer erstellen</h4> +<h5><a name="moa_id_config_user_add" id="uebersicht_zentraledatei_aktualisierung15"></a>2.1.4.1 Einen neuen Benutzer erstellen</h5> <p>Für die Registrierung eins neuen Benutzeraccounts werden folgende Informationen benötigt.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="215" scope="col">Name</th> - <th width="930" scope="col">Beschreibung</th> - <th width="80" align="center" scope="col">optional</th> + <th >Name</th> + <th >Beschreibung</th> + <th align="center">Optional</th> </tr> <tr> <td>Vorname</td> @@ -536,8 +539,8 @@ https://<host>:<port>/moa-id-configuration/secure/usermanagementInit <li><strong>Durch PVP 2.1 Login:</strong> Bei dieser Variante wird die Generierung eines neues Benutzeraccounts durch einen Loginversuch mittels Bürgerkarte oder Handy-Signatur ausgelöst. Nach erfolgreicher Authentifizierung wird die Benutzerin / der Benutzer an das Konfigurationstool weitergeleitet. Hierbei wird geprüft ob aktuell ein Benutzeraccount für diese Person existiert. Wenn kein Account existiert wird die Benutzerin / der Benutzer aufgefordert die fehlenden Informationen für die Registrierung eines neuen Benutzeraccounts einzutragen. In diesem Fall muss die eMail Adresse durch die Benutzerin / den Benutzer zwingend validiert werden wofür der <a href="#moa_id_config_parameters_mail">Mailversand</a> am Module MOA-ID-Configuration konfiguriert sein muss. Nach erfolgreicher Validierung der eMail Adresse ist der Benutzeraccount als nicht aktiv registriert und muss anschließend durch einen Administrator aktiviert werden. Erst nach erfolgreicher Aktivierung ist eine gültige Anmeldung möglich.<br> Sollte die Validierung der eMail Adresse nicht innerhalb des in <a href="#moa_id_config_parameters_generel">Abschnitt 2.2.1.1</a> konfigurierten Zeitraums erfolgen, wird die Benutzeranforderung automatisch gelöscht und die Benutzerin / der Benutzer muss sich erneut am Konfigurationstool registrieren.</li> </ol> -<h4><a name="moa_id_config_user_role" id="uebersicht_zentraledatei_aktualisierung16"></a>2.1.4.2 Benutzerrechte</h4> -<p>Alle Benutzer die Admin–Rechte (Eigenschaft <em>admin</em>) besitzen haben vollen Zugriff auf die gesamte Konfiguration der verwalteten MOA-ID-Auth Instanz. Benutzer ohne Admin-Rechten stehen nur folgende Operationen zur Verfügung wobei diese auch besondere Einschränkungen aufweisen können.</p> +<h5><a name="moa_id_config_user_role" id="uebersicht_zentraledatei_aktualisierung16"></a>2.1.4.2 Benutzerrechte</h5> +<p>Alle Benutzer die Admin–Rechte (Eigenschaft <em>admin</em>) besitzen haben vollen Zugriff auf die gesamte Konfiguration der verwalteten MOA-ID-Auth Instanz. Benutzer ohne Admin-Rechten stehen nur folgende Operationen zur Verf\FCgung wobei diese auch besondere Einschr\E4nkungen aufweisen k\F6nnen.</p> <ul> <li><strong>Online-Applikationen bearbeiten:</strong> Ein Benutzer ohne Admin-Rechte kann nur jene Online-Applikationen bearbeiten die von ihm erstellt wurden. Das bearbeiten fremder Online-Applikationen ist nicht möglich. Folgende Parameter können durch diesen Benutzer bearbeitet werden. <ul> @@ -557,21 +560,21 @@ https://<host>:<port>/moa-id-configuration/secure/usermanagementInit <li><strong>Online Applikation anlegen:</strong> Ein Benutzer ohne Admin-Rechte kann neue Online-Applikationen anlegen. Die Funktionen „Online-Applikation aktivieren“ (siehe <a href="#konfigurationsparameter_oa">Kapitel 3.2</a>: ) steht jedoch nicht zur Verfügung. Somit muss die Online-Applikation von einem Benutzer mit Admin-Rechten aktiv geschalten werden. </li> <li><strong>Benutzerverwaltung:</strong> Ein Benutzer ohne Admin-Rechte kann keine neuen Benutzer erstellen. Dieser kann jedoch seinen Benutzeraccount bearbeiten und gegeben falls löschen. Beim Löschen eines Benutzeraccounts werden Online-Applikationen die von diesem erstellt wurden jedoch nicht automatisch gelöscht. </li> </ul> -<h2><a name="basisconfig_moa_id_auth" id="uebersicht_zentraledatei_aktualisierung2"></a>2.2 MOA-ID-Auth</h2> +<h3><a name="basisconfig_moa_id_auth" id="uebersicht_zentraledatei_aktualisierung2"></a>2.2 MOA-ID-Auth</h3> <p>Dieser Abschnitt behandelt die Basiskonfiguration des Modules MOA-ID-Auth. Der erste Teilabschnitt behandelt die Bekanntmachung der Konfigurationsdatei mittels einer System Property und der zweite Teilabschnitt beschreibt die einzelnen Konfigurationsparameter im Detail. Eine Konfiguration die als Ausgangspunkt für die individuelle Konfiguration verwendet werden kann finden Sie <a href="../../conf/moa-id/moa-id.properties">hier</a>.</p> -<h3><a name="uebersicht_bekanntmachung" id="uebersicht_bekanntmachung"></a>2.2.1 Bekanntmachung der Konfigurationsdatei</h3> +<h4><a name="uebersicht_bekanntmachung" id="uebersicht_bekanntmachung"></a>2.2.1 Bekanntmachung der Konfigurationsdatei</h4> <p>Die zentrale Konfigurationsdatei von MOA-ID-Configuration wird der <span class="term">Java Virtual Machine</span>, in der MOA-ID-Configuration läuft, durch eine <span class="term">System Property </span> mitgeteilt (wird beim Starten der <span class="term">Java Virtual Machine</span> in der Form <code>-D<name>=<wert></code> gemacht). Der Name der <span class="term">System Property</span> lautet <code>moa.id.webconfig</code> als Wert der <span class="term">System Property</span> ist der Pfad sowie der Name der Konfigurationsdatei im Dateisystem anzugeben, z.B.</p> <pre>moa.id.configuration=C:/Programme/apache/tomcat-4.1.30/conf/moa-id/moa-id.properties</pre> <p>Weitere Informationen zum Bekanntmachen der zentralen Konfigurationsdatei für MOA-ID-Auth erhalten Sie in <a href="../install/install.html#webservice_basisinstallation_installation_spssdeploy">Abschnitt 2.1.2.3</a> des Installationshandbuchs.</p> - <h3><a name="basisconfig_moa_id_auth_param" id="uebersicht_bekanntmachung2"></a>2.2.2 Konfigurationsparameter</h3> + <h4><a name="basisconfig_moa_id_auth_param" id="uebersicht_bekanntmachung2"></a>2.2.2 Konfigurationsparameter</h4> <p>Aus Gründen der Übersichtlichkeit werden die einzelnen Konfigurationsparameter in logisch zusammenhängende Blöcke unterteilt.</p> -<h4><a name="basisconfig_moa_id_auth_param_general" id="uebersicht_bekanntmachung4"></a>2.2.2.1 Allgemeine Konfigurationsparameter</h4> +<h5><a name="basisconfig_moa_id_auth_param_general" id="uebersicht_bekanntmachung4"></a>2.2.2.1 Allgemeine Konfigurationsparameter</h5> <p>Die folgenden Konfigurationsparameter sind optional und müssen nicht zwingend angegeben werden. Im Falle eines produktiven Betriebs von MOA-ID-Auth wird jedoch die Angabe eines Schlüssels zur verschlüsselten Speicherung der Session Daten in der Datenbank dringend empfohlen. </p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="272" scope="col">Name</th> - <th width="126" scope="col">Beispielwert</th> - <th width="827" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>configuration.moasession.key</td> @@ -620,15 +623,15 @@ https://<host>:<port>/moa-id-configuration/secure/usermanagementInit <pre> https://<host>:<port>/moa-id-auth/MonitoringServlet</pre> <p>Nach einem erfolgreichen Testdurchlauf Antwortet das Monitoring mit einen http Statuscode 200 und der oben definierten Statusmeldung aus dem Parameter <em>configuration.monitoring.message.success</em>. Im Falle eines Fehlers antwortet das Monitoring mit einem http Statuscode 500 und die Statusmeldung enthält eine Beschreibung des aufgetretenen Fehlers.</p> -<h4><a name="basisconfig_moa_id_auth_param_services" id="uebersicht_bekanntmachung5"></a>2.2.2.2 Externe Services</h4> +<h5><a name="basisconfig_moa_id_auth_param_services" id="uebersicht_bekanntmachung5"></a>2.2.2.2 Externe Services</h5> <p>Für den Aufbau von Verbindungen zu anderen Komponenten werden in manchen Fällen spezielle Client-Zertifikate oder Sicherheitseinstellungen benötigt. In diesem Abschnitt erfolgt die Konfiguration der für den Verbindungsaufbau benötigten Parameter. Die Konfiguration der URL zum jeweiligen Service wird jedoch über die Web-Oberfläche des Modules MOA-ID-Configuration vorgenommen (siehe <a href="#konfigurationsparameter_allgemein_services">Kapitel 3.1.7</a>).</p> -<h5><a name="basisconfig_moa_id_auth_param_services_moasp" id="uebersicht_bekanntmachung6"></a>2.2.2.2.1 MOA-SP</h5> +<h6><a name="basisconfig_moa_id_auth_param_services_moasp" id="uebersicht_bekanntmachung6"></a>2.2.2.2.1 MOA-SP</h6> <p>Wird MOA-SP über ein Web-Service, welches Client Authentifizierung voraussetzt, angesprochen müssen in diesem Abschnitt die erforderlichen Schlüssel hinterlegt werden.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="272" scope="col">Name</th> - <th width="147" scope="col">Beispielwert</th> - <th width="806" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>service.moasp.clientKeyStore</td> @@ -647,13 +650,13 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet</pre> </tr> </table> <p> </p> -<h5><a name="basisconfig_moa_id_auth_param_services_mandates" id="uebersicht_bekanntmachung7"></a>2.2.2.2.2 Online-Vollmachen</h5> +<h6><a name="basisconfig_moa_id_auth_param_services_mandates" id="uebersicht_bekanntmachung7"></a>2.2.2.2.2 Online-Vollmachen</h6> <p>MOA-ID-Auth bietet die Möglichkeit der Nutzung von Online-Vollmachten für Anwendungen aus dem öffentlichen Bereich. Hierfür ist ein Online-Vollmachten-Service nötig, wobei die Zugangsdaten zum Online-Vollmachten-Service konfiguriert werden müssen. Der Zugang zum Online-Vollmachten-Service ein Client-Zertifikat für die SSL-Verbindung zum Service. 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. </p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="272" scope="col">Name</th> - <th width="147" scope="col">Beispielwert</th> - <th width="806" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>service.onlinemandates.clientKeyStore</td> @@ -672,13 +675,13 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet</pre> </tr> </table> <p> </p> -<h5><a name="basisconfig_moa_id_auth_param_services_foreign" id="uebersicht_bekanntmachung8"></a>2.2.2.2.3 Foreign Identities</h5> +<h6><a name="basisconfig_moa_id_auth_param_services_foreign" id="uebersicht_bekanntmachung8"></a>2.2.2.2.3 Foreign Identities</h6> <p>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.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="272" scope="col">Name</th> - <th width="147" scope="col">Beispielwert</th> - <th width="806" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>service.foreignidentities.clientKeyStore</td> @@ -697,14 +700,14 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet</pre> </tr> </table> <p> </p> -<h4><a name="basisconfig_moa_id_auth_param_protocol" id="uebersicht_bekanntmachung9"></a>2.2.2.3 Protokolle</h4> +<h5><a name="basisconfig_moa_id_auth_param_protocol" id="uebersicht_bekanntmachung9"></a>2.2.2.3 Protokolle</h5> <p>MOA-ID-Auth unterstützt mehrere Authentifizierungsprotokolle. Manche dieser Protokolle benötigen Schlüssel zur Signierung von Authentifizierungsdaten oder Metadaten. In diesem Abschnitt erfolgt die Konfiguration des zu verwendeten Schlüsselmaterials. </p> -<h5><a name="basisconfig_moa_id_auth_param_protocol_pvp21" id="uebersicht_bekanntmachung10"></a>2.2.2.3.1 PVP 2.1</h5> -<table width="1247" border="1"> +<h6><a name="basisconfig_moa_id_auth_param_protocol_pvp21" id="uebersicht_bekanntmachung10"></a>2.2.2.3.1 PVP 2.1</h6> +<table class="configtable"> <tr> - <th width="272" scope="col">Name</th> - <th width="147" scope="col">Beispielwert</th> - <th width="806" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>protocols.pvp2.idp.ks.file</td> @@ -748,44 +751,44 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet</pre> </tr> </table> <p> </p> -<h5><a name="basisconfig_moa_id_auth_param_protocol_openid" id="uebersicht_bekanntmachung11"></a>2.2.2.3.2 OpenID Connect</h5> -<table width="1247" border="1"> +<h6><a name="basisconfig_moa_id_auth_param_protocol_openid" id="uebersicht_bekanntmachung11"></a>2.2.2.3.2 OpenID Connect</h6> +<table class="configtable"> <tr> - <th width="272" scope="col">Name</th> - <th width="147" scope="col">Beispielwert</th> - <th width="806" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> - <td>protocols.oauth20.jwt.ks.file</td> + <td>protocols.oauth30.jwt.ks.file</td> <td>keys/moa_idp[password].p12</td> <td>Dateiname des Java Keystore oder PKCS12 Keystore zur Signierung des OpenID Connect <em>id_token</em></td> </tr> <tr> - <td>protocols.oauth20.jwt.ks.password=</td> + <td>protocols.oauth30.jwt.ks.password=</td> <td>passsword</td> <td>Passwort zum Keystore</td> </tr> <tr> - <td>protocols.oauth20.jwt.ks.key.name</td> + <td>protocols.oauth30.jwt.ks.key.name</td> <td>pvp_assertion</td> <td>Name des Schlüssels der zum Signieren des <em>id_tokens</em> verwendet wird</td> </tr> <tr> - <td>protocols.oauth20.jwt.ks.key.password</td> + <td>protocols.oauth30.jwt.ks.key.password</td> <td>pasword</td> <td>Password des Schlüssels der zum Signieren des <em>id_tokens</em> verwendet wird</td> </tr> </table> <p> </p> - <h4><a name="basisconfig_moa_id_auth_param_database" id="uebersicht_bekanntmachung3"></a>2.2.2.4 Datenbank </h4> + <h5><a name="basisconfig_moa_id_auth_param_database" id="uebersicht_bekanntmachung3"></a>2.2.2.4 Datenbank </h5> <p>Das Modul MOA-ID-Auth benötigt für den Betrieb zwei (optional drei) separate Datenbank Schema, welche in der Basiskonfiguration konfiguriert werden. Für Beispielkonfiguration wurde mySQL als Datenbank verwendet wodurch sich die Konfigurationsparameter auf mySQL beziehen. Das Modul MOA-ID-Auth kann jedoch auch mit Datenbanken anderer Hersteller oder einer InMemory Datenbank betrieben werden. Hierfür wird jedoch auf die <a href="http://docs.jboss.org/hibernate/core/4.2/manual/en-US/html/">Hibernate Dokumention</a> verwiesen. </p> -<h5><a name="basisconfig_moa_id_auth_param_database_conf" id="uebersicht_bekanntmachung12"></a>2.2.2.4.1 Konfiguration</h5> +<h6><a name="basisconfig_moa_id_auth_param_database_conf" id="uebersicht_bekanntmachung12"></a>2.2.2.4.1 Konfiguration</h6> <p>Alle Parameter aus der Basiskonfiguration welche als Prefix <em>configuration.hibernate</em>. im Parameternamen aufweisen konfigurieren den Zugriff auf das Datenbank Schema welches die Konfiguration von MOA-ID-Auth beinhaltet. Eine Konfiguration dieser Parameter ist nicht optional.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="281" scope="col">Name</th> - <th width="261" scope="col">Beispielwert</th> - <th width="683" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>configuration.hibernate.dialect</td> @@ -814,13 +817,13 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet</pre> </tr> </table> <p> </p> - <h5><a name="basisconfig_moa_id_auth_param_database_session" id="uebersicht_bekanntmachung13"></a>2.2.2.4.2 Session Informationen</h5> + <h6><a name="basisconfig_moa_id_auth_param_database_session" id="uebersicht_bekanntmachung13"></a>2.2.2.4.2 Session Informationen</h6> <p>Alle Parameter aus der Basiskonfiguration welche als Prefix <em>moasession.hibernate</em>. im Parameternamen aufweisen konfigurieren den Zugriff auf das Datenbank Schema in welchem MOA-ID-Auth die Session Informationen temporär ablegt. Eine Konfiguration dieser Parameter ist nicht optional.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="281" scope="col">Name</th> - <th width="261" scope="col">Beispielwert</th> - <th width="683" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>moasession.hibernate.dialect</td> @@ -848,13 +851,13 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet</pre> <td>Passwort für den Zugriff auf das Datenbank Schema</td> </tr> </table> -<h5><a name="basisconfig_moa_id_auth_param_database_info" id="uebersicht_bekanntmachung14"></a>2.2.2.4.3 Statistikdaten</h5> +<h6><a name="basisconfig_moa_id_auth_param_database_info" id="uebersicht_bekanntmachung14"></a>2.2.2.4.3 Statistikdaten</h6> <p>Alle Parameter aus der Basiskonfiguration welche als Prefix <em>advancedlogging.hibernate</em>. im Parameternamen aufweisen konfigurieren den Zugriff auf das Datenbank Schema welches die Konfiguration von MOA-ID-Auth beinhaltet. Eine Konfiguration dieser Parameter ist nur erforderlich wenn <em>configuration.advancedlogging.active</em> auf <em>true</em> gesetzt wird. (siehe <a href="#basisconfig_moa_id_auth_param_general">Kapitel 2.2.2.1</a>)</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="281" scope="col">Name</th> - <th width="261" scope="col">Beispielwert</th> - <th width="683" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>advancedlogging.hibernate.dialect</td> @@ -884,13 +887,13 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet</pre> </table> <p> </p> <p>Die Beispielkonfiguration beinhaltet noch zusätzliche Konfigurationsparameter für den Datenbankzugriff der einzelnen Schema welche direkt aus der Beispielkonfiguration übernommen werden können. Eine detaillierte Beschreibung der einzelnen Einstellungsparameter kann der <a href="http://docs.jboss.org/hibernate/core/4.2/manual/en-US/html/">Hibernate Dokumention</a> entnommen werden.</p> -<h4><a name="basisconfig_moa_id_auth_param_testing" id="uebersicht_bekanntmachung15"></a>2.2.2.5 Testing</h4> +<h5><a name="basisconfig_moa_id_auth_param_testing" id="uebersicht_bekanntmachung15"></a>2.2.2.5 Testing</h5> <p>Diese Parameter dienen auf Testsystemen zur Deaktivierung einzelner Verarbeitungs- oder Prüfschritte. Standardmäßig ist jeweils die sichere Variante aktiviert.</p> - <table width="1247" border="1"> + <table class="configtable"> <tr> - <th width="281" scope="col">Name</th> - <th width="261" scope="col">Beispielwert</th> - <th width="683" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>configuration.validation.certificate.QC.ignore</td> @@ -899,20 +902,26 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet</pre> <p><strong>Defaultwert:</strong> false</p></td> </tr> <tr> + <td>protocols.pvp2.schemavalidation</td> + <td>true / false</td> + <td><p>Mit diesem Parameter kann die Schemavalidierung für PVP Metadaten deaktiviert werden.</p> + <strong>Defaultwert:</strong> true</td> + </tr> + <tr> <td>protocols.pvp2.assertion.encryption.active</td> <td>true / false</td> <td><p>Mit diesem Parameter kann die Verschlüsselung der PVP2.1 Assertion für diese MOA-ID-Auth Instanz vollständig deaktiviert werden.</p> <p><strong>Defaultwert:</strong> true</p></td> </tr> </table> - <h4><a name="basisconfig_moa_id_auth_szrclient" id="uebersicht_bekanntmachung16"></a>2.2.2.6 SZR Client für STORK <-> PVP Gateway Betrieb</h4> + <h5><a name="basisconfig_moa_id_auth_szrclient" id="uebersicht_bekanntmachung16"></a>2.2.2.6 SZR Client für STORK <-> PVP Gateway Betrieb</h5> <p>Die Konfiguration des Stammzahlenregister (SZR) Clients ist nur erforderlich wenn das Modul MOA-ID-Auth als STORK <-> PVP Gateway betrieben wird. Da in diesem Fall die Benutzerin oder der Benutzer über ein PVP Stammportal authentifiziert wird ist eine direkte Generierung der STORK eID während des Anmeldevorgangs nicht möglich. Somit erfolgt für diese Personen einen Stammzahlenregisterabfrage zur Bestimmung der STORK eID.</p> <p>Für den in MOA-ID-Auth verwendeten SZR Client sind folgende Konfigurationsparameter erforderlich.</p> - <table width="1247" border="1"> + <table class="configtable"> <tr> - <th width="281" scope="col">Name</th> - <th width="261" scope="col">Beispielwert</th> - <th width="683" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>service.egovutil.szr.test</td> @@ -1029,19 +1038,51 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet</pre> </table> <p> </p> <p><strong>Hinweis:</strong> Detaillierte Informationen zu den einzelnen PVP spezifischen Konfigurationsparametern finden Sie in der entsprechenden PVP Spezifikation.</p> -<h2><a name="uebersicht_logging" id="uebersicht_logging"></a>2.3 Konfiguration des Loggings</h2> + <h5><a name="basisconfig_moaid_stork2" id="uebersicht_bekanntmachung17"></a>2.2.2.6 STORK 2</h5> + <p>Dieses Abschnitt beschreibt Konfigurationswerte welche nur für den <strong>Testbetrieb von STORK 2</strong> erforderlich sind.</p> + <table class="configtable"> + <tr> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> + </tr> + <tr> + <td>stork.fakeIdL.active</td> + <td>true / false</td> + <td><p>Im Produktivbetrieb ist eine Anmeldung nur für jene Länder mittels STORK 2 möglich welche in der <em>Gleichwertigkeitsverordnung</em> 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.</p> + <p><strong>Hinweis:</strong> Diese Funktion ist standardmäßig <strong>deaktiviert</strong>. Eine Aktivierung ist nur im Testbetrieb für STORK 2 empfohlen.</p></td> + </tr> + <tr> + <td>stork.fakeIdL.countries</td> + <td>DE,CH</td> + <td>Kürzel jener Länder für welche ein Fake-Identitilink ausgestellt werden soll.</td> + </tr> + <tr> + <td>stork.fakeIdL.keygroup</td> + <td>IDL_signing</td> + <td>MOA-SS Schlüsselgruppe, welche für die Signatur des Fake-Identitilinks verwendet werden soll.</td> + </tr> + <tr> + <td>stork.documentservice.url</td> + <td>http://testvidp.buergerkarte.at/<br> + DocumentService/DocumentService?wsdl</td> + <td>URL zum STORK 2 Dokumentenservice</td> + </tr> + </table> + <p> </p> +<h3><a name="uebersicht_logging" id="uebersicht_logging"></a>2.3 Konfiguration des Loggings</h3> <p>Die Module MOA-ID-Auth und MOA-ID-Configuration verwendet als Framework für Logging-Information die Open Source Software <code>log4j</code>. Die Konfiguration der Logging-Information erfolgt nicht direkt durch die einzelnen Module, sondern über eine eigene Konfigurationsdatei, die der <span class="term">Java Virtual Machine</span> durch eine <span class="term">System Property </span> mitgeteilt wird. Der Name der <span class="term">System Property </span> lautet <code>log4j.configuration</code>; als Wert der <span class="term">System Property </span> ist eine URL anzugeben, die auf die <code>log4j</code>-Konfigurationsdatei verweist, z.B. </p> <pre>log4j.configuration=file:/C:/Programme/apache/tomcat-4.1.30/conf/moa-id/log4j.properties</pre> Weitere Informationen zur Konfiguration des Loggings erhalten Sie in <a href="../install/install.html#webservice_basisinstallation_logging">Abschnitt 2.1.3</a> des Installationshandbuchs. <p></p> -<h2><a name="uebersicht_samlengine" id="uebersicht_samlengine"></a>2.4 Konfiguration des SamlEngines</h2> -<p>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 <span class="term">System Property </span> lautet <code>eu.stork.samlengine.config.location</code>; als Wert der <span class="term">System Property </span> ist das Verzeichnis anzugeben, wo die entsprechende SamlEngine Konfigurationsdateien gespeichert werden, z.B. </p> +<h3><a name="uebersicht_samlengine" id="uebersicht_samlengine"></a>2.4 Konfiguration des SamlEngines</h3> +<p>F\FCr die Untest\FCtzung des STORK2 Protokols verwendet MOA-ID eine zus\E4tzliche Bibliothek, die \FCber gesonderte Dateien konfiguriert wird. Diese Dateien sind unter einem Verzeichnis gespeichert, das sich \FCblicherweise im MOA-ID-Auth Konfigurationsverzeichnis befindet. Der Name der <span class="term">System Property </span> lautet <code>eu.stork.samlengine.config.location</code>; als Wert der <span class="term">System Property </span> ist das Verzeichnis anzugeben, wo die entsprechende SamlEngine Konfigurationsdateien gespeichert werden, z.B. </p> <pre>eu.stork.samlengine.config.location=file:/C:/Programme/apache/tomcat-4.1.30/conf/moa-id/conf/moa-id/stork</pre> <p>Dieses Verzeichnis muss mindestens folgende Dateien enthalten:</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="141" scope="col">Datei</th> - <th width="583" scope="col">Beschreibung</th> + <th>Datei</th> + <th>Beschreibung</th> </tr> <tr> <td>SamlEngine.xml</td> @@ -1049,10 +1090,10 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet</pre> </tr> <tr> <td>StorkSamlEngine_<span class="term">XXX</span>.xml</td> - <td>Enthält allgemeine Konfigurationsparametern einer spezifischen Instanz des SamlEngines.</td> + <td>Enth\E4lt allgemeine Konfigurationsparametern einer spezifischen Instanz des SamlEngines.</td> </tr> <tr> <td>SignModule_<span class="term">XXX</span>.xml</td> - <td>Enthält Konfigurationsparametern für Trust- und Keystore einer spezifischen Instanz des SamlEngines.</td> + <td>Enth\E4lt Konfigurationsparametern f\FCr Trust- und Keystore einer spezifischen Instanz des SamlEngines.</td> </tr> </table> <p></p> @@ -1079,7 +1120,7 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet</pre> </instances> </pre> <p>In diesem Beispiel ist nur eine Instanz <em>VIDP</em> definiert deren spezifischen Parametern in zwei Konfigurationsdateien aufgeteilt werden.</p> -<p>Die Datei <span class="strongerterm">StorkSamlEngine_VIDP.xml</span> enthält STORK-spezifische Parameter, die im Normalbetrieb nicht geändert werden müssen. Die zweite Datei, <span class="strongerterm">SignModule_VIDP.xml</span>, definiert den von der SamlEngine verwendeten Trust- und Keystore. Die Beispielkonfiguration dieser Datei sieht wie folgendes:</p> +<p>Die Datei <span class="strongerterm">StorkSamlEngine_VIDP.xml</span> enth\E4lt STORK-spezifische Parameter, die im Normalbetrieb nicht ge\E4ndert werden müssen. Die zweite Datei, <span class="strongerterm">SignModule_VIDP.xml</span>, definiert den von der SamlEngine verwendeten Trust- und Keystore. Die Beispielkonfiguration dieser Datei sieht wie folgendes:</p> <pre> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> @@ -1094,52 +1135,53 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet</pre> <entry key="keystoreType">JKS</entry> </properties> </pre> -<p>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:</p><table width="1247" border="1"> +<p>Diese Parameter müssen bei der Installation angepasst werden, um die Zugriff an Keystore und die Schl\FCssel zu erm\F6glichen. Die einzelne Parameter werden in folgender Tabelle erläutert:</p> +<table class="configtable"> <tr> - <th width="121" scope="col">Name</th> - <th width="683" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beschreibung</th> </tr> <tr> <td>keystorePath</td> - <td>Keystore mit Schlüssel und Zertifikaten welche für das Signieren und Verschlüsseln von STORK Nachrichten verwendet werden sollen. </td> + <td>Keystore mit Schl\FCssel und Zertifikaten welche f\FCr das Signieren und Verschl\FCsseln von STORK Nachrichten verwendet werden sollen. </td> </tr> <tr> <td>keyStorePassword</td> - <td>Passwort 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. </td> + <td>Passwort des Keystores. Keystore soll den Schl\FCssel f\FCr das Signieren von Nachrichten enthalten, ebenso wie die vertrauensw\FCrdige Zertifikate von anderen Parteien, wie z.B. ausl\E4ndische PEPSes. </td> </tr> <tr> <td>keyPassword</td> - <td>Password des Schlüssels, der für das Signieren der STORK Nachrichten verwendet werden soll.</td> + <td>Password des Schl\FCssels, der f\FCr das Signieren der STORK Nachrichten verwendet werden soll.</td> </tr> <tr> <td>issuer</td> - <td>Issuer des Keypairs, der für das Signieren der STORK Nachrichten verwendet werden soll.</td> + <td>Issuer des Keypairs, der f\FCr das Signieren der STORK Nachrichten verwendet werden soll.</td> </tr> <tr> <td>serialNumber</td> - <td>Nummer des Keypairs, der für das Signieren der STORK Nachrichten verwendet werden soll.</td> + <td>Nummer des Keypairs, der f\FCr das Signieren der STORK Nachrichten verwendet werden soll.</td> </tr> <tr> <td>keystoreType</td> - <td>Typ und Format des Keystores. <span class="term">JKS</span> steht für <span class="term">Java Key Store</span>.</td> + <td>Typ und Format des Keystores. <span class="term">JKS</span> steht f\FCr <span class="term">Java Key Store</span>.</td> </tr> </table> -<h1><a name="konfigurationsparameter"></a>3 Konfiguration MOA-ID-Auth</h1> +<h2><a name="konfigurationsparameter"></a>3 Konfiguration MOA-ID-Auth</h2> <p>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 <a href="#uebersicht_zentraledatei_aktualisierung">Kapitel 2.1</a>). Nach erfolgreichem Login am Konfigurationstool kann das Modul MOA-ID-Auth über die Web-Oberfläche konfiguriert werden.</p> <p>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.</p> -<h2><a name="konfigurationsparameter_allgemein" id="konfigurationsparameter_allgemein"></a>3.1 - Allgemeine Konfiguration</h2> +<h3><a name="konfigurationsparameter_allgemein" id="konfigurationsparameter_allgemein"></a>3.1 + Allgemeine Konfiguration</h3> <p>Die Allgemeine Konfiguration des Modules MOA-ID-Auth umfasst alle nicht online-applikationsspezifischen Konfigurationsparameter. Die Konfiguration dieser Parameter erfolgt über eine Web-Oberfläche, welche Eingabefelder für jeden Konfigurationsparameter zur Verfügung stellt. Jedes Eingabefeld wird validiert bevor der Konfigurationsparameter in der Datenbank gespeichert wird. Die Validierung erfolgt auf Basis des zu erwartenden Eingabewerts, wobei der erlaubte Zeichensatz für freidefinierbare textuelle Eingabefelder eingeschränkt sein kann. Detailinformationen zum erlaubten Zeichen finden Sie bei der jeweiligen Beschreibung des Konfigurationsparameters. </p> <p>Eine Änderung (Speicherung) an der allgemeinen Konfiguration wirkt sich nicht umgehend auf die zugeordnete MOA-ID-Auth Instanz aus, sondern erfolgt mit zeitlicher Verzögerung. Die zeitliche Verzögerung beträgt jedoch maximal eine Minute. Dass die geänderte MOA-ID-Auth Konfiguration in der zugeordneten Instanz geladen wurde ist durch folgende Log Meldungen erkennbar.</p> <pre>INFO | 19 10:25:23,179 | ConfigurationLoader | check for new config.<br>INFO | 19 10:25:23,189 | ConfigurationLoader | Read MOA-ID 2.0 configuration from database.<br>INFO | 19 10:25:23,192 | ConfigurationLoader | MOA-ID 2.0 is loaded.</pre> <p>Nachfolgend finden Sie die Detailbeschreibung aller allgemeinen Konfigurationsparameter.</p> -<h3><a name="konfigurationsparameter_allgemein_publicurlprefix" id="konfigurationsparameter_allgemein_bku17"></a>3.1.1 Public URL Prefix</h3> +<h4><a name="konfigurationsparameter_allgemein_publicurlprefix" id="konfigurationsparameter_allgemein_bku17"></a>3.1.1 Public URL Prefix</h4> <p>Dieser Parameter definiert den Public URL Prefix unter welchem die MOA-ID Instanz erreichbar ist. Die Konfiguration dieses Parameters ist verpflichtend.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="119" scope="col">Name</th> - <th width="263" scope="col">Beispielwerte</th> - <th width="843" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwerte</th> + <th>Beschreibung</th> </tr> <tr> <td><span id="wwlbl_loadGeneralConfig_moaconfig_ssoPublicUrl2">Public URL Prefix</span></td> @@ -1147,13 +1189,13 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet</pre> <td>URL-Prefix der MOA-ID Instanz. Diese URL wird für die automatische Generierung von Formularen und Informationen verwendet und MUSS konfiguriert werden.</td> </tr> </table> -<h3><a name="konfigurationsparameter_allgemein_bku" id="konfigurationsparameter_allgemein_bku"></a>3.1.2 Default BKUs</h3> +<h4><a name="konfigurationsparameter_allgemein_bku" id="konfigurationsparameter_allgemein_bku"></a>3.1.2 Default BKUs</h4> <p>Hiermit werden die URLs zu den Default Bürgerkartenumgebungen (BKUs) definiert die von MOA-ID-Auth für einen Anmeldevorgang verwendet werden, wenn die Bürgerkartenauswahl nicht bereits auf Seiten der Online-Applikation erfolgt ist (siehe <a href="./../protocol/protocol.html#allgemeines_legacy">Legacy Request</a>) oder in der Online-Applikationskonfiguration keine BKU URLs konfiguriert wurden (siehe <a href="#konfigurationsparameter_oa_bku">Kapitel 3.2.2</a>).</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="89" scope="col">Name</th> - <th width="314" scope="col">Beispielwert</th> - <th width="822" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>Online BKU</td> @@ -1171,15 +1213,15 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet</pre> <td>URL auf die lokale BKU Instanz</td> </tr> </table> -<h3><a name="konfigurationsparameter_allgemein_sl-templates" id="konfigurationsparameter_allgemein_bku2"></a>3.1.3 Security-Layer Request Templates</h3> +<h4><a name="konfigurationsparameter_allgemein_sl-templates" id="konfigurationsparameter_allgemein_bku2"></a>3.1.3 Security-Layer Request Templates</h4> <p>Security-Layer (SL) Templates dienen der Kommunikation mit der gewählten Bürgerkartenumgebung. Die hier hinterlegen SL-Templates werden für die Kommunikation mit der jeweiligen BKU verwendet. Nähere Details zum Aufbau dieser SL-Templates finden Sie im <a href="#import_template_sltemplate">Kapitel 4.3</a>. </p> <p>Die Lage der Templates wird in Form einer URL beschrieben, wobei sowohl lokale Referenzen als der Bezug über http(s) möglich sind. Relative Pfadangaben werden dabei relativ zum Verzeichnis, in dem sich die MOA-ID-Auth Basiskonfigurationsdatei befindet, interpretiert. Bei Templates die über das Protokoll https referenziert werden, muss vor dem Start des Tomcat ein Truststore angegeben werden, das die notwendigen vertrauenswürdigen Zertifikate enthält.</p> <p><strong>Hinweis:</strong> Diese hier definierten Templates dienen als zusätzliche WhiteList für Templates welche im „StartAuthentication“ Request mit dem Parameter „template“ übergeben werden. Sollte im „StartAuthentication“ Request der Parameter „template“ fehlen, es wurde jedoch eine „bkuURL“ übergeben, dann wird für den Authentifizierungsvorgang ein bei der <a href="#konfigurationsparameter_oa_bku">Online Applikation konfiguriertes Tempalte</a> oder als Backup das erste Template in dieser Liste verwendet. Detailinformationen zum <a href="./../protocol/protocol.html#allgemeines_legacy">Legacy Request</a> finden Sie im Kapitel Protokolle.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="89" scope="col">Name</th> - <th width="314" scope="col">Beispielwert</th> - <th width="822" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>Online BKU</td> @@ -1197,13 +1239,13 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet</pre> <td>SL Template zur Kommunikation mit einer lokalen BKU Instanz</td> </tr> </table> -<h3><a name="konfigurationsparameter_allgemein_certvalidation" id="konfigurationsparameter_allgemein_bku3"></a>3.1.4 Zertifikatsprüfung</h3> +<h4><a name="konfigurationsparameter_allgemein_certvalidation" id="konfigurationsparameter_allgemein_bku3"></a>3.1.4 Zertifikatsprüfung</h4> <p>Dieser Bereich behandelt die allgemeine Einstellungen zur Zertifikatsprüfung und die Konfiguration von vertrauenswürdigen Zertifikaten.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="89" scope="col">Name</th> - <th width="314" scope="col">Beispielwert</th> - <th width="822" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>CertStoreDirecorty</td> @@ -1227,12 +1269,12 @@ Checking</td> <td>ChainingMode definiert, ob bei der Zertifikatspfad-überprüfung das Kettenmodell ("chaining") oder das Modell nach PKIX RFC 3280 ("pkix") verwendet werden soll. </td> </tr> </table> -<h3><a name="konfigurationsparameter_allgemein_timeouts" id="konfigurationsparameter_allgemein_bku4"></a>3.1.5 Session TimeOuts</h3> -<table width="1247" border="1"> +<h4><a name="konfigurationsparameter_allgemein_timeouts" id="konfigurationsparameter_allgemein_bku4"></a>3.1.5 Session TimeOuts</h4> +<table class="configtable"> <tr> - <th width="174" scope="col">Name</th> - <th width="130" scope="col">Beispielwert [sec]</th> - <th width="921" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert [sec]</th> + <th>Beschreibung</th> </tr> <tr> <td>Anmeldedaten</td> @@ -1255,14 +1297,14 @@ Checking</td> <td>Gibt die Zeitspanne in Sekunden an, die eine Single Sign-On (SSO) Session seit dem letzten Zugriff (Anmeldevorgang) ausgehend gültig ist. Nach Ablauf dieser Zeitspanne muss sich die Benutzerin oder der Benutzer bei einer erneuten Anmeldung neu authentifizieren.</td> </tr> </table> -<h3><a name="konfigurationsparameter_allgemein_moasp" id="konfigurationsparameter_allgemein_bku5"></a>3.1.6 MOA-SP</h3> +<h4><a name="konfigurationsparameter_allgemein_moasp" id="konfigurationsparameter_allgemein_bku5"></a>3.1.6 MOA-SP</h4> <p>Der Abschnitt MOA-SP Konfiguration enthält Parameter zur Nutzung von MOA-SP. MOA-SP wird für die Überprüfung der Signatur der Personenbindung und des AUTH-Blocks verwendet.</p> <p>MOA-SP muss entsprechend konfiguriert werden - siehe hierzu Abschnitt <a href="#sp-config"> Konfiguration von MOA-SP</a>. Alle Details zur Konfiguration von MOA-SP finden sie in der Distribution von MOA-SP/SS beiliegenden Dokumentation im Abschnitt 'Konfiguration'. </p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="164" scope="col">Name</th> - <th width="168" scope="col">Beispielwert</th> - <th width="893" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>Personenbindung Trustprofil</td> @@ -1286,13 +1328,13 @@ Checking</td> <strong>Hinweis:</strong> Wird kein <em>MOA-SP Service URL</em> angegeben so wird eine MOA-ID beiliegende Version von MOA-SP direkt über das Java-API angesprochen. In diesem Fall muss das System-Property auf die verwendete Konfigurationsdatei von MOA-SP gesetzt werden. Eine beispielhafte MOA-SP Konfigurationsdatei ist in <em>$MOA_ID_INST_AUTH/conf/moa-spss/SampleMOASPSSConfiguration.xml </em>enthalten. </td> </tr> </table> -<h3><a name="konfigurationsparameter_allgemein_services" id="konfigurationsparameter_allgemein_bku6"></a>3.1.7 Externe Services</h3> +<h4><a name="konfigurationsparameter_allgemein_services" id="konfigurationsparameter_allgemein_bku6"></a>3.1.7 Externe Services</h4> <p>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 <a href="#basisconfig_moa_id_auth_param_services">2.2.2.2</a> behandelt.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="147" scope="col">Name</th> - <th width="360" scope="col">Beispielwert</th> - <th width="718" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td><span id="wwlbl_loadGeneralConfig_moaconfig_mandateURL">Online-Vollmachten Service</span></td> @@ -1314,7 +1356,7 @@ Checking</td> </ul></td> </tr> </table> -<h3><a name="konfigurationsparameter_allgemein_sso" id="konfigurationsparameter_allgemein_bku7"></a>3.1.8 Single-Sign On (SSO)</h3> +<h4><a name="konfigurationsparameter_allgemein_sso" id="konfigurationsparameter_allgemein_bku7"></a>3.1.8 Single-Sign On (SSO)</h4> <p>In der SSO Konfiguration muss angegeben werden in welchem Bereich (öffentlicher oder privatwirtschaftlicher Bereich) die MOA-ID-Auth Instanz betrieben wird. Je nach dem zu welchem Bereich die Instanz zugeordnet ist ergibt sich ein unterschiedlicher Funktionsumfang der SSO Funktionalität.</p> <ol> <li><strong>Öffentlicher Bereich:</strong> Die MOA-ID-Auth Instanz ist einem öffentlichen Bereich für SSO zugeordnet. In diesem Fall können sowohl öffentlichen als auch privatwirtschaftliche Applikationen diese MOA-ID-Auth Instanz für eine Anmeldung mittels SSO Nutzen. Eine Zuordnung in den öffentlichen Bereich ist jedoch nur dann Möglich wenn mindestens eine der folgenden Anforderungen erfüllt ist. @@ -1331,11 +1373,11 @@ Checking</td> <li><strong>Privatwirtschaftlicher Bereich:</strong><strong></strong> Die MOA-ID-Auth Instanz ist einem privatwirtschaftlichen Bereich für SSO zugeordnet, steht SSO nur eingeschränkt zur Verfügung. Da laut E-Governmentgesetz die Errechnung eines wbPK aus der Stammzahl nicht beim Auftraggeber eines privaten Bereichs durchgeführt werden darf (vgl. E-Government Gesetz §12(1).4), und deshalb an die Bürgerkartenumgebung ausgelagert werden muss. In diesem Fall sind Anmeldungen mittels SSO nur für jenen privatwirtschaftlichen Bereich möglich dem auch der SSO Bereich zugeordnet wurde. </li> </ol> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="101" scope="col">Name</th> - <th width="281" scope="col">Beispielwerte</th> - <th width="843" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwerte</th> + <th>Beschreibung</th> </tr> <tr> <td><p><span id="wwlbl_loadGeneralConfig_moaconfig_ssoFriendlyName">SSO Service Name</span></p></td> @@ -1371,13 +1413,13 @@ Checking</td> <p><em>Ich Max Mustermann, geboren am 01.01.1978 stimme am 05.02.2014 um 10:35 einer Anmeldung mittels Single Sign-On zu.</em></p></td> </tr> </table> -<h3><a name="konfigurationsparameter_allgemein_stork" id="konfigurationsparameter_allgemein_bku8"></a>3.1.8 Secure idenTity acrOss boRders linKed (STORK)</h3> -<p>Hierbei werden allgemeine Parameter für STORK Protokoll konfiguriert.</p> -<table width="1247" border="1"> +<h4><a name="konfigurationsparameter_allgemein_stork" id="konfigurationsparameter_allgemein_bku8"></a>3.1.8 Secure idenTity acrOss boRders linKed (STORK)</h4> +<p>Hierbei werden allgemeine Parameter f\FCr STORK Protokoll konfiguriert.</p> +<table class="configtable"> <tr> - <th width="201" scope="col">Name</th> - <th width="460" scope="col">Beispielwerte</th> - <th width="944" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwerte</th> + <th>Beschreibung</th> </tr> <tr> <td>Standard QAA-Level</td> @@ -1387,26 +1429,26 @@ Checking</td> <tr> <td>Country Code</td> <td>ES</td> - <td>Der zweistelligen Code vom unterstützten PEPS-Staat.</td> + <td>Der zweistelligen Code vom unterst\FCtzten PEPS-Staat.</td> </tr> <tr> <td>PEPS URL</td> <td>https://prespanishpeps.redsara.es/PEPS/ColleagueRequest</td> - <td>Die Adresse von PEPS eines unterstützten PEPS-Staat.</td> + <td>Die Adresse von PEPS eines unterst\FCtzten PEPS-Staat.</td> </tr> <tr> <td>Attributname</td> <td>eIdentifier</td> - <td>Der Name des unterstützten Attributes. Die als <span class="term">zwingend</span> markierte Attribute müssen im Response von dem gegenstehendem PEPS enthalten sein. Jedes Attribut wird gesondert eingetragen. <br/>Die Liste von vorhandenen und unterstützen Attributes ist in Konfigurationsdatei von SamlEngine <span class="term">(StorkSamlEngine_XXX.xml)</span> vorhanden. </td> + <td>Der Name des unterst\FCtzten Attributes. Die als <span class="term">zwingend</span> markierte Attribute m\FCssen im Response von dem gegenstehendem PEPS enthalten sein. Jedes Attribut wird gesondert eingetragen. <br/>Die Liste von vorhandenen und unterst\FCtzen Attributes ist in Konfigurationsdatei von SamlEngine <span class="term">(StorkSamlEngine_XXX.xml)</span> vorhanden. </td> </tr> </table> <p> </p> <p>Folgende PEPS URLs stehen aktuell zur Verfügung:</p> -<table width="1243" border="1"> +<table class="configtable"> <tr> - <th width="133" scope="col">Ländercode</th> - <th width="87" scope="col">TestInstanz</th> - <th width="1001" scope="col">URL</th> + <th>Ländercode</th> + <th>TestInstanz</th> + <th>URL</th> </tr> <tr> <td>AT </td> @@ -1456,12 +1498,12 @@ Checking</td> </table> <p> </p> <p>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 <a href="./../protocol/protocol.html#allgemeines_attribute">Protokolle</a> oder in der <a href="#referenzierte_spezifikation">STORK Spezifikation</a>.</p> -<table width="1251" border="1"> +<table class="configtable"> <tr> - <th width="145" scope="col">Name</th> - <th width="106" scope="col">natürliche Person</th> - <th width="102" scope="col">Anmeldung in Vertretung</th> - <th width="870" scope="col">Beschreibung</th> + <th>Name</th> + <th>natürliche Person</th> + <th>Anmeldung in Vertretung</th> + <th>Beschreibung</th> </tr> <tr> <td>eIdentifier</td> @@ -1532,20 +1574,20 @@ Checking</td> </tr> </table> <p></p> -<h3><a name="konfigurationsparameter_allgemein_protocol" id="konfigurationsparameter_allgemein_bku9"></a>3.1.9 Protokolle</h3> +<h4><a name="konfigurationsparameter_allgemein_protocol" id="konfigurationsparameter_allgemein_bku9"></a>3.1.9 Protokolle</h4> <p>Hierbei handelt es ich um allgemeine Einstellungen zu den vom Modul MOA-ID-Auth unterstützen Authentifizierungsprotokollen.</p> -<h4><a name="konfigurationsparameter_allgemein_protocol_allowed" id="konfigurationsparameter_allgemein_bku10"></a>3.1.10.1 Protokolle aktivieren</h4> +<h5><a name="konfigurationsparameter_allgemein_protocol_allowed" id="konfigurationsparameter_allgemein_bku10"></a>3.1.10.1 Protokolle aktivieren</h5> <p>In diesem Abschnitt können die einzelnen von MOA-ID-Auth unterstützen Authentifizierungsprotokolle aktiviert oder deaktiviert werden. Diese Einstellung gilt für die gesamte MOA-ID-Auth Instanz.</p> -<h4><a name="konfigurationsparameter_allgemein_protocol_legacy" id="konfigurationsparameter_allgemein_bku11"></a>3.1.10.2 Legacy Modus</h4> +<h5><a name="konfigurationsparameter_allgemein_protocol_legacy" id="konfigurationsparameter_allgemein_bku11"></a>3.1.10.2 Legacy Modus</h5> <p>Ab der Version 2.0 des Modules MOA-ID-Auth wird die Bürgerkartenauswahl standardmäßig von MOA-ID-Auth bereitgestellt und erfolgt im Kontext von MOA-ID-Auth. Dem zu Folge müssen die aus MOA-ID 1.5.1 bekannten StartAuthentication Parameter (target, bkuURL, template, usemandate) nicht mehr im StartAuthentication Request übergeben werden.</p> Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der Online-Applikation erfolgen muss für das jeweilige Protokoll der Legacy Modus aktiviert werden. Wird der Legacy Modus verwendet müssen jedoch die bkuURL, das Security-Layer Template und der Target mit den bei MOA-ID-Auth hinterlegten Konfigurationsparametern der Online-Applikation übereinstimmten. Detailinformationen hierzu finden Sie im Kapitel <a href="./../protocol/protocol.html#allgemeines_legacy">Protokolle</a>. -<h4><a name="konfigurationsparameter_allgemein_protocol_saml1" id="konfigurationsparameter_allgemein_bku12"></a>3.1.10.3 SAML1 Konfiguration</h4> +<h5><a name="konfigurationsparameter_allgemein_protocol_saml1" id="konfigurationsparameter_allgemein_bku12"></a>3.1.10.3 SAML1 Konfiguration</h5> <p>Die SourceID ist ein Teil des SAML1 Artifacts welches zur Abholung der SAML1 Assertion an die Online-Applikation zurückgegeben wird. Standardmäßig wird die SourceID aus der URL der jeweiligen Online-Applikation, an der die Anmeldung stattfinden, generiert. Optional kann jedoch eine SourceID für die gesamte MOA-ID-Auth Instanz vergeben werden, welche für alle Online-Applikationen verwendet wird.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="101" scope="col">Name</th> - <th width="180" scope="col">Beispielwerte</th> - <th width="944" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwerte</th> + <th>Beschreibung</th> </tr> <tr> <td>SourceID</td> @@ -1554,14 +1596,14 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der </tr> </table> <p> </p> -<h4><a name="konfigurationsparameter_allgemein_protocol_pvp21" id="konfigurationsparameter_allgemein_bku13"></a>3.1.10.4 PVP2.1 Konfiguration</h4> +<h5><a name="konfigurationsparameter_allgemein_protocol_pvp21" id="konfigurationsparameter_allgemein_bku13"></a>3.1.10.4 PVP2.1 Konfiguration</h5> <p>Die allgemeinen Konfigurationsparameter für das Authentifizierungsprotokoll PVP2.1 behandeln Informationen zum Betreiber der MOA-ID-Auth Instanz und zu einer Ansprechperson für diese Instanz. Diese Parameter werden in den PVP2.1 Metadaten, die von MOA-ID-Auth für Online-Applikation (Service Providern) bereitgestellt werden, eingetragen.</p> -<h5><a name="konfigurationsparameter_allgemein_protocol_pvp21_org" id="konfigurationsparameter_allgemein_bku15"></a>3.1.10.4.1 Betreiberorganisation</h5> -<table width="1247" border="1"> +<h6><a name="konfigurationsparameter_allgemein_protocol_pvp21_org" id="konfigurationsparameter_allgemein_bku15"></a>3.1.10.4.1 Betreiberorganisation</h6> +<table class="configtable"> <tr> - <th width="210" scope="col">Name</th> - <th width="192" scope="col">Beispielwert</th> - <th width="823" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td><p>PVP Service Name</p></td> @@ -1584,12 +1626,12 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der <td>URL zu einer Seite mit Informationen der Organisation welche die MOA-ID-Auth Instanz betreibt. Dieser Parameter wird in den Metadaten im Element <em>md:Organization</em>/<em>md:OrganizationURL</em> angezeigt.</td> </tr> </table> -<h5><a name="konfigurationsparameter_allgemein_protocol_pvp21_contact" id="konfigurationsparameter_allgemein_bku16"></a>3.1.10.4.2 Kontaktperson</h5> -<table width="1247" border="1"> +<h6><a name="konfigurationsparameter_allgemein_protocol_pvp21_contact" id="konfigurationsparameter_allgemein_bku16"></a>3.1.10.4.2 Kontaktperson</h6> +<table class="configtable"> <tr> - <th width="164" scope="col">Name</th> - <th width="168" scope="col">Beispielwert</th> - <th width="893" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>Familienname</td> @@ -1630,19 +1672,19 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der <p>Dieser Name wird in den Metadaten im Element <em>md:ContactPerson</em>als Attribut <em>contactType</em> angezeigt.</p></td> </tr> </table> -<h3><a name="konfigurationsparameter_allgemein_sltransform" id="konfigurationsparameter_allgemein_bku14"></a>3.1.11 Security-Layer Transformationen</h3> +<h4><a name="konfigurationsparameter_allgemein_sltransform" id="konfigurationsparameter_allgemein_bku14"></a>3.1.11 Security-Layer Transformationen</h4> <p>Die Security-Layer (SL) Transformation, welche von MOA-ID-Auth für die Erstellung der Signatur des AuthBlock verwendet werden soll, muss hier angegeben werden. Über das Datei-Upload Feld kann die zu verwendende Transformation hochgeladen werden. Diese befindet sich in der MOA-ID-Auth Defaultkonfiguration im Ordner <em><a href="./../../../conf/moa-id/transforms/TransformsInfoAuthBlockTable_DE_2.0.xml">/conf/moa-id/transforms/ TransformsInfoAuthBlockTable_DE_2.0.xml</a></em>.</p> -<h2><a name="konfigurationsparameter_oa" id="uebersicht_zentraledatei_aktualisierung3"></a>3.2 Online Applikationen</h2> +<h3><a name="konfigurationsparameter_oa" id="uebersicht_zentraledatei_aktualisierung3"></a>3.2 Online Applikationen</h3> <p>Die Konfiguration von Online-Applikationen erfolgt ebenfalls mit Hilfe des Moduls MOA-ID-Configuration. Es können sowohl neue Online-Applikationen erstellt als auch bestehende Online-Applikationen bearbeitet oder gelöscht werden. Der erlaubte Konfigurationsumfang hängt jedoch von Role des aktuellen Benutzers ab, wobei eine Konfiguration der gesamten Parameter nur einem Benutzer mit der Role <em>admin</em> möglich ist. Alle Konfigurationsfelder die nur einem Benutzer mit der Role <em>admin</em> zur Verfügung stehen sind gesondert gekennzeichnet.</p> -<h3><a name="konfigurationsparameter_oa_general" id="uebersicht_zentraledatei_aktualisierung17"></a>3.2.1 Informationen zur Online-Applikation (Service Provider)</h3> +<h4><a name="konfigurationsparameter_oa_general" id="uebersicht_zentraledatei_aktualisierung17"></a>3.2.1 Informationen zur Online-Applikation (Service Provider)</h4> <p>Dieser erste Abschnitt behandelt allgemeine Parameter zur Online-Applikation.</p> -<table width="1248" border="1"> +<table class="configtable"> <tr> - <th width="153" scope="col">Name</th> - <th width="204" scope="col">Beispielwert</th> - <th width="43" scope="col">Admin</th> - <th width="57" scope="col">Optional</th> - <th width="757" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Admin</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td>Online-Applikation ist aktiviert</td> @@ -1674,15 +1716,15 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der <td>Definiert ob die Online-Applikation dem öffentlichen Bereich oder dem privatwirtschaftlichen Bereich (Business Service) zugeordnet ist. Ja nach Bereich sind unterschiedliche Konfigurationsparameter erforderlich.</td> </tr> </table> -<h4><a name="konfigurationsparameter_oa_general_public" id="uebersicht_zentraledatei_aktualisierung18"></a>3.2.1.1 Öffentlicher Bereich</h4> +<h5><a name="konfigurationsparameter_oa_general_public" id="uebersicht_zentraledatei_aktualisierung18"></a>3.2.1.1 Öffentlicher Bereich</h5> <p>Wurde die Online-Applikation einem öffentlichen Bereich zugeordnet muss in weiterer Folge der zugeordnete Bereich definiert werden. Hierfür stehen folgende Parameter zur Verfügung.</p> -<table width="1250" border="1"> +<table class="configtable"> <tr> - <th width="123" scope="col">Name</th> - <th width="204" scope="col">Beispielwert</th> - <th width="43" scope="col">Admin</th> - <th width="57" scope="col">Optional</th> - <th width="789" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Admin</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td><span id="wwlbl_loadOA_generalOA_target">Bereich (Target)</span></td> @@ -1717,7 +1759,7 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der </ul> </li> </ul> -<h4><a name="konfigurationsparameter_oa_general_business" id="uebersicht_zentraledatei_aktualisierung19"></a>3.2.1.2 Privatwirtschaftlicher Bereich</h4> +<h5><a name="konfigurationsparameter_oa_general_business" id="uebersicht_zentraledatei_aktualisierung19"></a>3.2.1.2 Privatwirtschaftlicher Bereich</h5> <p>Wurde die Online-Applikation einem privatwirtschaftlichen Bereich zugeordnet muss in weiterer Folge die Stammzahl des privatwirtschaftlichen Unternehmens angegeben werden. Die Stammzahl des öffentlichen Bereichs muss mit dem entsprechenden Prefix des Bereichs angegeben werden, wobei der Prefix aus einer vorgegebenen Liste gewählt werden muss. </p> <ul> <li>FN: Die Stammzahl ist eine Firmenbuchnummer. (Beispiel: <em>FN468924i</em>)</li> @@ -1725,13 +1767,13 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der <li>ERSB: Die Stammzahl ist einer Kennzahl aus dem Ergänzungsregister für sonstige Betroffene (ERsB) (Beispiel: ERSB1425367879)</li> <li>STORK: Ländercode dem der Service Provider zugeordnet werden kann. Wird für die Ableitung des STORK-eIdentifiers verwendet.</li> </ul> -<table width="1250" border="1"> +<table class="configtable"> <tr> - <th width="123" scope="col">Name</th> - <th width="204" scope="col">Beispielwerte</th> - <th width="43" scope="col">Admin</th> - <th width="57" scope="col">Optional</th> - <th width="789" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwerte</th> + <th>Admin</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td><span id="wwlbl_loadOA_generalOA_identificationType">Identifikationsnummer</span></td> @@ -1745,15 +1787,15 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der </tr> </table> -<h3><a name="konfigurationsparameter_oa_bku" id="uebersicht_zentraledatei_aktualisierung20"></a>3.2.2 BKU Konfiguration</h3> +<h4><a name="konfigurationsparameter_oa_bku" id="uebersicht_zentraledatei_aktualisierung20"></a>3.2.2 BKU Konfiguration</h4> <p>Dieser Abschnitt behandelt online-applikationsspezifische Einstellungen zum Anmeldeprozess. Diese Einstellungen stehen jedoch nur einer Benutzerin oder einem Benutzer mit der Role <em>admin</em> zur Verfügung.</p> -<table width="1248" border="1"> +<table class="configtable"> <tr> - <th width="168" scope="col">Name</th> - <th width="189" scope="col">Beispielwert</th> - <th width="43" scope="col">Admin</th> - <th width="57" scope="col">Optional</th> - <th width="757" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Admin</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td><span id="wwlbl_newOA_generalOA_bkuOnlineURL">Online BKU</span></td> @@ -1807,15 +1849,15 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der <td>Dieses Feld erlaubt die Konfiguration eines online-applikationsspezifischen Templates für die zusätzliche Anmeldeabfrage im Falle einer Single Sign-On Anmeldung. Dieses Template muss in die Konfiguration hochgeladen werden und muss die Mindestanforderungen aus <a href="#import_template_sso">Kapitel 4.2</a> umsetzen. Da diese Templates direkt in den Authentifizierungsprozess eingreifen und diese somit eine potentielle Angriffsstelle für Cross-Site Scripting (XSS) bieten wird die Verwendung von online-applikationsspezifischen Templates nicht empfohlen.</td> </tr> </table> -<h3><a name="konfigurationsparameter_oa_testcredentials" id="uebersicht_zentraledatei_aktualisierung10"></a> 3.2.3 Test Identitäten</h3> +<h4><a name="konfigurationsparameter_oa_testcredentials" id="uebersicht_zentraledatei_aktualisierung10"></a> 3.2.3 Test Identitäten</h4> <p>In diesem Abschnitt können für diese Online-Applikation Testidentitäten erlaubt werden. Diese Testidentitäten können auch bei produktiven Instanzen freigeschalten werden, da die Unterschiedung zwischen Produkt- und Testidentität anhand einer speziellen OID im Signaturzertifikat der Testidentität getroffen wird. Folgende Konfigurationsparameter stehen hierfür zur Verfügung.</p> -<table width="1250" border="1"> +<table class="configtable"> <tr> - <th width="167" scope="col">Name</th> - <th width="168" scope="col">Beispielwert</th> - <th width="43" scope="col">Admin</th> - <th width="57" scope="col">Optional</th> - <th width="781" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Admin</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td><span id="wwlbl_newOA_generalOA_useMandates2">Testidentitäten erlauben</span></td> @@ -1835,15 +1877,15 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der </table> <p> </p> <p><strong>Hinweis:</strong> Diese Funktionalität steht jedoch nur Testidentitäten welchen bereits mit einer Test OID im Signaturzertifikat ausgestattet sind zur Verfügung.</p> -<h3><a name="konfigurationsparameter_oa_mandates" id="uebersicht_zentraledatei_aktualisierung21"></a>3.2.4 Vollmachten</h3> +<h4><a name="konfigurationsparameter_oa_mandates" id="uebersicht_zentraledatei_aktualisierung21"></a>3.2.4 Vollmachten</h4> <p>Dieser Abschnitt behandelt online-applikationsspezifische Einstellungen zur Anmeldung mittels Online-Vollmachen.</p> -<table width="1250" border="1"> +<table class="configtable"> <tr> - <th width="167" scope="col">Name</th> - <th width="168" scope="col">Beispielwert</th> - <th width="43" scope="col">Admin</th> - <th width="57" scope="col">Optional</th> - <th width="781" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Admin</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td><span id="wwlbl_newOA_generalOA_useMandates">Vollmachten (ja/nein)</span></td> @@ -1869,15 +1911,15 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der </table> <p> </p> <p><strong>Hinweis:</strong> Werden für die Online-Applikation eigene Templates für die Bürgerkartenauswahl oder die zusätzliche Anmeldeabfrage im SSO Fall (siehe <a href="#konfigurationsparameter_oa_bku">Abschnitt 3.2.2</a>) 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.</p> -<h3><a name="konfigurationsparameter_oa_sso" id="uebersicht_zentraledatei_aktualisierung22"></a>3.2.5 Single Sign-On (SSO)</h3> +<h4><a name="konfigurationsparameter_oa_sso" id="uebersicht_zentraledatei_aktualisierung22"></a>3.2.5 Single Sign-On (SSO)</h4> <p>Dieser Abschnitt behandelt online-applikationsspezifische Einstellungen zu Single Sign-On</p> -<table width="1248" border="1"> +<table class="configtable"> <tr> - <th width="168" scope="col">Name</th> - <th width="189" scope="col">Beispielwert</th> - <th width="43" scope="col">Admin</th> - <th width="57" scope="col">Optional</th> - <th width="757" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Admin</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td><span id="wwlbl_OAuseSSO">Single Sign-On verwenden</span></td> @@ -1896,14 +1938,14 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der <p><strong>Hinweis:</strong> Diese Abfrage ist standardmäßig aktiviert und kann nur durch einen Benutzer mit der Role <em>admin</em> deaktiviert werden.</p></td> </tr> </table> -<h3><a name="konfigurationsparameter_oa_stork" id="uebersicht_zentraledatei_aktualisierung23"></a>3.2.6 Secure idenTity acrOss boRders linKed (STORK)</h3> +<h4><a name="konfigurationsparameter_oa_stork" id="uebersicht_zentraledatei_aktualisierung23"></a>3.2.6 Secure idenTity acrOss boRders linKed (STORK)</h4> <p>Dieser Abschnitt behandelt Online-Applikationsspezifische Einstellungen zu STORK.</p> -<table width="1250" border="1"> +<table class="configtable"> <tr> - <th width="167" scope="col">Name</th> - <th width="68" scope="col">Beispielwert</th> - <th width="57" scope="col">Optional</th> - <th width="781" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td>STORK verwenden</td> @@ -1934,18 +1976,18 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der </table> <p> </p> <p><strong>Hinweis:</strong> Werden für die Online-Applikation eigene Templates für die Bürgerkartenauswahl oder die zusätzliche Anmeldeabfrage im SSO Fall (siehe <a href="#konfigurationsparameter_oa_bku">Abschnitt 3.2.2</a>) verwendet, stehen alle Konfigurationsparameter die Einfluss auf die BKU-Auswahl haben nicht zur Verfügung.</p> -<h3><a name="konfigurationsparameter_oa_protocol" id="uebersicht_zentraledatei_aktualisierung24"></a>3.2.7 Authentifizierungsprotokolle</h3> +<h4><a name="konfigurationsparameter_oa_protocol" id="uebersicht_zentraledatei_aktualisierung24"></a>3.2.7 Authentifizierungsprotokolle</h4> <p>Dieser Abschnitt behandelt online-applikationsspezifische Einstellungen zu den von der Online-Applikation unterstützen Authentifizierungsprotokollen. Eine Verwendung aller zur Verfügung stehender Authentifizierungsprotokolle durch die Online-Applikation ist ebenfalls möglich. Hierfür müssen nur alle benötigten Protokolle konfiguriert werden. Nähere Informationen zu den unterstützten Protokollen finden sie im Kapitel <a href="./../protocol/protocol.html">Protokolle</a>.</p> <p>Aus Gründen der Übersichtlichkeit kann der Konfigurationsbereich für jeden Protokoll, in der Web-Oberfläche des Konfigurationstools, ein- oder ausgeblendet werden.</p> -<h4><a name="konfigurationsparameter_oa_protocol_saml1" id="uebersicht_zentraledatei_aktualisierung25"></a>3.2.7.1 SAML1</h4> +<h5><a name="konfigurationsparameter_oa_protocol_saml1" id="uebersicht_zentraledatei_aktualisierung25"></a>3.2.7.1 SAML1</h5> <p>Für das Protokoll SAML1 stehen folgende Konfigurationsparameter zur Verfügung.</p> -<table width="1250" border="1"> +<table class="configtable"> <tr> - <th width="167" scope="col">Name</th> - <th width="168" scope="col">Beispielwert</th> - <th width="43" scope="col">Admin</th> - <th width="57" scope="col">Optional</th> - <th width="781" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Admin</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td><span id="wwlbl_loadOA_saml1OA_Active">SAML1 aktivieren</span></td> @@ -1992,15 +2034,15 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der </table> <p> </p> <p><strong>Hinweis: </strong>Das Modul MOA-ID-Auth in der Version 2.0 unterstützt SAML1 nur mehr zur Abwärtskompatibilität mit bereits bestehenden Online-Applikationen. Wir empfehlen den Umstieg auf ein anderes, von MOA-ID-Auth unterstütztes, Authentifizierungsprotokoll. Aus diesem Grund steht die Konfiguration des SAML1 Protokolls nur mehr einer Benutzerin oder einem Benutzer mit der Role <em>admin</em> zur Verfügung.</p> -<h4><a name="konfigurationsparameter_oa_protocol_pvp21" id="uebersicht_zentraledatei_aktualisierung26"></a>3.2.7.2 PVP 2.1</h4> +<h5><a name="konfigurationsparameter_oa_protocol_pvp21" id="uebersicht_zentraledatei_aktualisierung26"></a>3.2.7.2 PVP 2.1</h5> <p>In diesem Bereich erfolgt die applikationsspezifische Konfiguration für das Authentifizierungsprotokoll PVP 2.1.</p> -<table width="1250" border="1"> +<table class="configtable"> <tr> - <th width="87" scope="col">Name</th> - <th width="326" scope="col">Beispielwert</th> - <th width="59" scope="col">Admin</th> - <th width="60" scope="col">Optional</th> - <th width="684" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Admin</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td>Neu Laden</td> @@ -2015,7 +2057,7 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der <td align="center"> </td> <td align="center"> </td> <td>URL unter der die MOA-ID-Auth Instanz die Metadaten der Online-Applikation beziehen kann. Diese Metadaten müssen durch die Online-Applikation signiert sein. Für den Fall das die Metadaten über https abgeholt werden, muss das jeweilige Serverzertifikat zur Zertifikatsprüfung im <a href="../install/install.html#webservice_basisinstallation_installation_spssdeploy">TrustStore der MOA-ID-Auth Instanz</a> hinterlegt sein. Die Metadaten werden anschließend durch MOA-ID-Auth innerhalb des in den Metadaten angegebenen Gültigkeitszeitraums automatisch aktualisiert. Das Aktualisierungsintervall bei automatischer Aktualisierung beträgt jedoch mindestens 15 Minuten jedoch nicht mehr als 24 Stunden. (Intervall: 15min < Aktualisierungszeitpunkt < 24 Stunden) - <p><b>Hinweis:</b> Metadaten können nur über http oder https bezogen werden. Das Laden von Metadaten aus dem lokalen Verzeichnissystem ist nicht möglich.</p></td> + <p><b>Hinweis:</b> Metadaten k\F6nnen nur \FCber http oder https bezogen werden. Das Laden von Metadaten aus dem lokalen Verzeichnissystem ist nicht m\F6glich.</p></td> </tr> <tr> <td>Infos zum Zertifikat</td> @@ -2033,15 +2075,15 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der <td>Zertifikat mit dem die Metadaten der Online-Applikation signiert sind. Dieses wird benötigt um die Metadaten zu verifizieren.</td> </tr> </table> -<h4><a name="konfigurationsparameter_oa_protocol_openIDConnect" id="uebersicht_zentraledatei_aktualisierung27"></a>3.2.7.3 OpenID Connect</h4> +<h5><a name="konfigurationsparameter_oa_protocol_openIDConnect" id="uebersicht_zentraledatei_aktualisierung27"></a>3.2.7.3 OpenID Connect</h5> <p>In diesem Bereich erfolgt die applikationsspezifische Konfiguration für OpenID Connect (OAuth 2.0). </p> -<table width="1250" border="1"> +<table class="configtable"> <tr> - <th width="87" scope="col">Name</th> - <th width="221" scope="col">Beispielwert</th> - <th width="58" scope="col">Admin</th> - <th width="64" scope="col">Optional</th> - <th width="786" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Admin</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td>Client ID</td> @@ -2065,17 +2107,17 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der <td>OpenID Connect Redirect URL. Nach erfolgreicher Authentifizierung wird die Benutzerin oder der Benutzer an diese URL zurückgeleitet.</td> </tr> </table> -<h4><a name="konfigurationsparameter_oa_additional" id="uebersicht_zentraledatei_aktualisierung28"></a>3.2.8 Zusätzliche allgemeine Einstellungen</h4> -<p>In Abschnitt ermöglicht eine erweiterte online-applikationsspezifische Individualisierung des AuthBlocks und der Bürgerkartenauswahl. - Die Individualisierung des AuthBlocks steht jedoch dann zur Verfügung wenn die dem Module MOA-ID-Auth beigelegte Security-Layer Transformation verwendet wird oder +<h5><a name="konfigurationsparameter_oa_additional" id="uebersicht_zentraledatei_aktualisierung28"></a>3.2.8 Zusätzliche allgemeine Einstellungen</h5> +<p>In Abschnitt erm\F6glicht eine erweiterte online-applikationsspezifische Individualisierung des AuthBlocks und der B\FCrgerkartenauswahl. + Die Individualisierung des AuthBlocks steht jedoch dann zur Verf\FCgung wenn die dem Module MOA-ID-Auth beigelegte Security-Layer Transformation verwendet wird oder wenn die individuelle Security-Layer Transformation den Formvorschriften der Spezifikation entspricht.</p> -<table width="1250" border="1"> +<table class="configtable"> <tr> - <th width="87" scope="col">Name</th> - <th width="221" scope="col">Beispielwert</th> - <th width="58" scope="col">Admin</th> - <th width="64" scope="col">Optional</th> - <th width="786" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Admin</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td>AuthblockText</td> @@ -2097,71 +2139,71 @@ wenn die individuelle Security-Layer Transformation den Formvorschriften der Sp <td> </td> <td align="center"> </td> <td align="center">X</td> - <td>Wird diese Option gewählt wird im AuthBlock, welcher im Anmeldevorgang signiert wird, keine bPK oder wbPK dargestellt.</td> + <td>Wird diese Option gew\E4hlt wird im AuthBlock, welcher im Anmeldevorgang signiert wird, keine bPK oder wbPK dargestellt.</td> </tr> </table> -<h4><a name="konfigurationsparameter_oa_additional_formular" id="uebersicht_zentraledatei_aktualisierung29"></a>3.2.8.1 Login-Fenster Konfiguration</h4> -<p>Diese Konfigurationsparameter bieten zusätzliche Einstellungen für eine Anpassung der Bürgerkartenauswahl welche von MOA-ID-Auth generiert wird. +<h5><a name="konfigurationsparameter_oa_additional_formular" id="uebersicht_zentraledatei_aktualisierung29"></a>3.2.8.1 Login-Fenster Konfiguration</h5> +<p>Diese Konfigurationsparameter bieten zus\E4tzliche Einstellungen f\FCr eine Anpassung der B\FCrgerkartenauswahl welche von MOA-ID-Auth generiert wird. Zur besseren Handhabung werden die angegebenen Parameter direkt in einer Vorschau dargestellt. -Alle in diesem Abschnitt angegebenen Parameter sind Optional und werden bei Bedarf durch Standardwerte ergänzt. +Alle in diesem Abschnitt angegebenen Parameter sind Optional und werden bei Bedarf durch Standardwerte erg\E4nzt. </p> -<table width="1250" border="1"> +<table class="configtable"> <tr> - <th width="87" scope="col">Name</th> - <th width="221" scope="col">Beispielwert</th> - <th width="58" scope="col">BKU-Auswahl</th> - <th width="64" scope="col">SL-Template</th> - <th width="786" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>BKU-Auswahl</th> + <th>SL-Template</th> + <th>Beschreibung</th> </tr> <tr> <td>Hintergrundfarbe</td> <td>#E5E5E5</td> <td align="center">X</td> <td align="center">X</td> - <td>Hintergrundfarbe der Bürgerkartenauswahl und Hintergrundfarbe des Java-Applets der Online-BKU (wird über den Security-Layer Request angegeben). Die Angabe der Farbe erfolgt als RGB Wert in hexadezimaler Form.</td> + <td>Hintergrundfarbe der B\FCrgerkartenauswahl und Hintergrundfarbe des Java-Applets der Online-BKU (wird über den Security-Layer Request angegeben). Die Angabe der Farbe erfolgt als RGB Wert in hexadezimaler Form.</td> </tr> <tr> <td>Vordergrundfarbe</td> <td>#E5E5E5</td> <td align="center">X</td> <td align="center"> </td> - <td>Vordergrundfarbe (Textfarbe) der Bürgerkartenauswahl. Die Angabe der Farbe erfolgt als RGB Wert in hexadezimaler Form.</td> + <td>Vordergrundfarbe (Textfarbe) der B\FCrgerkartenauswahl. Die Angabe der Farbe erfolgt als RGB Wert in hexadezimaler Form.</td> </tr> <tr> - <td>Hintergrundfarbe Überschrift</td> + <td>Hintergrundfarbe \DCberschrift</td> <td>#E5E5E5</td> <td align="center">X</td> <td align="center"> </td> - <td>Hintergrundfarbe der Überschrift der Bürgerkartenauswahl. Die Angabe der Farbe erfolgt als RGB Wert in hexadezimaler Form.</td> + <td>Hintergrundfarbe der \DCberschrift der B\FCrgerkartenauswahl. Die Angabe der Farbe erfolgt als RGB Wert in hexadezimaler Form.</td> </tr> <tr> - <td>Vordergrundfarbe Überschrift</td> + <td>Vordergrundfarbe \DCberschrift</td> <td>#E5E5E5</td> <td align="center">X</td> <td align="center"> </td> - <td>Vordergrundfarbe (Textfarbe) der Überschrift der Bürgerkartenauswahl. Die Angabe der Farbe erfolgt als RGB Wert in hexadezimaler Form.</td> + <td>Vordergrundfarbe (Textfarbe) der \DCberschrift der B\FCrgerkartenauswahl. Die Angabe der Farbe erfolgt als RGB Wert in hexadezimaler Form.</td> </tr> <tr> - <td>Überschriftstext</td> + <td>\DCberschriftstext</td> <td>Anmeldung</td> <td align="center">X</td> <td align="center"> </td> - <td>Die hier angegebene Zeichenkette wird als Überschrift in der Bürgerkartenauswahl dargestellt. Es sind jedoch nur Buchstaben, Zahlen und Satzzeichen erlaubt.</td> + <td>Die hier angegebene Zeichenkette wird als \DCberschrift in der B\FCrgerkartenauswahl dargestellt. Es sind jedoch nur Buchstaben, Zahlen und Satzzeichen erlaubt.</td> </tr> <tr> <td>Targetparameter</td> <td> </td> <td align="center"> </td> <td align="center">X</td> - <td>Mit diesem Parameter kann der Redirect-Target welcher im Security-Layer Request an die BKU übergeben wird definiert werden. Die möglichen Parameter sind äquivalent zum + <td>Mit diesem Parameter kann der Redirect-Target welcher im Security-Layer Request an die BKU \FCbergeben wird definiert werden. Die m\F6glichen Parameter sind \E4quivalent zum html Attribut <i>target</i> (siehe <a href="#import_template_sltemplate">Kapitel 4.3</a>). </td> </tr> <tr> - <td>Applethöhe</td> + <td>Appleth\F6he</td> <td>220</td> <td align="center"> </td> <td align="center">X</td> - <td>Mit diesem Parameter kann die Höhe des Java-Applets der Online-BKU definiert werden. Dieser Parameter überschreibt einen in der BKU-Auswahl übergebenen Parameter (siehe <a href="#import_template_bku">Kapitel 3.4.1</a>).</td> + <td>Mit diesem Parameter kann die H\F6he des Java-Applets der Online-BKU definiert werden. Dieser Parameter überschreibt einen in der BKU-Auswahl übergebenen Parameter (siehe <a href="#import_template_bku">Kapitel 3.4.1</a>).</td> </tr> <tr> <td>Appletbreite</td> @@ -2175,27 +2217,27 @@ Alle in diesem Abschnitt angegebenen Parameter sind Optional und werden bei Beda <td> </td> <td align="center">X</td> <td align="center"> </td> - <td>Dieses Feld erlaubt die Auswahl der gewünschten Schriftart, welche für die BKU-Auswahl verwendet werden soll. Es kann jedoch nur eine Schriftart gewählt werden.</td> + <td>Dieses Feld erlaubt die Auswahl der gew\FCnschten Schriftart, welche f\FCr die BKU-Auswahl verwendet werden soll. Es kann jedoch nur eine Schriftart gew\E4hlt werden.</td> </tr> <tr> <td>Formularschrifttyp (Textfeld)</td> <td> </td> <td align="center">X</td> <td align="center"> </td> - <td>Dieses Textfeld erlaubt die Konfiguration eine Liste von Schriftarten, welche für die BKU-Auswahl verwendet werden soll. - Die Angabe erfolgt mittels einer durch "<i>,"</i> getrennten Liste, äquivalent zur Schriftartendefinition laut HTML Spezifikation</td> + <td>Dieses Textfeld erlaubt die Konfiguration eine Liste von Schriftarten, welche f\FCr die BKU-Auswahl verwendet werden soll. + Die Angabe erfolgt mittels einer durch "<i>,"</i> getrennten Liste, \E4quivalent zur Schriftartendefinition laut HTML Spezifikation</td> </tr> </table> <p> </p> -<p><strong>Hinweis:</strong> Bei Verwendung einer online-applikationsspezifischen Bürgerkartenauswahl stehen alle Parameter die die Bürgerkartenauswahl betreffen nicht zur Verfügung.</p> -<p><strong>Hinweis:</strong> Bei Verwendung eines online-applikationsspezifischen Security-Layer-Request Templates stehen alle Parameter die das SL-Template betreffen nicht zur Verfügung.</p> -<h4><a name="konfigurationsparameter_oa_additional_encbpk" id="uebersicht_zentraledatei_aktualisierung31"></a>3.2.8.2 Fremd-bPK Konfiguration</h4> +<p><strong>Hinweis:</strong> Bei Verwendung einer online-applikationsspezifischen B\FCrgerkartenauswahl stehen alle Parameter die die B\FCrgerkartenauswahl betreffen nicht zur Verf\FCgung.</p> +<p><strong>Hinweis:</strong> Bei Verwendung eines online-applikationsspezifischen Security-Layer-Request Templates stehen alle Parameter die das SL-Template betreffen nicht zur Verf\FCgung.</p> +<h5><a name="konfigurationsparameter_oa_additional_encbpk" id="uebersicht_zentraledatei_aktualisierung31"></a>3.2.8.2 Fremd-bPK Konfiguration</h5> <p>Dieser Konfigurationsparameter ermöglicht die Konfiguration eines Key Stores, welcher im Falle einer<a href="../interfederation/interfederation.html"> Anmeldung mittels Single Sign-On Interfederation</a> zur Entschlüsselung einer verschlüsselten Fremd-bPK verwendet werden soll. Hierfür sind folgende Konfigurationsparameter notwenig.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="272" scope="col">Name</th> - <th width="147" scope="col">Beispielwert</th> - <th width="806" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>KeyStore hochladen</td> @@ -2220,18 +2262,18 @@ Alle in diesem Abschnitt angegebenen Parameter sind Optional und werden bei Beda </table> <p> </p> <p><strong>Hinweis:</strong> Diese Konfiguration ist jedoch nur nötig wenn die für das Modul MOA-ID-Auth Interfederation verwendet und von weiteren Identity Providern in der Federation Fremd-bPKs übermittelt werden welche bereits im Modul MOA-ID-Auth entschlüsselt werden sollen (z.B. bei Verwendung von SAML 1 als Authentifizierungsprotokoll). Bei Verwendung von PVP 2.1 und OpenID Connect kann die Fremd-bPK auch direkt an die Online Applikation weitergeben werden wodurch eine Entschlüsselung auf Seiten des Modules MOA-ID-Auth nicht zwingend notwendig ist.</p> -<h2><a name="import_export" id="uebersicht_zentraledatei_aktualisierung4"></a>3.3 Import / Export</h2> -<p>Über diese Funktionalität besteht die Möglichkeit eine bestehende MOA-ID 1.5.1 -Konfiguration in MOA-ID 2.0 zu importieren. Zusätzlich besteht die Möglichkeit eine MOA-ID-Auth 2.0 +<h3><a name="import_export" id="uebersicht_zentraledatei_aktualisierung4"></a>3.3 Import / Export</h3> +<p>\DCber diese Funktionalit\E4t besteht die M\F6glichkeit eine bestehende MOA-ID 1.5.1 +Konfiguration in MOA-ID 2.0 zu importieren. Zus\E4tzlich besteht die M\F6glichkeit eine MOA-ID-Auth 2.0 Konfiguration in ein XML Dokument zu exportieren oder in eine bestehende MOA-ID-Auth 2.0 XML Konfiguration zu importieren. Eine exportierte MOA-ID-Auth 2.0 XML-Konfiguration kann auch direkt zur Konfiguration des Modules MOA-ID-Auth herangezogen werden (siehe <a href="#basisconfig_moa_id_auth_param_general">Kapitel 2.2.2.1</a>)</p> <p><strong>Hinweis:</strong> Zu beachten ist, dass bei einem Import die aktuell vorhandene - Konfiguration vollständig gelöscht und durch die importierte Konfiguration ersetzt wird. + Konfiguration vollst\E4ndig gel\F6scht und durch die importierte Konfiguration ersetzt wird. Es wird empfohlen ein Backup einer eventuell vorhandenen MOA-ID 2.0 Konfiguration - zu erstellen, bevor eine neue Konfiguration importiert wird. Hierfür kann die + zu erstellen, bevor eine neue Konfiguration importiert wird. Hierf\FCr kann die Exportfunktion verwendet werden.</p> -<h3><a name="import_export_legacy" id="uebersicht_zentraledatei_aktualisierung5"></a>3.3.1 Import alter Konfigurationen (<= MOA-ID 1.5.1)</h3> +<h4><a name="import_export_legacy" id="uebersicht_zentraledatei_aktualisierung5"></a>3.3.1 Import alter Konfigurationen (<= MOA-ID 1.5.1)</h4> <p>Es besteht auch die Möglichkeit eine bestehende MOA-ID 1.5.1 Konfiguration zu importieren. Da nicht alle neuen Konfigurationsparameter automatisiert aus der MOA-ID 1.5.1 Konfiguration erstellt werden sind für den Importvorgang mehrere Schritte notwendig.</p> <ol> <li>Importieren einer bestehenden MOA-ID 1.5.1 Konfiguration mithilfe der Import Funktion des Modules MOA-ID-Configuration. Danach sollten sowohl die allgemeine Konfiguration als auch die Online-Applikationen eingetragen sein. </li> @@ -2257,16 +2299,16 @@ Exportfunktion verwendet werden.</p> </ol> <h2><a name="import_template_" id="uebersicht_zentraledatei_Templates"></a>4 Templates</h2> <p>Dieser Abschnitt spezifiziert den Mindestaufbau der Templates für die BKU Auswahl, die Single Sign-On Anmeldeabfrage und die Security-Layer Request Templates welche vo Module MOA-ID-Auth verwendet werden. Alle hier beschriebenen Templates werden durch MOA-ID-Auth geladen, erweitert und gegeben falls der Benutzerin oder dem Benutzer im Web-Browser dargestellt. Um einen korrekten Anmeldeprozess zu gewährleisten müssen diese Templates mindestens folgende Formvorschriften und Strukturen aufweisen.</p> -<h3><a name="import_template_bku" id="uebersicht_zentraledatei_aktualisierung6"></a>4.1 Bürgerkartenauswahl</h3> +<h4><a name="import_template_bku" id="uebersicht_zentraledatei_aktualisierung6"></a>4.1 B\FCrgerkartenauswahl</h4> <p>Das BKU Template dient im Anmeldeprozess der Auswahl der gewünschten Bürgerkatenumgebung oder Handysignatur. Nach erfolgter Auswahl durch die Benutzer oder dem Benutzer wird diese an MOA-ID-Auth übermittelt. </p> <p><strong>Hinweis:</strong> In der Datei <em>./htmlTemplates/loginFormFull.html</em> welcher sich relativ zur <a href="#uebersicht_bekanntmachung">MOA-ID-Auth Konfigurationsdatei</a> befindet finden Sie das Standard Template welches für den Anmeldevorgang verwendet wird, wenn kein online-applikationsspezifisches Template hinterlegt wurde. Dieses Standard Template unterstützt Responsive Design und passt sich somit in einem weiten Bereich an die aktuelle Fenstergröße an.</p> <p>Für die Übermittlung an MOA-ID-Auth ist ein http GET Request vorgesehen welcher folgende Parameter unterstützt. Die URL dieses http GET Request wird automatisiert über den Parameter „#AUTH_URL#“ (ohne „“) eingetragen und muss nicht manuell hinterlegt werden. Folgende http GET Parameter werden für die BKU-Auswahl akzeptiert.</p> -<table width="1201" border="1"> +<table class="configtable"> <tr> - <th width="167" scope="col">Name</th> - <th width="168" scope="col">Beispielwert</th> - <th width="57" scope="col">Optional</th> - <th width="781" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td>bkuURI</td> @@ -2313,11 +2355,11 @@ Exportfunktion verwendet werden.</p> </table> <p><br> Einige dieser Parameter werden jedoch nicht durch den Benutzer oder dem Service-Provider sondern durch das Modul MOA-ID-Auth im Rahmen des Anmeldeprozesses automatisiert, an im Template gekennzeichneten Stellen, eingetragen. Folgende Platzhalter stehen zur Verfügung und werden von MOA-ID-Auth durch die jeweiligen Werte ersetzt. Alle nicht als Optional gekennzeichneten Platzhalter müssen durch MOA-ID-Auth ersetzt werden.</p> -<table width="1198" border="1"> +<table class="configtable"> <tr> - <th width="167" scope="col">Name</th> - <th width="63" scope="col">Optional</th> - <th width="946" scope="col">Beschreibung</th> + <th>Name</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td>#AUTH_URL#</td> @@ -2356,17 +2398,17 @@ Einige dieser Parameter werden jedoch nicht durch den Benutzer oder dem Service </form> </pre> <p>Als Beispiel für ein BKU-Auswahl Template steht auch das bei MOA-ID-Auth hinterlegte Standardtemplate zur Verfügung. Dieses finden Sie <a href="../../htmlTemplates/BKU-selection.html">hier</a>. </p> -<h3><a name="import_template_sso" id="uebersicht_zentraledatei_aktualisierung7"></a>4.2 Single Sign-On Anmeldeabfrage</h3> +<h4><a name="import_template_sso" id="uebersicht_zentraledatei_aktualisierung7"></a>4.2 Single Sign-On Anmeldeabfrage</h4> <p>Das Send-Assertion Template dient im Falle einer Anmeldung mittels Single Sign-On der Abfrage ob die Anmeldedaten an die betreffende Online Applikation übertragen werden dürfen. </p> <p><strong>Hinweis:</strong> In der Datei <em>./htmlTemplates/sendAssertionFormFull.html</em> welcher sich relativ zur <a href="#uebersicht_bekanntmachung">MOA-ID-Auth Konfigurationsdatei</a> befindet finden Sie das Standard Template welches für den Anmeldevorgang verwendet wird, wenn kein online-applikationsspezifisches Template hinterlegt wurde. Dieses Standard Template unterstützt Responsive Design und passt sich somit in einem weiten Bereich an die aktuelle Fenstergröße an.</p> <p>Ähnlich dem Template für die Bürgerkartenauswahl müssen auch hierbei Formvorschriften und Strukturen im Aufbau des Templates eingehalten werden.<br> Für die Übermittlung an das Modul MOA-ID-Auth ist ein http POST Request vorgesehen welcher folgende Parameter unterstützt. Die URL, an welche dieser http POST Request gesendet werden muss, wird automatisiert über den Parameter „#URL#“ (ohne „“) eingetragen und muss nicht manuell hinterlegt werden.</p> -<table width="1201" border="1"> +<table class="configtable"> <tr> - <th width="167" scope="col">Name</th> - <th width="168" scope="col">Beispielwert</th> - <th width="57" scope="col">Optional</th> - <th width="781" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td>mod</td> @@ -2395,11 +2437,11 @@ Für die Übermittlung an das Modul MOA-ID-Auth ist ein http POST Reques </table> <p><br> Einige dieser Parameter werden jedoch nicht durch den Benutzer oder dem Service-Provider sondern durch das Modul MOA-ID-Auth im Rahmen des Anmeldeprozesses automatisiert, an im Template gekennzeichneten Stellen, eingetragen. Folgende Platzhalter stehen zur Verfügung und werden von MOA-ID-Auth durch die jeweiligen Werte ersetzt. Alle nicht als Optional gekennzeichneten Platzhalter müssen durch MOA-ID-Auth ersetzt werden.</p> -<table width="1198" border="1"> +<table class="configtable"> <tr> - <th width="167" scope="col">Name</th> - <th width="63" scope="col">Optional</th> - <th width="946" scope="col">Beschreibung</th> + <th>Name</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td>#URL#</td> @@ -2424,15 +2466,15 @@ Einige dieser Parameter werden jedoch nicht durch den Benutzer oder dem Service </table> <p><br> Die nachfolgende Form zeigt ein Beispiel für den Aufbau des im BKU-Auswahl Template zu verwendeten http GET Request Templates für die lokale BKU.</p> -<pre><form method="post" id="moaidform_yes" action="#URL#"><br> - <input type="hidden" name="value" value="true"><br> - <input type="hidden" name="mod" value="#MODUL#"><br> - <input type="hidden" name="action" value="#ACTION#"><br> - <input type="hidden" name="identifier" value="#ID#"><br> - <input type="submit" size="400" value="Ja"><br> +<pre><form method="post" id="moaidform_yes" action="#URL#"> + <input type="hidden" name="value" value="true"> + <input type="hidden" name="mod" value="#MODUL#"> + <input type="hidden" name="action" value="#ACTION#"> + <input type="hidden" name="identifier" value="#ID#"> + <input type="submit" size="400" value="Ja"> </form></pre> <p>Als Beispiel für ein Single Sign-On Anmeldeabfrage Template steht auch das bei MOA-ID-Auth hinterlegte Standardtemplate zur Verfügung. Dieses finden Sie <a href="../../htmlTemplates/sendAssertion.html">hier</a>.</p> -<h3><a name="import_template_sltemplate" id="uebersicht_zentraledatei_aktualisierung8"></a>4.3 Security-Layer Request</h3> +<h4><a name="import_template_sltemplate" id="uebersicht_zentraledatei_aktualisierung8"></a>4.3 Security-Layer Request</h4> <p>Das Security-Layer (SL) Request Template dient zur Kommunikation zwischen dem Modul MOA-ID-Auth und der gewählten Bürgerkartenumgebung. Diese Kommunikation erfolgt über ein http Formular welches als http POST Request an die Bürgerkartenumgebung gesendet wird. Bei MOA-ID-Auth werden SL Templates mitgeliefert, wobei einige Template Parameter auch über das Konfigurationstool je Online-Applikation angepasst werden können (siehe <a href="#konfigurationsparameter_oa_additional_formular">Kapitel 3.2.7.1</a>).</p> <p>Für den Fall das individuelle Anpassungen am SL Template erforderlich sind müssen diese folgende Formvorschriften erfüllen.</p> <pre><form name="CustomizedForm" action="<BKU>" method="post"> @@ -2443,11 +2485,11 @@ Die nachfolgende Form zeigt ein Beispiel für den Aufbau des im BKU-Auswahl </form> </pre> <p>Innerhalb dieser <form>-Elemente können Texte, Beschriftungen und Styles modifiziert werden, und es können zusätzliche Elemente darin aufgenommen werden. Die vorgegebene Grundstruktur ist aber in jedem Fall einzuhalten, und es müssen die speziellen Tags <em><BKU></em> (kommt 2x vor), <em><XMLRequest></em>, <em><DataURL></em> darin enthalten sein.</p> -<table width="1198" border="1"> +<table class="configtable"> <tr> - <th width="167" scope="col">Name</th> - <th width="63" scope="col">Optional</th> - <th width="946" scope="col">Beschreibung</th> + <th>Name</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td><BKU></td> @@ -2467,11 +2509,11 @@ Die nachfolgende Form zeigt ein Beispiel für den Aufbau des im BKU-Auswahl </table> <p> </p> <p>Folgende zusätzliche Tags zur Layout Anpassung (siehe <a href="#konfigurationsparameter_oa_additional_formular">Kapitel 3.2.7.1</a>) stehen optional zur Verfügung und können über das SL Template an die Bürgerkartenumgebung übergeben werden. Ein Beispiel für die Verwendung dieser zusätzlichen Tags finden Sie im beigelegten <a href="../../htmlTemplates/template_onlineBKU.html">SL Template</a>.</p> -<table width="1198" border="1"> +<table class="configtable"> <tr> - <th width="167" scope="col">Name</th> - <th width="63" scope="col">Optional</th> - <th width="946" scope="col">Beschreibung</th> + <th>Name</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td height="24"><REDIRECTTARGET></td> @@ -2496,22 +2538,22 @@ Die nachfolgende Form zeigt ein Beispiel für den Aufbau des im BKU-Auswahl </table> <p> </p> <p><strong>Hinweis: </strong>Das in MOA-ID 1.5.1 verwendete Security-Layer Template ist kompatibel zu dem in MOA-ID 2.0 verwendeten Security-Layer Template. Jedoch stehen bei dem Template aus MOA-ID 1.5.1 die zusätzlichen Parameter zur Konfiguration mittels Konfigurationstool nicht zur Verfügung.</p> -<h1><a name="sp-config" id="sp-config">5 Konfiguration von MOA-SP</a></h1> +<h2><a name="sp-config" id="sp-config"></a>5 Konfiguration von MOA-SP</h2> <p>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. <br> <br> - <strong verifytransformsinfoprofile"="">VerifyTransformsInfoProfile</strong><br> + <strong verifytransformsinfoprofile="">VerifyTransformsInfoProfile</strong><br> Der Request zum Überprüfen der Signatur des AUTH-Blocks verwendet ein vordefiniertes VerifyTransformsInfoProfile. Die im Request verwendete Profil-ID wird in der MOA-ID-Auth Konfiguration im Parameter <a href="#konfigurationsparameter_allgemein_moasp">Authentfizierungsblock Transformationen</a> definiert. Entsprechend muss am MOA-SP Server ein VerifyTransformsInfoProfile mit gleichlautender ID definiert werden. Die Profiledefinition selbst ist in der Auslieferung von MOA-ID in $MOA_ID_INST_AUTH/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_DE_2.0.xml enthalten. Diese Profildefinition muss unverändert übernommen werden. </p> <p id="trustProfile"> <strong>TrustProfile</strong><br> Die Requests zur Überprüfung der Signatur verwenden vordefinierte TrustProfile. Die im Request verwendete Profil-IDs werden in der MOA-ID-Auth Konfiguration in den Parametern <a href="#konfigurationsparameter_allgemein_moasp">Personenbindung Trustprofil</a> und <a href="#konfigurationsparameter_allgemein_moasp">Authentfizierungsblock Trustprofil</a> definiert. Diese beiden Elemente können unterschiedliche oder identische TrustProfileIDs enthalten. Am MOA-SP Server müssen TrustProfile mit gleichlautender ID definiert werden. Die Auslieferung von MOA-ID enthält das Verzeichnis $MOA_ID_INST_AUTH/conf/moa-spss/trustprofiles/MOAIDBuergerkarteRoot, das als TrustProfile verwendet werden kann. Weitere Zertifikate können als vertrauenswürdig hinzugefügt werden. </p> <p id="certstore"> <strong>Certstore</strong><br> Zum Aufbau eines Zertifikatspfades können benötigte Zertifikate aus einem Zertifikatsspeicher verwendet werden. Die Auslieferung von MOA-ID enthält das Verzeichnis $MOA_ID_INST_AUTH/conf/moa-spss/certstore, das als initialer Zertifikatsspeicher verwendet werden kann. </p> <p>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 beiliegenden Dokumentation im Kapitel 'Konfiguration', Abschnitt 1.2.1.</p> -<h1><a name="security" id="security">6 Tomcat Security Manager</a></h1> +<h2><a name="security" id="security"></a>6 Tomcat Security Manager</h2> <p>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. Diese Datei wurde unter Apache Tomcat 4.1.31, 5.0.28 und 5.5.27 getestet. </p> <p>Mehr Informationen zum Security Manager entnehmen Sie bitte der entsprechenden Apache Tomcat Dokumentation. </p> <p> </p> -<h1><a name="referenzierte_spezifikation" id="uebersicht_zentraledatei_aktualisierung30"></a>A Referenzierte Spezifikation</h1> -<table class="fixedWidth" border="1" cellpadding="2"> +<h2><a name="referenzierte_spezifikation" id="uebersicht_zentraledatei_aktualisierung30"></a>A Referenzierte Spezifikation</h2> +<table class="configtable"> <tbody> <tr> <th>Spezifikation</th> @@ -2549,5 +2591,6 @@ Zum Aufbau eines Zertifikatspfades können benötigte Zertifikate aus ei </table> <p> </p> <p> </p> +</div> </body> </html> diff --git a/id/server/doc/handbook/index.html b/id/server/doc/handbook/index.html index c3b25b390..76d7da1b0 100644 --- a/id/server/doc/handbook/index.html +++ b/id/server/doc/handbook/index.html @@ -2,21 +2,35 @@ <html> <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" > + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>MOA ID - Übersicht</title> <link rel="stylesheet" href="./common/MOA.css" type="text/css"> + <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' type='text/css'> </head> -<body link="#990000"> +<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> + <div class="container"> + <td align="center" class="logoTitle" width="267"><img src="common/LogoBKA.png" alt="Logo BKA" width="200" 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> + <td align="center" class="logoTitle" width="123"><img src="common/LogoEGIZ.png" alt="Logo EGIZ" width="200" align="right"></td> + </div> </tr> </table> - <hr/> - <p class="title">MOA-ID (Identifikation) </p> - <p class="subtitle">Übersicht zur Dokumentation der Version 2.1.2 </p> - <hr/> + --> + + <div id="headline"> + <div class="container"> + <a href="http://www.digitales.oesterreich.gv.at/"><img src="common/logo_digAT.png"/></a> + <h1>MOA-ID-AUTH </h1> + <br/> + </div> + </div> + +<div class="container"> + <h2>Übersicht zur Dokumentation der Version 2.1.2 </h2> + <dl> <dt><a href="./intro/intro.html">Einführung</a></dt> <dd>Übersicht über die einzelnen Module.</dd> @@ -36,5 +50,6 @@ <dl> <dt> </dt> </dl> + </div> </body> </html> diff --git a/id/server/doc/handbook/install/install.html b/id/server/doc/handbook/install/install.html index 3b1a7e905..aa508183e 100644 --- a/id/server/doc/handbook/install/install.html +++ b/id/server/doc/handbook/install/install.html @@ -2,26 +2,23 @@ <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>MOA-ID - Installation</title> <link rel="stylesheet" href="../common/MOA.css" type="text/css"> + <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' 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"> </td> - </tr> - </table> - <hr/> - <p class="title"><a href="../index.html">MOA-ID (Identifikation) </a></p> -<p class="subtitle">Installation</p> - <hr/> - <h1>Inhalt</h1> - <ol> - <li> - <p><a href="#uebersicht">Übersicht</a><span class="logoTitle"><img src="../common/LogoEGIZ.png" alt="Logo EGIZ" width="230" height="81" align="right"></span></p> - </li> +<body link="#990000"> + <div id="headline"> + <div class="container"> + <a href="http://www.digitales.oesterreich.gv.at/"><img src="../common/logo_digAT.png"/></a> + <a href="../index.html"><h1>MOA-ID-AUTH </h1></a> + <br/> + </div> + </div> +<div class="container"> +<h1 align="center">Installation</h1> + <h2>Inhalt</h2> + <ol class="index"> <li> <p><a href="#webservice">MOA-ID-Auth und MOA-ID-Configuration</a></p> <ol> @@ -77,17 +74,16 @@ </li> </ol> </ol> - <ol type="A"> + <ol type="A" class="index"> <li><a href="#referenzierte_software">Referenzierte Software</a></li> </ol> - <hr/> - <h1><a name="uebersicht" id="uebersicht"></a>1 Übersicht</h1> + <h2><a name="uebersicht" id="uebersicht"></a>1 Übersicht</h2> <p>Die Module MOA-ID-Auth und MOA-ID-Configuration sind als plattformunabhängige Module ausgelegt. MOA-ID-Auth bietet Webservices über HTTPS zur Identifizierung und Authentifizierung an. Das Modul MOA-ID-Configuration stellt eine Weboberfläche zur Konfiguration des MOA-ID-Auth Modules zur Verfügung.</p> <p>Dieses Handbuch beschreibt die Installation der beiden Module.</p> -<h1><a name="webservice"></a>2 MOA-ID-Auth und MOA-ID-Configuration</h1> +<h2><a name="webservice"></a>2 MOA-ID-Auth und MOA-ID-Configuration</h2> <p>Dieser Abschnitt beschreibt die Installation von der Module MOA-ID-Auth und MOA-ID-Configuration. Im ersten Unterkapitel wird eine minimale Basisinstallation beschrieben. Das zweite Unterkapitel zeigt eine Reihe von optionalen Erweiterungsmöglichkeiten auf.</p> - <h2><a name="webservice_basisinstallation" id="webservice_basisinstallation"></a>2.1 Basisinstallation</h2> - <h3><a name="webservice_basisinstallation_einfuehrung" id="webservice_basisinstallation_einfuehrung"></a>2.1.1 Einführung </h3> + <h3><a name="webservice_basisinstallation" id="webservice_basisinstallation"></a>2.1 Basisinstallation</h3> + <h4><a name="webservice_basisinstallation_einfuehrung" id="webservice_basisinstallation_einfuehrung"></a>2.1.1 Einführung </h4> <p> Die Basisinstallation der Module MOA-ID-Auth und MOA-ID-Configuration stellt einerseits die minimalen Anforderungen für den Betrieb von MOA-ID dar, andererseits dient sie als Ausgangspunkt für optionale <a href="#webservice_erweiterungsmoeglichkeiten">Erweiterungsmöglichkeiten</a>.</p> <p>Die <strong>Mindestanforderungen</strong> für die Basisinstallation sind: </p> <ul> @@ -100,8 +96,8 @@ <li><a href="#referenziertesoftware">Apache Tomcat 7.0.50 bzw. Apache Tomcat 8.0.3</a> </li> </ul> <p>In diesem Betriebs-Szenario wird das MOA-ID-Auth Webservice und das MOA-ID Konfigurationstool in Tomcat zum Einsatz gebracht. Beide Module können sowohl in derselben Tomcat-Instanz, als auch in separaten Tomcat-Instanzen betrieben werden. Für den Fall des separaten Betriebs muss die Installation auf beiden Tomcat-Instanzen ausgeführt werden. In beiden Fällen fungiert der Tomcat gleichzeitig als HTTP- und HTTPS-Endpunkt für beide Module. Beide Protokolle werden direkt in Tomcat konfiguriert, wobei MOA-ID-Auth und MOA-ID-Configuration Log4j als Logging Toolkit verwenden.</p> -<h3><a name="webservice_basisinstallation_installation" id="webservice_basisinstallation_installation"></a>2.1.2 Installation</h3> -<h4><a name="webservice_basisinstallation_installation_vorbereitung" id="webservice_basisinstallation_installation_vorbereitung"></a>2.1.2.1 Vorbereitung</h4> +<h4><a name="webservice_basisinstallation_installation" id="webservice_basisinstallation_installation"></a>2.1.2 Installation</h4> +<h5><a name="webservice_basisinstallation_installation_vorbereitung" id="webservice_basisinstallation_installation_vorbereitung"></a>2.1.2.1 Vorbereitung</h5> <p>Die folgenden Schritte dienen der Vorbereitung der Installation.</p> <dl> <dt>Installation von Java SE</dt> @@ -121,11 +117,11 @@ <dd>Für den Betrieb von MOA-ID 2.0 wird eine Datenbank benötigt, wobei mySQL als Datenbank empfohlen wird (wurde mit mySQL getestet). Der Einsatz eines alternativen Datenbanksystems ist jedoch ebenfalls möglich. Für den Betrieb werden mindestens zwei getrennte Datenbank Schema benötig, da die Konfiguration und die Session Informationen getrennt abgelegt werden. Erstellen Sie zwei Datenbank Schemas welche von MOA-ID-Auth verwendet werden sollen. Deren Namen können z.B. auf <em>moa-id-session</em> für Sessiondaten und <em>moa-id-config</em> für die Konfiguration lauten. Beliebige andere Namen für die Datenbank Schema sind jedoch auch möglich. </dd> </dl> -<h4><a name="webservice_basisinstallation_installation_tomcatconfig" id="webservice_basisinstallation_installation_tomcatconfig"></a>2.1.2.2 Konfiguration von Apache Tomcat</h4> +<h5><a name="webservice_basisinstallation_installation_tomcatconfig" id="webservice_basisinstallation_installation_tomcatconfig"></a>2.1.2.2 Konfiguration von Apache Tomcat</h5> <p>Die zentrale Konfigurations-Datei von Tomcat ist <code>$CATALINA_HOME/conf/server.xml</code>. Tomcat wird grundsätzlich mit einer funktionierenden Default-Konfiguration ausgeliefert. </p> -<h5><a name="webservice_basisinstallation_installation_tomcatconfig_httpconn" id="webservice_basisinstallation_installation_tomcatconfig_httpconn"></a>2.1.2.2.1 Konfiguration des HTTP Connectors</h5> +<h6><a name="webservice_basisinstallation_installation_tomcatconfig_httpconn" id="webservice_basisinstallation_installation_tomcatconfig_httpconn"></a>2.1.2.2.1 Konfiguration des HTTP Connectors</h6> <p>Die Tomcat Default-Konfiguration schaltet ausschließlich den Connector für HTTP auf Port 8080 frei. Wir empfehlen diese Konfiguration nur für Fälle, in denen das MOA-ID-Configuration Modul in einer abgeschlossenen Netzwerkumgebung betrieben wird. Das Modul MOA-ID-Auth verlangt für Authentifizierungsanfragen zwingend HTTPS.</p> -<h5><a name="webservice_basisinstallation_installation_tomcatconfig_httpsconn" id="webservice_basisinstallation_installation_tomcatconfig_httpsconn"></a>2.1.2.2.2 Konfiguration des HTTPS Connectors</h5> +<h6><a name="webservice_basisinstallation_installation_tomcatconfig_httpsconn" id="webservice_basisinstallation_installation_tomcatconfig_httpsconn"></a>2.1.2.2.2 Konfiguration des HTTPS Connectors</h6> <p>Für den sicheren Betrieb von MOA-ID-AUTH ist die Verwendung von SSL Voraussetzung, sofern nicht ein vorgelagerter Webserver (Apache oder IIS) das SSL-Handling übernimmt. Ebenso kann SSL auch für MOA-ID-Configuration verwendet werden.</p> <p>Für die dazu notwendige Konfiguration kann die im vorigen Abschnitt besprochene minimale Tomcat-Konfiguration als Ausgangspunkt verwendet werden: Zunächst ist der HTTP Connector abzuschalten (auskommentieren). Anschließend ist der HTTPS Connector zu konfigurieren. Das Dokument <a href="http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html">Tomcat SSL Configuration HOW-TO </a> gibt einen guten Überblick dazu. Grob zusammengefasst sind folgende Schritte durchzuführen: </p> <ul> @@ -134,7 +130,7 @@ <li>Falls eine Client-Authentisierung gewünscht ist, muss die Konfiguration des SSL-Connectors in <code>$CATALINA_HOME/conf/server.xml</code> angepasst werden.</li> </ul> <p>Die Konfiguration des HTTPS Connectors kann entfallen, wenn Tomcat ein Webserver vorgeschaltet ist, und dieser die SSL-Kommunikation mit dem Kunden übernimmt (siehe <a href="#webservice_erweiterungsmoeglichkeiten_webserver">Abschnitt 2.2.1</a>).</p> - <h5><a name="webservice_basisinstallation_installation_spssdeploy" id="webservice_basisinstallation_installation_spssdeploy"></a>2.1.2.3 Einsatz des Moduls MOA-ID-Auth in Tomcat</h5> + <h6><a name="webservice_basisinstallation_installation_spssdeploy" id="webservice_basisinstallation_installation_spssdeploy"></a>2.1.2.3 Einsatz des Moduls MOA-ID-Auth in Tomcat</h6> <p> Um die Module MOA-ID-Auth und MOA-ID-Configuration in Tomcat für den Einsatz vorzubereiten, sind folgende Schritte notwendig:</p> <ul> <li>Die Datei <code>$MOA_ID_AUTH_INST/moa-id_auth.war</code> enthält das einsatzfertige MOA-ID-Auth Webarchiv und muss ins Verzeichnis <code>$CATALINA_HOME/webapps</code> kopiert werden. Dort wird sie beim ersten Start von Tomcat automatisch ins Verzeichnis <code>$CATALINA_HOME/webapps/moa-id-auth</code> entpackt. </li> @@ -153,7 +149,7 @@ </ul> </li> </ul> -<h5><a name="moa_id_configuration_deploy" id="webservice_basisinstallation_installation_spssdeploy2"></a>2.1.2.4 Einsatz des Moduls MOA-ID-Configuration in Tomcat</h5> +<h6><a name="moa_id_configuration_deploy" id="webservice_basisinstallation_installation_spssdeploy2"></a>2.1.2.4 Einsatz des Moduls MOA-ID-Configuration in Tomcat</h6> <ul> <li>Die Datei <code>$MOA_ID_AUTH_INST/moa-id_configuration.war</code> enthält das einsatzfertige MOA-ID-Configuration Webarchiv und muss ins Verzeichnis <code>$CATALINA_HOME/webapps</code> kopiert werden. Dort wird sie beim ersten Start von Tomcat automatisch ins Verzeichnis <code>$CATALINA_HOME/webapps/moa-id-configuration</code> entpackt. </li> <li>Die Konfigurationsdatei mit der Basiskonfiguration für MOA-ID-Auth und die zugehörigen Verzeichnisse müssen in ein beliebiges Verzeichnis im Dateisystem kopiert werden (z.B. <code>$CATALINA_HOME/conf/moa-id-configuration</code>). Eine funktionsfähige Konfiguration, die als Ausgangspunkt für die Basiskonfiguration des MOA-ID-Auth Modules dienen kann, finden Sie <a href="../../../conf/moa-id-configuration/moa-id-configtool.properties">hier</a>. <br> @@ -169,18 +165,18 @@ </ul> </li> </ul> -<h4><a name="webservice_basisinstallation_installation_tomcatstartstop" id="webservice_basisinstallation_installation_tomcatstartstop"></a>2.1.2.4 Starten und Stoppen von Tomcat</h4> -<h5><a name="webservice_basisinstallation_installation_tomcatstartstop_windows" id="webservice_basisinstallation_installation_tomcatstartstop_windows"></a>2.1.2.4.1 Unter Windows</h5> +<h5><a name="webservice_basisinstallation_installation_tomcatstartstop" id="webservice_basisinstallation_installation_tomcatstartstop"></a>2.1.2.4 Starten und Stoppen von Tomcat</h5> +<h6><a name="webservice_basisinstallation_installation_tomcatstartstop_windows" id="webservice_basisinstallation_installation_tomcatstartstop_windows"></a>2.1.2.4.1 Unter Windows</h6> <div id="block"> <p>Das Verzeichnis <code>$MOA_IA_AUTH_INST/tomcat/win32</code> enthält Script-Dateien zum Starten und Stoppen von Tomcat. Vor der erstmaligen Verwendung der Scripts müssen in den ersten Zeilen die Umgebungsvariablen <code>JAVA_HOME</code> (Basisverzeichnis der eingesetzten Java SE) und <code>CATALINA_HOME</code> (Basisverzeichnis der eingesetzten Tomcat-Installation) angepasst werden. Evtl. müssen Sie auch noch die in den Script-Dateien gesetzten, in Abschnitt 2.1.2.3 besprochenen <span class="term">System Properties</span> anpassen. </p> </div> -<h5><a name="webservice_basisinstallation_installation_tomcatstartstop_unix" id="webservice_basisinstallation_installation_tomcatstartstop_unix"></a>2.1.2.4.2 Unter Unix</h5> +<h6><a name="webservice_basisinstallation_installation_tomcatstartstop_unix" id="webservice_basisinstallation_installation_tomcatstartstop_unix"></a>2.1.2.4.2 Unter Unix</h6> <p>Zunächst müssen die in Abschnitt 2.1.2.3 besprochenen <span class="term">System Properties</span> mit Hilfe der Umgebungsvariablen <code>CATALINA_OPTS</code> gesetzt sein. Die Datei <code>$MOA_ID_AUTH_INST/tomcat/unix/moa-env.sh</code> enthält ein Beispiel dafür. Des Weiteren müssen noch die Umgebungsvariablen <code>JAVA_HOME</code> (Basisverzeichnis der eingesetzten Java SE) und <code>CATALINA_HOME</code> (Basisverzeichnis der eingesetzten Tomcat-Installation) angepasst werden.</p> <p>Nun kann Tomcat aus seinem Basisverzeichnis mit </p> <pre>bin/catalina.sh start</pre> gestartet werden. Das Stoppen von Tomcat erfolgt analog mit <pre>bin/catalina.sh stop</pre> -<h5><a name="webservice_basisinstallation_installation_tomcatstartstop_verify" id="webservice_basisinstallation_installation_tomcatstartstop_verify"></a>2.1.2.4.3 Prüfen des erfolgreichen Starts </h5> +<h6><a name="webservice_basisinstallation_installation_tomcatstartstop_verify" id="webservice_basisinstallation_installation_tomcatstartstop_verify"></a>2.1.2.4.3 Prüfen des erfolgreichen Starts </h6> <div id="block"> <p>Ein erfolgreicher Start des MOA-ID-Auth Modules ist an folgender Log-Meldung ersichtlich: <br> </p> @@ -200,7 +196,7 @@ http://<host>:<port>/moa-id-configuration/</pre> https://<host>:<port>/moa-id-auth/ https://<host>:<port>/moa-id-configuration/</pre> <p>Die Verfügbarkeit des Services können Sie einfach überprüfen, indem Sie die Endpunkte mit einem Web-Browser aufgerufen; dies sollte nach erfolgreichem Start zur Anzeige einer Informationsseite führen. </p> -<h4><a name="webservice_basisinstallation_logging" id="webservice_basisinstallation_logging"></a>2.1.3 Logging </h4> +<h5><a name="webservice_basisinstallation_logging" id="webservice_basisinstallation_logging"></a>2.1.3 Logging </h5> <p>Beide Module verwenden <a href="#referenziertesoftware">Log4j</a> für die Ausgabe von Log-Meldungen am Bildschirm bzw. in Log-Dateien. Log4j bietet zahlreiche Konfigurationsmöglichkeiten, die ausführlich im Log4j Handbuch beschrieben sind. Unter anderem gibt es die Möglichkeit, folgende Einstellungen vorzunehmen: <ul> <li id="klein"> @@ -227,7 +223,7 @@ https://<host>:<port>/moa-id-configuration/</pre> </li> </ul> <p>Eine für beide Module passende Konfigurationsdatei für Log4j finden Sie <a href="../../../conf/moa-spss/log4j.properties">hier</a>. Wird diese Datei als Logging-Konfiguration verwendet, so werden alle Log-Meldungen sowohl in die Konsole, als auch in die Dateien <code>moa-id-auth.log</code> und <code>moa-id-configuration.log</code> geschrieben. </p> - <h4><a name="webservice_basisinstallation_logging_format" id="webservice_basisinstallation_logging_format"></a>2.1.3.1 Format der Log-Meldungen</h4> + <h5><a name="webservice_basisinstallation_logging_format" id="webservice_basisinstallation_logging_format"></a>2.1.3.1 Format der Log-Meldungen</h5> <p> Anhand einer konkreten Log-Meldung wird das Format der MOA SP/SS Log-Meldungen erläutert: </p> <pre> INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=node1 @@ -254,7 +250,7 @@ INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=node1 <p>Der nächste Wert <code>01 21:25:26,540</code> gibt den Zeitpunkt an, zu dem die Log-Meldung generiert wurde (in diesem Fall den 1. Tag im aktuellen Monat, sowie die genaue Uhrzeit). </p> <p> Der Wert <code>Thread-3</code> bezeichnet den Thread, von dem die Anfrage bearbeitet wird.</p> <p> Der Rest der Zeile einer Log-Meldung ist der eigentliche Text, mit dem das System bestimmte Informationen anzeigt. Im Fehlerfall ist häufig ein Java Stack-Trace angefügt, der eine genauere Ursachen-Forschung ermöglicht.</p> -<h4> <a name="webservice_basisinstallation_logging_messages" id="webservice_basisinstallation_logging_messages"></a>2.1.3.2 Wichtige Log-Meldungen</h4> +<h5> <a name="webservice_basisinstallation_logging_messages" id="webservice_basisinstallation_logging_messages"></a>2.1.3.2 Wichtige Log-Meldungen</h5> <p> Neben den im Abschnitt <a href="#webservice_basisinstallation_installation_tomcatstartstop_verify">2.1.2.4.3</a> beschriebenen Log-Meldungen, die anzeigen, ob das Service ordnungsgemäß gestartet wurde, geben nachfolgenden Log-Meldungen Aufschluss über die Abarbeitung von Anfragen. </p> <p>Die Entgegennahme einer Anfrage wird angezeigt durch: @@ -267,32 +263,32 @@ INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=node1 <p>In diesem Fall gibt der mitgeloggte Stacktrace Auskunft über die Art des Fehlers.</p> <p> Die tatsächlich übertragenen Anfragen bzw. Antworten werden aus Effizienzgründen nur im Log-Level <code>DEBUG</code> angezeigt. </p> </div> - <h2><a name="webservice_erweiterungsmoeglichkeiten" id="webservice_erweiterungsmoeglichkeiten"></a>2.2 Erweiterungsmöglichkeiten</h2> + <h3><a name="webservice_erweiterungsmoeglichkeiten" id="webservice_erweiterungsmoeglichkeiten"></a>2.2 Erweiterungsmöglichkeiten</h3> <p>Ausgehend von der <a href="#webservice_basisinstallation">Basisinstallation</a> können die optionalen Erweiterungen, die in den nachfolgenden Abschnitten beschrieben werden, unabhängig und in beliebiger Kombination aufgesetzt werden.</p> -<h3><a name="webservice_erweiterungsmoeglichkeiten_webserver" id="webservice_erweiterungsmoeglichkeiten_webserver"></a>2.2.1 Vorgeschalteter Webserver</h3> -<h4><a name="webservice_erweiterungsmoeglichkeiten_webserver_iis" id="webservice_erweiterungsmoeglichkeiten_webserver_iis"></a>2.2.1.1 Microsoft Internet Information Server (MS IIS) </h4> +<h4><a name="webservice_erweiterungsmoeglichkeiten_webserver" id="webservice_erweiterungsmoeglichkeiten_webserver"></a>2.2.1 Vorgeschalteter Webserver</h4> +<h5><a name="webservice_erweiterungsmoeglichkeiten_webserver_iis" id="webservice_erweiterungsmoeglichkeiten_webserver_iis"></a>2.2.1.1 Microsoft Internet Information Server (MS IIS) </h5> <p>Den MOA SP/SS Webservices 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 eingerichteten MOA-ID Modulen wird durch <span class="term">mod_jk</span> durchgeführt. Die angeführten Konfigurationsschritte gehen von einer MS IIS Standard-Installation aus.</p> - <h5><a name="webservice_erweiterungsmoeglichkeiten_webserver_iis_jk" id="webservice_erweiterungsmoeglichkeiten_webserver_iis_jk"></a>2.2.1.1.1 Konfiguration von <span class="term">mod_jk</span> im MS IIS</h5> + <h6><a name="webservice_erweiterungsmoeglichkeiten_webserver_iis_jk" id="webservice_erweiterungsmoeglichkeiten_webserver_iis_jk"></a>2.2.1.1.1 Konfiguration von <span class="term">mod_jk</span> im MS IIS</h6> <p> Für die Kommunikation des MS IIS mit dem im Tomcat eingerichteten MOA SP/SS Webservice wird das <span class="term">ISAPI</span>-Modul von <span class="term">mod_jk</span> im MS IIS installiert und konfiguriert. Eine detaillierte Installations- und Konfigurationsanleitung gibt das <span class="term"><a href="http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html" target="_blank">mod_jk</a></span><a href="http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html" target="_blank"> IIS HowTo</a>. Beispiele für <code>workers.properties</code> und <code>uriworkermap.properties</code> Dateien liegen im Verzeichnis <code>$MOA_ID_AUTH_INST/tomcat</code> bei.</p> - <h5><a name="webservice_erweiterungsmoeglichkeiten_webserver_iis_tomcat" id="webservice_erweiterungsmoeglichkeiten_webserver_iis_tomcat"></a>2.2.1.1.2 Konfiguration von Tomcat</h5> + <h6><a name="webservice_erweiterungsmoeglichkeiten_webserver_iis_tomcat" id="webservice_erweiterungsmoeglichkeiten_webserver_iis_tomcat"></a>2.2.1.1.2 Konfiguration von Tomcat</h6> <p>Damit Tomcat die Aufrufe entgegennehmen kann, die von MS IIS mittels <span class="term"> mod_jk</span> weiterleitet werden, muss in <code>$CATALINA_HOME/conf/server.xml</code> der <span class="term">AJP Connector</span> aktiviert werden. Im Gegenzug können die Konnektoren für HTTP und HTTPS deaktiviert werden. Das geschieht am einfachsten durch Ein- bzw. Auskommentieren der entsprechenden <code>Connector</code> Konfigurations-Elemente in dieser Datei.</p> -<h5><a name="webservice_erweiterungsmoeglichkeiten_webserver_iis_ssl" id="webservice_erweiterungsmoeglichkeiten_webserver_iis_ssl"></a>2.2.1.1.3 Konfiguration von SSL</h5> +<h6><a name="webservice_erweiterungsmoeglichkeiten_webserver_iis_ssl" id="webservice_erweiterungsmoeglichkeiten_webserver_iis_ssl"></a>2.2.1.1.3 Konfiguration von SSL</h6> <p> Die Dokumentation zum Einrichten von SSL auf dem MS IIS steht nach Installation des IIS unter http://localhost/iisHelp/ oder aber auch auf den Webseiten von Mircrosoft zur Verfügung. </p> - <h4><a name="webservice_erweiterungsmoeglichkeiten_webserver_apache" id="webservice_erweiterungsmoeglichkeiten_webserver_apache"></a>2.2.1.2 Apache</h4> + <h5><a name="webservice_erweiterungsmoeglichkeiten_webserver_apache" id="webservice_erweiterungsmoeglichkeiten_webserver_apache"></a>2.2.1.2 Apache</h5> <p>Den MOA SP/SS Webservices kann ein Apache Webserver vorgeschaltet sein. Das Prinzip funktioniert wie bei MS IIS, auch hier wird <span class="term"> mod_jk</span> für die Kommunikation zwischen Webserver und Tomcat eingesetzt. Die angeführten Konfigurationsschritte gehen von einer Standard-Installation des Apache Webservers aus.</p> - <h5><a name="webservice_erweiterungsmoeglichkeiten_webserver_apache_jk" id="webservice_erweiterungsmoeglichkeiten_webserver_apache_jk"></a>2.2.1.2.1 Konfiguration von <span class="term"> mod_jk</span> im Apache </h5> + <h6><a name="webservice_erweiterungsmoeglichkeiten_webserver_apache_jk" id="webservice_erweiterungsmoeglichkeiten_webserver_apache_jk"></a>2.2.1.2.1 Konfiguration von <span class="term"> mod_jk</span> im Apache </h6> <p>Um die MOA-ID Module hinter einem Apache Webserver zu betreiben, ist die Konfiguration des Apache-Moduls <span class="term">mod_jk</span> erforderlich. Eine detaillierte Installations- und Konfigurationsanleitung gibt das <span class="term"><a href="http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html" target="_blank">mod_jk</a></span><a href="http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html" target="_blank"> Apache HowTo</a>. Ein Beispiel für eine <code>workers.properties</code> Datei liegt im Verzeichnis <code>$MOA_ID_AUTH_INST/tomcat</code> bei.</p> <p>Um die MOA-ID Module dem Apache Webserver bekannt zu machen, sind zumindest folgende Einträge im globalen Kontext der Apache-Konfigurationsdatei notwendig:</p> <pre>LoadModule jk_module /usr/lib/apache/mod_jk.so<br>AddModule jk_module<br>JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories<br>JkWorkersFile conf/workers.properties <br>JkMount /moa-spss/* moaworker </pre> <p>Die Pfad- und Dateinamen können je nach existierender Apache Installation geringfügig variieren.</p> - <h5><a name="webservice_erweiterungsmoeglichkeiten_webserver_apache_tomcat" id="webservice_erweiterungsmoeglichkeiten_webserver_apache_tomcat"></a>2.2.1.2.2 Konfiguration von Tomcat</h5> + <h6><a name="webservice_erweiterungsmoeglichkeiten_webserver_apache_tomcat" id="webservice_erweiterungsmoeglichkeiten_webserver_apache_tomcat"></a>2.2.1.2.2 Konfiguration von Tomcat</h6> <p>Die Konfiguration von Tomcat ist analog zu Abschnitt <a href="#webservice_erweiterungsmoeglichkeiten_webserver_iis_tomcat">2.2.1.1.2</a> durchzuführen.</p> - <h5><a name="webservice_erweiterungsmoeglichkeiten_webserver_apache_ssl" id="webservice_erweiterungsmoeglichkeiten_webserver_apache_ssl"></a>2.2.1.2.2 Konfiguration von SSL mit <span class="term">mod_SSL</span></h5> + <h6><a name="webservice_erweiterungsmoeglichkeiten_webserver_apache_ssl" id="webservice_erweiterungsmoeglichkeiten_webserver_apache_ssl"></a>2.2.1.2.2 Konfiguration von SSL mit <span class="term">mod_SSL</span></h6> <p>Apache kann in Verbindung mit <span class="term">mod_SSL</span> als SSL-Endpunkt für die MOA-ID Module fungieren. In diesem Fall entfällt die SSL-Konfiguration in Tomcat, da Apache und Tomcat auch im Fall von SSL Daten via <span class="term">mod_jk</span> austauschen. Eine detaillierte Installations- und Konfigurationsanleitung enthält die <a href="http://www.modssl.org/docs/" target="_blank">Online-Dokumentation</a> von <span class="term">mod_SSL</span>.</p> <p>Bei der Verwendung von Client-Authentisierung muss darauf geachtet werden, dass <span class="term">mod_ssl</span> die HTTP-Header mit den Informationen über das Client-Zertifikat exportiert. Dies wird durch Angabe der folgenden Option in der Apache-Konfiguration erreicht: </p> <pre>SSLOptions +ExportCertData +StdEnvVars</pre> <p>Je nach vorhandener SSL-Konfiguration des Apache Webservers kann diese Option im globalen Kontext, im Kontext des Virtual Hosts oder im Kontext eines Verzeichnisses spezifiziert werden.</p> -<h1><a name="referenzierte_software"></a>A Referenzierte Software</h1> +<h2><a name="referenzierte_software"></a>A Referenzierte Software</h2> <p>Auf folgende Software-Pakete wird in diesem Handbuch verwiesen:</p> <table class="fixedWidth" border="1" cellpadding="2"> <tr> @@ -312,6 +308,6 @@ INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=node1 <td>Logging Framework </td> </tr> </table> - + </div> </body> </html> diff --git a/id/server/doc/handbook/interfederation/interfederation.html b/id/server/doc/handbook/interfederation/interfederation.html index f52556e23..6bc3727b4 100644 --- a/id/server/doc/handbook/interfederation/interfederation.html +++ b/id/server/doc/handbook/interfederation/interfederation.html @@ -2,23 +2,23 @@ <html> <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" > + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>MOA-ID - Protokolle</title> <link rel="stylesheet" href="../common/MOA.css" type="text/css"> + <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' 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="../index.html">MOA-ID (Identifikation) </a></p> -<p class="subtitle">Interfederation</p> - <hr/> -<h1>Inhalt</h1> - <ol> + <div id="headline"> + <div class="container"> + <a href="http://www.digitales.oesterreich.gv.at/"><img src="../common/logo_digAT.png"/></a> + <a href="../index.html"><h1>MOA-ID-AUTH </h1></a> + <br/> + </div> + </div> +<div class="container"> +<h1 align="center">Interfederation</h1> + <h2>Inhalt</h2> + <ol class="index"> <li><a href="#general">Allgemeines</a> <ol> <li><a href="#sequenzediagramm">Sequenzdiagramm</a></li> @@ -40,9 +40,9 @@ <li><a href="#storkpvpgateway">STORK <-> PVP Gateway</a></li> </ol> <p> </p> - <h1><a name="general" id="konfigurationsparameter_allgemein_bku7"></a>1 Allgemeines</h1> + <h2><a name="general" id="konfigurationsparameter_allgemein_bku7"></a>1 Allgemeines</h2> <p>Ab der Version 2.1.0 des Modulpakets MOA-ID unterstützt das Modul MOA-ID-Auth Single Sign-On Interfederation zwischen Instanzen des Modules MOA-ID-Auth, welche bei unterschiedlichen Service Providern betrieben werden. Die nachfolgende Abbildung zeigt das Blockdiagramm einer solchen Systemkonfiguration und beschreibt die Funktionalität auf einer abstrakten Ebene.</p> - <p><img src="blockdiagramm.png" width="1010" height="618" alt="Blockdiagramm MOA-ID Inderfederation"></p> + <div class="smallImgDiv"><img src="blockdiagramm.png" alt="Blockdiagramm MOA-ID Inderfederation"></div> <ol> <li>Eine Benutzerin oder ein Benutzer möchte sich an einer Online Applikation (Applikation 1) oder einem Service Portal anmelden.</li> <li>Für den Anmeldevorgang wird die Benutzerin oder der Benutzer an den IdentityProvider (MOA-ID IDP 1) welcher die Identifizierung und Authentifizierung durchführt und eine Single Sign-On (SSO) Session anlegt.</li> @@ -52,9 +52,9 @@ <li>IDP 2 holt von IDP 1 die Authentifizierungsinformationen für Applikation 2 ab. Für die Kommunikation zwischen den beiden IDPs wird PVP 2.1 als Protokoll verwendet. Sollte am IDP 1 keine aktive SSO Session für diesen Benutzer existieren wird eine lokale Authentifizierung der Benutzerin oder des Benutzer an IDP 2 gestartet.</li> <li>Anschließend wird die Benutzerin oder der Benutzer an Applikation 2 zurückgeleitet und befindet sich im angemeldeten Bereich der Applikation 2.</li> </ol> -<h2><a name="sequenzediagramm" id="konfigurationsparameter_allgemein_bku"></a>1.1 Sequenzdiagramm</h2> +<h3><a name="sequenzediagramm" id="konfigurationsparameter_allgemein_bku"></a>1.1 Sequenzdiagramm</h3> <p>Das nachfolgende Sequenzdiagramm beschreibt den Ablauf eines Anmeldevorgangs an einer Online Applikation mit Hilfe von Interfederation im Detail wobei in diesem Beispiel als Authentifizierungsprotokoll an der Online Applikation 2 PVP 2.1 und die <a href="#usage_redirect">Variante mit Redirect Servlet</a> verwendet werden. Eine Verwendung aller anderen, durch das Modul MOA-ID-Auth bereitgestellten Authentifizierungsprotokolle ist jedoch ebenfalls möglich. Aus Gründen der Übersichtlichkeit sind die Schritte 1 - 3 aus dem oben dargestellten Blockdiagramm im Sequenzdiagramm nicht berücksichtigt, da diese Schritte bereits im Kapitel <a href="./../protocol/protocol.html">Protokolle</a> im Detail beschrieben wurden. </p> -<p><img src="interfederation_sequenz.png" width="1082" height="994" alt="SSO Interfederation Sequenze"></p> + <div class="largeImgDiv"><img src="interfederation_sequenz.png" alt="SSO Interfederation Sequenze"></div> <p> </p> <ol> <li>Die Benutzerin oder der Benutzer ist bereits an einer Online Applikation (Application 1) angemeldet und möchte sich nun an einer zweiten Online Applikation (Application 2) mittels Single Sign On anmelden. Nach dem Click auf die entsprechende Login Schaltfläche wird der Anmeldevorgang gestartet.</li> @@ -84,21 +84,21 @@ <li>Online Applikation 2 validiert die Assertion</li> <li>Wurde die Validierung der Assertion positiv abgeschlossen wird der Benutzer im sicheren Bereich von Online Applikation zwei angemeldet.</li> </ol> -<h1> <a name="config" id="konfigurationsparameter_allgemein_bku2"></a>2 Konfiguration</h1> +<h2> <a name="config" id="konfigurationsparameter_allgemein_bku2"></a>2 Konfiguration</h2> <p>Die Konfiguration des Modules MOA-ID-Auth in einer IDP Interfederation ist in zwei Abschnitte unterteilt. Der erste Teil behandelt die Basiskonfiguration des Modules MOA-ID-Auth. Im zweiten Abschnitt erfolgt die Konfiguration der einzelnen IDP Instanzen welche von dieser MOA-ID-Auth verwendet werden können oder in einem IDP interfederation Verbund stehen.</p> <p>Bei IDP Interfederation handelt es sich um eine Erweiterung der Funktionalität des Modules MOA-ID-Auth. Die in diesem Abschnitt beschriebene Konfiguration bezieht sich speziell auf den Bereich Interfederation, ersetzt jedoch nicht die Konfiguration des Modules MOA-ID-Auth laut Kapitel <a href="./../config/config.html">Konfiguration</a>.</p> -<h2><a name="config_basic" id="konfigurationsparameter_allgemein_bku3"></a>2.1 Basiskonfiguration</h2> +<h3><a name="config_basic" id="konfigurationsparameter_allgemein_bku3"></a>2.1 Basiskonfiguration</h3> <p>Wird das Modul MOA-ID-Auth in einer IDP Interfederation betrieben muss das PVP 2.1 Protokoll, in der Basiskonfiguration von MOA-ID-Auth konfiguriert werden. Eine Beschreibung der entsprechenden Konfigurationsparameter finden Sie im Kapitel <a href="./../config/config.html#basisconfig_moa_id_auth_param_protocol_pvp21">Protokolle -> PVP 2.1</a>. </p> -<h2><a name="config_idps" id="konfigurationsparameter_allgemein_bku4"></a>2.2 Konfiguration einzelner IDPs </h2> +<h3><a name="config_idps" id="konfigurationsparameter_allgemein_bku4"></a>2.2 Konfiguration einzelner IDPs </h3> <p>Zusätzlich zu Basiskonfiguration müssen alle für diese IDP Interfederation registrierten IDPs konfiguriert werden. Diese Konfiguration erfolgt über das Modul MOA-ID-Configuration wobei für Interfederation ein eigener Menüpunkt im Hauptmenü zur Verfügung steht. Über diesen Konfigurationspunkt können neue IDPs hinzugefügt (MOA-ID IDP hinzufügen) oder bestehende IDPs bearbeitet werden wobei alle aktuell hinterlegten IDPs in einer Liste dargestellt werden.</p> <p>Die Konfiguration der einzelnen IDP Instanzen erfolgt ähnlich zur Konfiguration von Online-Applikationen (siehe <a href="./../config/config.html#konfigurationsparameter_oa">Online-Applikationskonfiguration</a>), jedoch sind für eine IDP Konfiguration nicht alle Konfigurationsparameter aus der Online-Applikationskonfiguration erforderlich.</p> <p>Im ersten Abschnitt werden allgemeine Informationen zum IDP konfiguriert.</p> -<table width="1199" border="1"> +<table class="configtable"> <tr> - <th width="153" scope="col">Name</th> - <th width="204" scope="col">Beispielwert</th> - <th width="57" scope="col">Optional</th> - <th width="757" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td>Online-Applikation ist aktiviert</td> @@ -128,12 +128,12 @@ </table> <p> </p> <p>Der zweite Abschnitt behandelt spezielle Konfigurationsparameter für IDP Interfederation.</p> -<table width="1199" border="1"> +<table class="configtable"> <tr> - <th width="153" scope="col">Name</th> - <th width="204" scope="col">Beispielwert</th> - <th width="57" scope="col">Optional</th> - <th width="757" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td><span id="wwlbl_loadIDP_moaIDP_inboundSSO">Eingehendes SSO erlauben</span></td> @@ -185,13 +185,13 @@ </ul> </li> </ul> -<h1><a name="usage" id="konfigurationsparameter_allgemein_bku6"></a>3 Integration in bestehende Systeme</h1> +<h2><a name="usage" id="konfigurationsparameter_allgemein_bku6"></a>3 Integration in bestehende Systeme</h2> <p>Um den Interfederation Mechanismus in ein bestehendes System zu integrieren muss dem protokollspezifischen Authentifizierungsrequest, welcher da das Modul MOA-ID-Auth gesendet wird, ein zusätzlicher Parameter angefügt werden. Dieser Parameter identifiziert den interfederation IDP von welchem eine aktive SSO Session verwendet werden soll. Dieser zusätzliche Parameter kann als http GET oder als http POST Parameter an MOA-ID-Auth übertragen werden. </p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="115" scope="col">Name</th> - <th width="262" scope="col">Beispielwert</th> - <th width="848" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>interIDP</td> @@ -202,7 +202,7 @@ </table> <p> </p> <p>Wie bereits im <a href="#sequenzediagramm">Abschnitt Sequenzdiagramm</a> erwähnt stehen für die Übertragung des zusätzlichen Parameters zwei Varianten zur Verfügung.</p> -<h2><a name="usage_direct" id="konfigurationsparameter_allgemein_bku8"></a>3.1 Direkte Übermittlung im Authentifizierungsrequest</h2> +<h3><a name="usage_direct" id="konfigurationsparameter_allgemein_bku8"></a>3.1 Direkte Übermittlung im Authentifizierungsrequest</h3> <p>Bei dieser Variante wird der zusätzliche Parameter <em>interIDP</em> direkt im protokollspezifischen Authentifizierungsrequest, welcher den Authentifizierungsvorgang startet, angefügt. In diesem Fall muss der Service Provider, welcher den Authentifizierungsrequest erzeugt, den zusätzlichen Parameter <em>interIDP</em> einfügen. Diese Variante steht für alle verfügbaren Authentifizierungsvarianten des Modules MOA-ID-Auth zur Verfügung und es existieren keine besonderen Einschränkungen. Das nachfolgende Beispiel zeigt die Verwendung in Kombination mit SAML 1 wobei der <em>interIDP</em> Parameter als http GET Parameter übermittelt wird.</p> <pre><a href="https://<moa-id-server-und-pfad>/StartAuthentication ?Target=<geschäftsbereich> @@ -210,13 +210,13 @@ &bkuURI=<bku-url> &interIDP=<IDP EntityID> ></pre> -<h2><a name="usage_redirect" id="konfigurationsparameter_allgemein_bku9"></a>3.2 Verwendung des Redirect Servlets</h2> +<h3><a name="usage_redirect" id="konfigurationsparameter_allgemein_bku9"></a>3.2 Verwendung des Redirect Servlets</h3> <p>Bei dieser Variante wird der zusätzliche Parameter <em>interIDP</em> und eine Redirect-URL <em>redirecturl</em> an ein Service der MOA-ID-Auth Instanz übermittelt. Dieses Service validiert alle Parameter und hinterlegt den Parameter <em>interIDP</em> in einem http Cookie im Browser der Benutzerin oder des Benutzers. Anschließend erfolgt ein Redirect an die im Parameter redirecturl angegebene Service welches den eigentlichen Authentifizierungsrequest erzeugt und an die MOA-ID-Auth Instanz sendet. In diesem Fall ist es nicht erforderlich dass der Authentifizierungsrequest den zusätzlichen Parameter <em>interIDP</em> enthält, da dieser über das zuvor gesetzte http Cookie vom Modul MOA-ID-Auth ausgewertet wird. </p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="115" scope="col">Name</th> - <th width="262" scope="col">Beispielwert</th> - <th width="848" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>interIDP</td> @@ -232,15 +232,15 @@ </tr> </table> <p> </p> -<h1><a name="vidp" id="konfigurationsparameter_allgemein_bku5"></a>4 STORK VIDP Konfiguration</h1> +<h2><a name="vidp" id="konfigurationsparameter_allgemein_bku5"></a>4 STORK VIDP Konfiguration</h2> <p>Das Modul MOA-ID-Auth kann auch als STORK2 VIDP betrieben werden. Diese VIDP Konfiguration erfolgt ebenfalls über den Menüpunkt Interfederation, wobei neues VIDPs mit Hilfe der Schaltfläche VIDP hinzufügen konfiguriert werden können. </p> <p>Die Konfiguration eines VIDPs erfolgt weitgehend identisch zur Konfiguration einer <a href="./../config/config.html#konfigurationsparameter_oa">Online-Applikation</a>, wobei im Falle eines VIDPs noch folgende zusätzliche Konfigurationsparameter zur Verfügung stehen.</p> -<table width="1250" border="1"> +<table class="configtable"> <tr> - <th width="185" scope="col">Name</th> - <th width="85" scope="col">Beispielwert</th> - <th width="66" scope="col">Optional</th> - <th width="886" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td><p>VIDP Interface aktiv</p></td> @@ -260,10 +260,10 @@ Diese Attributprovider werden für die Abholung einiger Attribute von österreichischen Bürgern benötigt (Anmeldung in Ausland). Die Eintragung und Auswahl von Attributprovidern ist <span class="term">optional</span>. </p> <p>Während des Anmeldevorgangs wird der Benutzer an den entsprechenden Attributprovider weitergeleitet. Am Attributprovider werden die erforderlichen Attribute ausgewählt und zurück an VIDP (am Service Provider) geliefert. </p> <br/> -<table width="1250" border="1"> +<table class="configtable"> <tr> - <th width="167" scope="col">Name des Plugins</th> - <th width="781" scope="col">Beschreibung</th> + <th>Name des Plugins</th> + <th>Beschreibung</th> </tr> <tr> <td>EHvdAttributeProvider</td> @@ -293,11 +293,11 @@ </table> <p> </p> <p>Beispiel eines Eintrages für Attributprovider:</p> -<pre><table width="1220" border="1"> +<pre><table class="configtable"> <tr> - <th width="167" scope="col">AP Plugin</th> - <th width="681" scope="col">URL</th> - <th width="281" scope="col">Attribute</th> + <th>AP Plugin</th> + <th>URL</th> + <th>Attribute</th> </tr> <tr> <td>MISAttributeRequestProvider</td> @@ -306,10 +306,10 @@ </tr> </table></pre> <p> </p> -<h1><a name="storkpvpgateway" id="konfigurationsparameter_allgemein_bku10"></a>5 STORK <-> PVP Gateway</h1> +<h2><a name="storkpvpgateway" id="konfigurationsparameter_allgemein_bku10"></a>5 STORK <-> PVP Gateway</h2> <p>Das Modul MOA-ID-Auth kann auch als Gateway zwischen dem Portalverbund der österreichischen Behörden und der STORK Infrastruktur betrieben werden. Diese Konfiguration konfiguriert einen Gateway welcher zur Authentifizierung österreichischer Benutzerinnen oder Benutzer im Falle einer STORK Anmeldung mit Hilfe der österreichischen PVP Infrastruktur dient. Der Einsprung zum Gateway erfolgt über den <em>PVPAuthenticationProvider</em> in der <a href="#vidp">VIDP Konfiguration</a>.</p> <p>Die nachstehende Grafik skizziert den Prozessfluss eines solchen Anmeldevorgangs.</p> -<p><img src="blockdiagramm_storkpvpgateway.png" width="1000" height="734" alt="Blockdiagramm STORK-PVP Gateway"></p> +<div class="smallImgDiv"><img src="blockdiagramm_storkpvpgateway.png" alt="Blockdiagramm STORK-PVP Gateway"></div> <ol> <li>Eine österreichische Benutzerin oder ein österreichischer Benutzer möchte sich an einer europäischen Online Applikation (Applikation 1) anmelden.</li> <li>Die Benutzerin oder der Benutzer wird an den entsprechenden VIDP unter Verwendung des STORK Protokolls zur Authentifizierung weitergeleitet. Für den Fall das spezielle Attribute durch die Applikation angefordert wurden (z.B. <em>ECApplicationRole</em>) kann die Authentifizierung nicht am VIDP vorgenommen werden. In diesem Fall erfolgt eine Weiterleitung an den nationalen STORK-PVP Gateway (siehe <a href="#vidp">VIDP Konfiguration</a>).</li> @@ -322,12 +322,12 @@ </ol> <p> </p> <p>Die Konfiguration eines STORK-PVP Gateways besteht aus folgenden Elementen.</p> -<table width="1199" border="1"> +<table class="configtable"> <tr> - <th width="153" scope="col">Name</th> - <th width="204" scope="col">Beispielwert</th> - <th width="57" scope="col">Optional</th> - <th width="757" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td>Online-Applikation ist aktiviert</td> @@ -357,12 +357,13 @@ </tr> </table> <p> </p> -<table width="1199" border="1"> +<table class="configtable"> +<table class="configtable"> <tr> - <th width="153" scope="col">Name</th> - <th width="204" scope="col">Beispielwert</th> - <th width="57" scope="col">Optional</th> - <th width="757" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Optional</th> + <th>Beschreibung</th> </tr> <tr> <td><span id="wwlbl_loadIDP_pVPGateway_entityID">EntityID des PVP Portals:</span></td> @@ -374,7 +375,7 @@ </table> <p> </p> <p> </p> -<h1><a name="referenzierte_spezifikation" id="uebersicht_zentraledatei_aktualisierung30"></a>A Referenzierte Spezifikation</h1> +<h2><a name="referenzierte_spezifikation" id="uebersicht_zentraledatei_aktualisierung30"></a>A Referenzierte Spezifikation</h2> <table class="fixedWidth" border="1" cellpadding="2"> <tbody> <tr> @@ -411,5 +412,6 @@ </tr> </tbody> </table> + </div> </body> </html> diff --git a/id/server/doc/handbook/intro/intro.html b/id/server/doc/handbook/intro/intro.html index f2af77391..19c9aa72d 100644 --- a/id/server/doc/handbook/intro/intro.html +++ b/id/server/doc/handbook/intro/intro.html @@ -2,66 +2,67 @@ <html> <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" > + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>MOA-ID - Einführung</title> <link rel="stylesheet" href="../common/MOA.css" type="text/css"> + <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' 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="../index.html">MOA-ID (Identifikation) </a></p> -<p class="subtitle">Einführung</p> - <hr/> - <h1>Inhalt</h1> - <ol> - <li><a href="#allgemeines">Allgemeines</a> - <ol> + <div id="headline"> + <div class="container"> + <a href="http://www.digitales.oesterreich.gv.at/"><img src="../common/logo_digAT.png"/></a> + <a href="../index.html"><h1>MOA-ID-AUTH </h1></a> + <br/> + </div> + </div> + + <div class="container"> +<h1 align="center">Einführung</h1> + <h2>Inhalt</h2> + <ul class="index"> + <li class="index"><a href="#allgemeines">Allgemeines</a> + <ul> <li><a href="#allgemeines_service">Externe Services</a></li> - </ol> + </ul> </li> - <li><a href="#ss">MOA-ID-Auth </a> - <ol> + <li class="index"><a href="#moaidauth">MOA-ID-Auth </a> + <ul> <li><a href="#ablauf">Ablauf einer Anmeldung</a></li> - </ol> + </ul> </li> - <li><a href="#sp">MOA-ID-Configuration</a></li> - </ol> -<hr/> - <h1><a name="allgemeines"></a>1 Allgemeines</h1> - <p> Das Module MOA-ID-Auth kann von Anwendungen zur Identifizierung und Authentifizierung im Rahmen eines Anmeldeprozesses an einer Online-Applikation verwendet werden. Die Konfiguration des Modules MOA-ID-Auth erfolgt mit Hilfe des Zusatzmodules MOA-ID-Configuration welches eine web-basierte Konfigurationsschnittstelle zur Verfügung stellt.</p> + <li class="index"><a href="#config">MOA-ID-Configuration</a></li> + </ul> + <h2><a name="allgemeines"></a>1 Allgemeines</h2> + <p> Das Modul MOA-ID-Auth kann von Anwendungen zur Identifizierung und Authentifizierung im Rahmen eines Anmeldeprozesses an einer Online-Applikation verwendet werden. Die Konfiguration des Modules MOA-ID-Auth erfolgt mit Hilfe des Zusatzmodules MOA-ID-Configuration welches eine web-basierte Konfigurationsschnittstelle zur Verfügung stellt.</p> <p>Das nachfolgende Blockdiagramm zeigt Struktur von MOA-ID und gibt eine kurze Beschreibung der einzelnen Komponenten.</p> - <p><img src="Blockdiagramm.png" alt="Architektur MOA-ID" width="1000" height="678"></p> - <p> </p> + <br/> + <p class="centeredimage"><img src="Blockdiagramm.png" alt="Architektur MOA-ID" width="95%" align="middle"></p> + <br/> <p>MOA-ID besteht aus folgenden Kernkomponenten:</p> <ol> - <li><u>CORE LOGIC</u>: Diese Komponente ist die zentrale Logik zur Steuerung der einzelnen Prozesse innerhalb MOA-ID 2.x.</li> - <li><u>Protocol Adapter</u>: Stellt die in MOA-ID 2.x unterstützten <a href="../protocol/protocol.html">Authentifizierungsprotokolle</a> für die Anbindung von Service Providern zur Verfügung.</li> - <li><u>Auth Sources</u>: Stellt die von MOA-ID 2.x unterstützten Identifikationsmechanismen und Single Sign-On Management Funktionen zur Verfügung. Dies sind die österreichische Bürgerkarte oder Handy-Signatur, die Anmeldung ausländischer Personen mit Hilfe des STORK Protokoll oder mittels Single Sign-On von einem weiteren vertrauenswürdigen Identity Provider (Interfederation). Dieses Modul beinhaltet somit alle jene Funktionen welche für den Authentifizierungs- oder Abmeldeprocess erforderlich sind. </li> - <li><u>Template Generator</u>: Der Template Generator erzeugt für Service Provider die entsprechenden Login-Masken für die Integration in die eigene Web-Applikation.</li> - <li><u>SSO Module</u>: Das Single Sign-On (SSO) Modul verwaltet die zusätzlichen Operationen die sich aus der Umsetzung von SSO ergeben. Dies umfasst im Besonderen das SSO Session-Management.</li> - <li><u>Statistic Module</u>: Dieses Modul dient zur Generierung von anonymisierten Statistikdaten aus den Anmeldeinformationen. </li> - <li><u>Monitoring & Testing Module</u>: Dieses Modul implementiert Methoden mit deren Hilfe einzelne funktionale Bereiche aus MOA-ID-Auth getestet werden können. Somit dient dieses Modul als Schnittstellte zu einem externen Monitoring-Service.</li> - <li><u>Configuration</u><u> Modul</u>: Dieses Modul stellt die Schnittstelle zur MOA-ID-Auth Konfiguration dar welche in einer Datenbank abgelegt wird. </li> - <li><u>Konfigurationstool</u>: Oberfläche, mit deren Hilfe MOA-ID konfiguriert werden kann. Dies umfasst sowohl allgemeine Konfigurationsteile als auch die Konfiguration der einzelnen bei MOA-ID-Auth registrierten Online-Applikationen. Service Provider können sich am Konfigurationstool mittels Bürgerkarte oder Handy-Signatur anmelden und ihre Online-Applikationen verwalten.</li> + <li><b>CORE LOGIC</b>: Diese Komponente ist die zentrale Logik zur Steuerung der einzelnen Prozesse innerhalb MOA-ID 2.x.</li> + <li><b>Protocol Adapter</b>: Stellt die in MOA-ID 2.x unterstützten <a href="../protocol/protocol.html">Authentifizierungsprotokolle</a> für die Anbindung von Service Providern zur Verfügung.</li> + <li><b>Auth Sources</b>: Stellt die von MOA-ID 2.x unterstützten Identifikationsmechanismen und Single Sign-On Management Funktionen zur Verfügung. Dies sind die österreichische Bürgerkarte oder Handy-Signatur, die Anmeldung ausländischer Personen mit Hilfe des STORK Protokoll oder mittels Single Sign-On von einem weiteren vertrauenswürdigen Identity Provider (Interfederation). Dieses Modul beinhaltet somit alle jene Funktionen welche für den Authentifizierungs- oder Abmeldeprocess erforderlich sind. </li> + <li><b>Template Generator</b>: Der Template Generator erzeugt für Service Provider die entsprechenden Login-Masken für die Integration in die eigene Web-Applikation.</li> + <li><b>SSO Module</b>: Das Single Sign-On (SSO) Modul verwaltet die zusätzlichen Operationen die sich aus der Umsetzung von SSO ergeben. Dies umfasst im Besonderen das SSO Session-Management.</li> + <li><b>Statistic Module</b>: Dieses Modul dient zur Generierung von anonymisierten Statistikdaten aus den Anmeldeinformationen. </li> + <li><b>Monitoring & Testing Module</b>: Dieses Modul implementiert Methoden mit deren Hilfe einzelne funktionale Bereiche aus MOA-ID-Auth getestet werden können. Somit dient dieses Modul als Schnittstellte zu einem externen Monitoring-Service.</li> + <li><b>Configuration</b><b> Modul</b>: Dieses Modul stellt die Schnittstelle zur MOA-ID-Auth Konfiguration dar welche in einer Datenbank abgelegt wird. </li> + <li><b>Konfigurationstool</b>: Oberfläche, mit deren Hilfe MOA-ID konfiguriert werden kann. Dies umfasst sowohl allgemeine Konfigurationsteile als auch die Konfiguration der einzelnen bei MOA-ID-Auth registrierten Online-Applikationen. Service Provider können sich am Konfigurationstool mittels Bürgerkarte oder Handy-Signatur anmelden und ihre Online-Applikationen verwalten.</li> </ol> - <h2><a name="allgemeines_service" id="allgemeines_service"></a>1.1 Externe Services</h2> + <h3><a name="allgemeines_service" id="allgemeines_service"></a>1.1 Externe Services</h3> <p>Für die Anmeldung in Vertretung und die Anmeldung ausländischer Personen werden zusätzliche externe Services verwendet.</p> - <h3><a name="allgemeines_service_ovs" id="allgemeines_service2"></a>1.1.1 Online-Vollmachten</h3> + <h4><a name="allgemeines_service_ovs" id="allgemeines_service2"></a>1.1.1 Online-Vollmachten</h4> <p>Ab der MOA-ID Release 1.5.0 werden Online-Vollmachten (für Anwendungen aus dem öffentlichen Bereich) unterstützt. Hierzu werden diese Vollmachten über ein Online-Vollmachten-Service ausgewählt. Der Zugang zu diesem Online-Vollmachten Service ist über eine Client-Server Authentifizierung abgesichert. Als Client-Zertifikate werden Zertifikate der Firmen A-Trust bzw. A-CERT, die mit der Verwaltungs- oder Dienstleistereigenschaft versehen sind, akzeptiert. </p> - <h3><a name="allgemeines_service_szrgw" id="allgemeines_service3"></a>1.1.2 Ausländische Bürger</h3> + <h4><a name="allgemeines_service_szrgw" id="allgemeines_service3"></a>1.1.2 Ausländische Bürger</h4> <p> Ab der MOA-ID Release 1.4.7 ist es möglich, dass sich auch ausländische Bürger mittels MOA-ID einloggen können. Hierzu wird eine Verbindung zu einem sogenannten Stammzahlenregister-Gateway aufgebaut, dass basierend auf den Zertifikatsdaten des ausländischen Bürgers eine Eintragung im Ergänzungsregister für natürliche Personen gemäß E-Government Gesetz §6(5) vornimmt. Somit ist es möglich, dass eine Personenbindung ausgestellt werden kann, die in weitere Folge an MOA-ID weitergeleitet wird. Der Zugang zu diesem Stammzahlenregister-Gateway ist über eine Client-Server Authentifizierung abgesichert. Als Client-Zertifikate werden Zertifikate der Firmen A-Trust bzw. A-CERT, die mit der Verwaltungs- oder Dienstleistereigenschaft versehen sind, akzeptiert. </p> -<h1><a name="moaidauth" id="moaidauth"></a>2 MOA-ID-Auth</h1> +<h2><a name="moaidauth" id="moaidauth"></a>2 MOA-ID-Auth</h2> <p>Das Modul MOA-ID-Auth dient der Identifizierung und Authentifizierung im Rahmen eines Anmeldevorgangs an einer Online-Applikation. Die Identifizierung und Authentifizierung erfolgt mit Bürgerkarte, Handy-Signatur oder für ausländische Personen mittels STORK.</p> <p>Die Funktionalität und der Aufbau der Schnittstellen des Modules MOA-ID-Auth in Richtung Online-Applikation werden im Kapitel <a href="../protocol/protocol.html">Protokolle</a> beschrieben. <p>Für den Betrieb von MOA-ID-Auth ist der Einsatz von MOA-Signaturprüfung (MOA-SP) erforderlich.</p> -<h2><a name="ablauf" id="ablauf"></a> 2.1 Ablauf einer Anmeldung</h2> +<h3><a name="ablauf" id="ablauf"></a> 2.1 Ablauf einer Anmeldung</h3> <p>Die nachfolgende Grafik beschreibt den Ablauf eines Abmeldevorgangs an einer Online-Applikation mit Hilfe von MOA-ID-Auth unter Verwendung der Bürgerkarte oder der Handy-Signatur.</p> -<p><img src="anmeldeablauf.png" width="947" height="881" alt="Sequenzdiagramm eines Anmeldevorgangs mit MOA-ID-Auth"></p> +<p class="centeredimage"><img src="anmeldeablauf.png" alt="Sequenzdiagramm eines Anmeldevorgangs mit MOA-ID-Auth" width="95%"></p> <p> </p> <ol> <li>Der Benutzer verbindet sich zu einem Web-Portal (Service Provider) über das die Online-Applikation erreichbar ist. Nach der Betätigung eines Login-Buttons wird der Anmeldevorgang ausgelöst.</li> @@ -69,10 +70,10 @@ <li>MOA-ID-Auth validiert die Authentifizierungsanfrage des Service Providers</li> <li>MOA-ID-Auth bietet dem Benutzer eine Auswahl von verfügbaren Authentifizierungsmethoden (Bürgerkarte, Handy-Signatur, STORK) an.</li> <li>Der Benutzer wählt die gewünschte Authentifizierungsmethode und sendet diese an MOA-ID-Auth.</li> - <li>MOA-ID-AUTH erzeugt eine HTML-Seite mit einem <InfoboxReadRequest> zum Auslesen der Personenbindung. Diese HTML-Seite wird an den Browser geschickt.</li> - <li>Der Browser schickt den <InfoboxReadRequest> an die ausgewählte Bürgerkartenumgebung unter Verwendung des Security-Layer. Die Bürgerkartenumgebung liest die Personenbindung von der Bürgerkarte und sendet diese an MOA-ID-AUTH. MOA-ID-Auth prüft die Signatur der Personenbindung durch einen Aufruf von MOA-SP.</li> - <li>MOA-ID-AUTH erstellt den AUTH-Block. Der AUTH-Block enthält Vor- und Nachname aus der Personenbindung, URL von MOA-ID-AUTH, URL und Geschäftsbereich der Online-Applikation oder im Falle einer SSO Anmeldung die URL und den Geschäftsbereich der MOA-ID-Auth Instanz, die aktuelle Zeit, das aktuelle Datum und einen Zufallswert für diesen Anmeldevorgang. Anschließend wird eine XML Antwortseite, die das Kommando zum Signieren (<CreateXMLSignatureRequest>) des generierten AUTH-Blocks enthält, an die ausgewählte Bürgerkartenumgebung, unter Verwendung des Security-Layers, gesendet.</li> - <li>Der Request wird von der Bürgerkartenumgebung verarbeitet. Die signierten Daten werden an MOA-ID-AUTH zurückgesendet.</li> + <li>MOA-ID-Auth erzeugt eine HTML-Seite mit einem <InfoboxReadRequest> zum Auslesen der Personenbindung. Diese HTML-Seite wird an den Browser geschickt.</li> + <li>Der Browser schickt den <InfoboxReadRequest> an die ausgewählte Bürgerkartenumgebung unter Verwendung des Security-Layer. Die Bürgerkartenumgebung liest die Personenbindung von der Bürgerkarte und sendet diese an MOA-ID-Auth. MOA-ID-Auth prüft die Signatur der Personenbindung durch einen Aufruf von MOA-SP.</li> + <li>MOA-ID-Auth erstellt den AUTH-Block. Der AUTH-Block enthält Vor- und Nachname aus der Personenbindung, URL von MOA-ID-Auth, URL und Geschäftsbereich der Online-Applikation oder im Falle einer SSO Anmeldung die URL und den Geschäftsbereich der MOA-ID-Auth Instanz, die aktuelle Zeit, das aktuelle Datum und einen Zufallswert für diesen Anmeldevorgang. Anschließend wird eine XML Antwortseite, die das Kommando zum Signieren (<CreateXMLSignatureRequest>) des generierten AUTH-Blocks enthält, an die ausgewählte Bürgerkartenumgebung, unter Verwendung des Security-Layers, gesendet.</li> + <li>Der Request wird von der Bürgerkartenumgebung verarbeitet. Die signierten Daten werden an MOA-ID-Auth zurückgesendet.</li> <li>MOA-ID-Auth überprüft den signierten AUTH-Block und generiert Information für weitere Anmeldungen mittels Single Sign-On.</li> <li>MOA-ID-Auth generiert die Anmeldedaten (Assertion) welche folgende Information enthalten: <ul> @@ -89,7 +90,7 @@ <li> MOA-ID-Auth sendet die Anmeldedaten an den Service-Provider und setzt im Browser des Benutzers ein SSO Session-Token welches für weitere Anmeldevorgänge verwendet werden kann.</li> <li>Die Anmeldedaten werden vom Service-Provider verarbeitet und der Benutzer wird vom Service-Provider an die Online-Applikation weitergeleitet. </li> </ol> -<h1><a name="config" id="config"></a>3 MOA-ID-Configuration </h1> +<h2><a name="config" id="config"></a>3 MOA-ID-Configuration </h2> <p>Das Modul MOA-ID-Configuration stellt eine web-basierte Benutzerschnittstelle zur Konfiguration des Moduls MOA-ID-Auth zur Verfügung, wobei sich die Konfiguration in zwei Teilbereiche unterteilt ist. Eine detaillierte Aufstellung der einzelnen Konfigurationspunkte befindet sich im Kapitel <a href="../config/config.html">Konfiguration</a>.</p> <ol> <li>Allgemeine Konfiguration<br> @@ -99,5 +100,6 @@ </ol> <p>Zusätzlich unterstützt das Module MOA-ID-Configuration auch eine einfache Benutzerverwaltung mit Rechtevergabe mit deren Hilfe die Verwaltung von Online-Applikationen an den jeweiligen Service-Provider ausgelagert werden kann. Die Anmeldung am Konfigurationstool erfolgt mittels Bürgerkarte, Handysignatur oder STORK, wobei optional auch eine Anmeldung mittels Benutzername und Passwort zur Verfügung steht.</p> <p> </p> + </div> </body> </html> diff --git a/id/server/doc/handbook/protocol/protocol.html b/id/server/doc/handbook/protocol/protocol.html index 1c6e51661..6214c393c 100644 --- a/id/server/doc/handbook/protocol/protocol.html +++ b/id/server/doc/handbook/protocol/protocol.html @@ -4,21 +4,22 @@ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" > <title>MOA-ID - Protokolle</title> <link rel="stylesheet" href="../common/MOA.css" type="text/css"> + <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' 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="../index.html">MOA-ID (Identifikation) </a></p> -<p class="subtitle">Protokolle</p> - <hr/> -<h1>Inhalt</h1> - <ol> + <div id="headline"> + <div class="container"> + <a href="http://www.digitales.oesterreich.gv.at/"><img src="../common/logo_digAT.png"/></a> + <a href="../index.html"><h1>MOA-ID-AUTH </h1></a> + <br/> + </div> + </div> + +<div class="container"> +<h1>Protokolle</h1> + +<h2>Inhalt</h2> + <ol class="index"> <li><a href="#allgemeines">Allgemeines</a> <ol> <li><a href="#allgemeines_zugangspunkte">Übersicht der Zugangspunkte</a></li> @@ -78,18 +79,18 @@ <li><a href="#referenzierte_spezifikation">Referenzierte Spezifikation</a></li> </ol> -<hr/> - <h1><a name="allgemeines"></a>1 Allgemeines</h1> - <p>Dieses Kapitel behandelt jene Authentifizierungsprotokolle die vom Modul MOA-ID-Auth unterstützt werden. + + <h2><a name="allgemeines"></a>1 Allgemeines</h2> + <p>Dieses Kapitel behandelt jene Authentifizierungsprotokolle die vom Modul MOA-ID-Auth unterstützt werden. Wobei die Verwendung der Protokolle PVP 2.1 oder OpenID Connect empfohlen wird. Das Protokoll SAML 1, welches bis zur MOA-ID Version 1.5.1 - verwendet wurde, wird jedoch ab der Version 2.0 nur mehr aus Kompatibilitätsgründen angeboten und nicht mehr aktiv weiterentwickelt.</p> -<h2><a name="allgemeines_zugangspunkte" id="allgemeines_zugangspunkte"></a>1.1 Übersicht der Zugangspunkte</h2> + verwendet wurde, wird jedoch ab der Version 2.0 nur mehr aus Kompatibilitätsgründen angeboten und nicht mehr aktiv weiterentwickelt.</p> +<h3><a name="allgemeines_zugangspunkte" id="allgemeines_zugangspunkte"></a>1.1 Übersicht der Zugangspunkte</h3> <p>In diesem Abschnitt sind die Zugangspunkte der vom Modul MOA-ID-Auth unterstützten Protokolle kurz zusammengefasst. Eine detaillierte Beschreibung der einzelnen Protokolle finden Sie in den anschließenden Unterkapiteln. </p> - <table width="1247" border="1"> + <table class="configtable"> <tr> - <th width="164" scope="col">Protokoll</th> - <th width="168" scope="col">Requesttyp</th> - <th width="893" scope="col">URL</th> + <th>Protokoll</th> + <th>Requesttyp</th> + <th>URL</th> </tr> <tr> <td><a href="#pvp21">PVP 2.1</a></td> @@ -122,12 +123,12 @@ Redirect Binding</td> <td><a href="#openid">OpenID Connect</a></td> <td>Authentifizierungsrequest <br> (AuthCode-Request)</td> - <td>https://<host>:<port>/moa-id-auth/oauth2/auth</td> + <td>https://<host>:<port>/moa-id-auth/oauth3/auth</td> </tr> <tr> <td><a href="#openid">OpenID Connect</a></td> <td><p>AccessToken-Request</p></td> - <td>https://<host>:<port>/moa-id-auth/oauth2/token</td> + <td>https://<host>:<port>/moa-id-auth/oauth3/token</td> </tr> <tr> <td><a href="#saml1">SAML 1</a></td> @@ -153,21 +154,21 @@ Redirect Binding</td> <p>http://<host>:<port>/moa-id-auth/idpSingleLogout</p></td> </tr> </table> - <h2><a name="allgemeines_attribute" id="allgemeines_zugangspunkte2"></a>1.2 Übersicht der möglichen Attribute</h2> + <h3><a name="allgemeines_attribute" id="allgemeines_zugangspunkte2"></a>1.2 Übersicht der möglichen Attribute</h3> <p>Die nachfolgende Tabelle beinhaltet eine Liste aller Attribute die vom Modul MOA-ID-Auth an die Online-Applikation zurückgeliefert werden können, sofern diese nach der Authentifizierung zur Verfügung stehen. Alle Namen beziehen sich auf den Attributnamen im jeweiligen Protokoll. Detailinformationen zu den einzelnen Attributen finden Sie in der <a href="#referenzierte_spezifikation">PVP 2.1 Spezifikation</a> der der <a href="#referenzierte_spezifikation">STORK Spezifikation</a>.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> <th colspan="4" align="center" valign="middle" scope="col">Protokolle</th> - <th width="429" rowspan="3" scope="col">Beschreibung</th> + <th rowspan="3" scope="col">Beschreibung</th> </tr> <tr> - <th width="208" rowspan="2" scope="col">PVP 2.1</th> + <th rowspan="2" scope="col">PVP 2.1</th> <th colspan="2" scope="col">OpenID Connect</th> - <th width="335" rowspan="2" scope="col">SAML 1</th> + <th rowspan="2" scope="col">SAML 1</th> </tr> <tr> - <th width="188" scope="col">Name</th> - <th width="53" scope="col">Profil</th> + <th>Name</th> + <th>Profil</th> </tr> <tr> <td>urn:oid:1.2.40.0.10.2.1.1.149</td> @@ -515,16 +516,16 @@ Redirect Binding</td> <p><strong>Hinweis:</strong> Dieses Attribut steht nur bei einer Anmeldung mittels STORK zur Verfügung.</p></td> </tr> </table> -<h2><a name="statuscodes" id="allgemeines_zugangspunkte6"></a>1.3 Übersicht der möglichen MOA-ID spezifischen Statuscodes</h2> +<h3><a name="statuscodes" id="allgemeines_zugangspunkte6"></a>1.3 Übersicht der möglichen MOA-ID spezifischen Statuscodes</h3> <p>Vom Modul MOA-ID-Auth werden verschiedene Authentifizierungsprotokolle wobei diese Protokolle die Fehlerrückgabe unterschiedlich spezifizieren. Zusätzlich zu den protokollabhängigen Statuscodes (<a href="#referenzierte_spezifikation">siehe Spezifikation des jeweiligen Protokolls</a>) werden zusätzliche protokollunabhängige Statuscodes an den Service Provider zurückgeliefert, wobei sich das Format der Fehlerrückgabe jedoch weiterhin protokollspezifisch ist.</p> <p>Die nachfolgende Tabelle zeigt alle protokollunabhängigen Statuscodes welche vom Modul MOA-ID-Auth zurückgeliefert werden können.</p> -<h3><a name="statuscodes_1xxxx" id="allgemeines_zugangspunkte7"></a>1.3.1 Statuscodes 1xxxx</h3> +<h4><a name="statuscodes_1xxxx" id="allgemeines_zugangspunkte7"></a>1.3.1 Statuscodes 1xxxx</h4> <p>Alle Statuscodes beginnend mit der Zahl eins beschreiben Fehler welche während des Identifizierungs- und Authentifizierungsvorgangs aufgetreten sind.</p> -<h4><a name="statuscodes_10xxx" id="allgemeines_zugangspunkte11"></a>1.3.1.1 Authentifizierung (10xxx)</h4> -<table width="1237" border="1"> +<h5><a name="statuscodes_10xxx" id="allgemeines_zugangspunkte11"></a>1.3.1.1 Authentifizierung (10xxx)</h5> +<table class="configtable"> <tr> - <th width="214" scope="col">Statuscode</th> - <th width="1007" scope="col">Beschreibung</th> + <th>Statuscode</th> + <th>Beschreibung</th> </tr> <tr> <td>1000</td> @@ -559,11 +560,11 @@ Redirect Binding</td> <td>Vollmachtsmodus für ausländische Personen wird nicht unterstützt.</td> </tr> </table> -<h4><a name="statuscodes_11xxx" id="allgemeines_zugangspunkte12"></a>1.3.1.2 Validierung (11xxx)</h4> -<table width="1237" border="1"> +<h5><a name="statuscodes_11xxx" id="allgemeines_zugangspunkte12"></a>1.3.1.2 Validierung (11xxx)</h5> +<table class="configtable"> <tr> - <th width="214" scope="col">Statuscode</th> - <th width="1007" scope="col">Beschreibung</th> + <th>Statuscode</th> + <th>Beschreibung</th> </tr> <tr> <td>1100</td> @@ -606,11 +607,11 @@ Redirect Binding</td> <td>Fehler beim Validieren der SZR-Gateway Response</td> </tr> </table> -<h4><a name="statuscodes_12xxx" id="allgemeines_zugangspunkte13"></a>1.3.1.3 STORK (12xxx)</h4> -<table width="1237" border="1"> +<h5><a name="statuscodes_12xxx" id="allgemeines_zugangspunkte13"></a>1.3.1.3 STORK (12xxx)</h5> +<table class="configtable"> <tr> - <th width="214" scope="col">Statuscode</th> - <th width="1007" scope="col">Beschreibung</th> + <th>Statuscode</th> + <th>Beschreibung</th> </tr> <tr> <td>1200</td> @@ -637,16 +638,16 @@ Redirect Binding</td> <td>Der geforderte QAA Level ist höher als der QAA Level der gewählten Authentifizierungsmethode</td> </tr> </table> -<h3><a name="statuscodes_4xxxx" id="allgemeines_zugangspunkte8"></a>1.3.2 Statuscodes 4xxxx</h3> +<h4><a name="statuscodes_4xxxx" id="allgemeines_zugangspunkte8"></a>1.3.2 Statuscodes 4xxxx</h4> <p>Alles Statuscodes beginnend mit der Zahl vier beschreiben Fehler die während der Kommunikation mit externen Services aufgetreten sind.</p> -<h4><a name="statuscodes_40xxx" id="allgemeines_zugangspunkte19"></a>1.3.2.1 BKU (40xxxx)</h4> +<h5><a name="statuscodes_40xxx" id="allgemeines_zugangspunkte19"></a>1.3.2.1 BKU (40xxxx)</h5> <p>Tritt während des Anmeldevorgangs in der Bürgerkartenumgebung ein Fehler auf so wird der entsprechende Fehlercode an den Service Provider weitergereicht. Der der durch das Modul MOA-ID-Auth weitergereichte Statuscode für Bürgerkartenumgebungsfehler weißt das folgende zweiteilige Format auf. Der erste Teil, bestehend aus zwei Dezimalstellen, kennzeichnet den Fehler als Fehler als Bürgerkartenumgebungsfehler. Der zweite Teil, bestehend aus vier Dezimalstellen bezeichnet den eindeutigen Identifikator des Fehlers aus der Bürgerkartenumgebung (<a href="#referenzierte_spezifikation">siehe SecurityLayer Spezifikation</a>). </p> <p align="right"><em>{40}{xxxxx}</em></p> <blockquote> <p>{40} ... MOA-ID Statuscode für Fehler aus der Bürgerkartenumgebung</p> <p>{xxxx} .... Fehlercode der Bürgerkartenumgebung.</p> </blockquote> -<h4><a name="statuscodes_41xxx" id="allgemeines_zugangspunkte20"></a>1.3.2.2 MIS (41xxxx)</h4> +<h5><a name="statuscodes_41xxx" id="allgemeines_zugangspunkte20"></a>1.3.2.2 MIS (41xxxx)</h5> <p>Tritt während der Kommunikation mit dem Online-Vollmachten Service oder der Vollmachtsauswahl ein Fehler auf so wird der entsprechende Fehlercode an den Service Provider weitergereicht. Der der durch das Modul MOA-ID-Auth weitergereichte Statuscode für Fehler aus dem Online-Vollmachten Service weißt das folgende zweiteilige Format auf. Der erste Teil, bestehend aus drei Dezimalstellen, kennzeichnet den Fehler als Fehler als Online-Vollmachten Service Fehler. Der zweite Teil, bestehend aus drei Dezimalstellen bezeichnet den eindeutigen Identifikator des Fehlers aus dem Online-Vollmachten Service (<a href="#referenzierte_spezifikation">siehe Online-Vollmachten Spezifikation</a>). </p> <p><em>{411}{xxxx}</em></p> <blockquote> @@ -654,10 +655,10 @@ Redirect Binding</td> <p>{xxx} .... Fehlercode des Online-Vollmachten Service.</p> </blockquote> <p>Zusätzlich zu den gemappten Fehlern aus dem Online-Vollmachen Service werden zusätzliche weitere Fehlercodes definiert.</p> -<table width="1237" border="1"> +<table class="configtable"> <tr> - <th width="214" scope="col">Statuscode</th> - <th width="1007" scope="col">Beschreibung</th> + <th>Statuscode</th> + <th>Beschreibung</th> </tr> <tr> <td>41000</td> @@ -668,11 +669,11 @@ Redirect Binding</td> <td>Allgemeiner Fehler bei der Kommunikation mit dem Online-Vollmachten Service</td> </tr> </table> -<h4><a name="statuscodes_42xxx" id="allgemeines_zugangspunkte21"></a>1.3.2.3 SZR-Gateway (42xxx)</h4> -<table width="1237" border="1"> +<h5><a name="statuscodes_42xxx" id="allgemeines_zugangspunkte21"></a>1.3.2.3 SZR-Gateway (42xxx)</h5> +<table class="configtable"> <tr> - <th width="214" scope="col">Statuscode</th> - <th width="1007" scope="col">Beschreibung</th> + <th>Statuscode</th> + <th>Beschreibung</th> </tr> <tr> <td>4200</td> @@ -683,35 +684,35 @@ Redirect Binding</td> <td>Die Antragung in das SZR ist fehlgeschlagen</td> </tr> </table> -<h4><a name="statuscodes_43xxx" id="allgemeines_zugangspunkte22"></a>1.3.2.4 MOA SP/SS(43xxx)</h4> -<table width="1237" border="1"> +<h5><a name="statuscodes_43xxx" id="allgemeines_zugangspunkte22"></a>1.3.2.4 MOA SP/SS(43xxx)</h5> +<table class="configtable"> <tr> - <th width="214" scope="col">Statuscode</th> - <th width="1007" scope="col">Beschreibung</th> + <th>Statuscode</th> + <th>Beschreibung</th> </tr> <tr> <td>4300</td> <td>Fehler beim Aufruf von MOA SP/SS</td> </tr> </table> -<h4><a name="statuscodes_44xxx" id="allgemeines_zugangspunkte23"></a>1.3.2.5 Interfederation (44xxx)</h4> -<table width="1237" border="1"> +<h5><a name="statuscodes_44xxx" id="allgemeines_zugangspunkte23"></a>1.3.2.5 Interfederation (44xxx)</h5> +<table class="configtable"> <tr> - <th width="214" scope="col">Statuscode</th> - <th width="1007" scope="col">Beschreibung</th> + <th>Statuscode</th> + <th>Beschreibung</th> </tr> <tr> <td>4400</td> <td>Fehler beim Generieren der Anmeldedaten</td> </tr> </table> -<h3><a name="statuscodes_6xxxx" id="allgemeines_zugangspunkte9"></a>1.3.3 Statuscodes 6xxxx</h3> +<h4><a name="statuscodes_6xxxx" id="allgemeines_zugangspunkte9"></a>1.3.3 Statuscodes 6xxxx</h4> <p>Alles Statuscodes beginnend mit der Zahl sechs beschreiben protokollspezifische Fehler die nicht durch das jeweilige Authentifizierungsprotokoll abgebildet werden.</p> -<h4><a name="statuscodes_61xxx" id="allgemeines_zugangspunkte24"></a>1.3.3.1 Allgemein (61xxx)</h4> -<table width="1237" border="1"> +<h5><a name="statuscodes_61xxx" id="allgemeines_zugangspunkte24"></a>1.3.3.1 Allgemein (61xxx)</h5> +<table class="configtable"> <tr> - <th width="214" scope="col">Statuscode</th> - <th width="1007" scope="col">Beschreibung</th> + <th>Statuscode</th> + <th>Beschreibung</th> </tr> <tr> <td>6000</td> @@ -722,11 +723,11 @@ Redirect Binding</td> <td>Der STORK Request wurde nicht erkannt oder wird nicht unterstützt</td> </tr> </table> -<h4><a name="statuscodes_61xxx" id="allgemeines_zugangspunkte16"></a>1.3.3.2 PVP 2.1 (61xxx)</h4> -<table width="1237" border="1"> +<h5><a name="statuscodes_61xxx" id="allgemeines_zugangspunkte16"></a>1.3.3.2 PVP 2.1 (61xxx)</h5> +<table class="configtable"> <tr> - <th width="214" scope="col">Statuscode</th> - <th width="1007" scope="col">Beschreibung</th> + <th>Statuscode</th> + <th>Beschreibung</th> </tr> <tr> <td>6100</td> @@ -753,35 +754,35 @@ Redirect Binding</td> <td>Der Request konnte nicht gültig validiert werden.</td> </tr> </table> -<h4><a name="statuscodes_62xxx" id="allgemeines_zugangspunkte17"></a>1.3.3.3 OpenID Connect (62xxx)</h4> -<table width="1237" border="1"> +<h5><a name="statuscodes_62xxx" id="allgemeines_zugangspunkte17"></a>1.3.3.3 OpenID Connect (62xxx)</h5> +<table class="configtable"> <tr> - <th width="214" scope="col">Statuscode</th> - <th width="1007" scope="col">Beschreibung</th> + <th>Statuscode</th> + <th>Beschreibung</th> </tr> <tr> <td>6200</td> <td>Fehlerhafte redirect url</td> </tr> </table> -<h4><a name="statuscodes_63xxx" id="allgemeines_zugangspunkte18"></a>1.3.3.4 SAML 1(63xxx)</h4> -<table width="1237" border="1"> +<h5><a name="statuscodes_63xxx" id="allgemeines_zugangspunkte18"></a>1.3.3.4 SAML 1(63xxx)</h5> +<table class="configtable"> <tr> - <th width="214" scope="col">Statuscode</th> - <th width="1007" scope="col">Beschreibung</th> + <th>Statuscode</th> + <th>Beschreibung</th> </tr> <tr> <td>6300</td> <td>Fehlerhaftes SAML Artifact Format</td> </tr> </table> -<h3><a name="statuscodes_9xxxx" id="allgemeines_zugangspunkte10"></a>1.3.4 Statuscodes 9xxxx</h3> +<h4><a name="statuscodes_9xxxx" id="allgemeines_zugangspunkte10"></a>1.3.4 Statuscodes 9xxxx</h4> <p>Alles Statuscodes beginnend mit der Zahl neun beschreiben interne Serverfehler.</p> -<h4><a name="statuscodes_90xxx" id="allgemeines_zugangspunkte14"></a>1.3.4.1 Konfigurationsfehler (90xxx)</h4> -<table width="1237" border="1"> +<h5><a name="statuscodes_90xxx" id="allgemeines_zugangspunkte14"></a>1.3.4.1 Konfigurationsfehler (90xxx)</h5> +<table class="configtable"> <tr> - <th width="214" scope="col">Statuscode</th> - <th width="1007" scope="col">Beschreibung</th> + <th>Statuscode</th> + <th>Beschreibung</th> </tr> <tr> <td>9000</td> @@ -816,11 +817,11 @@ Redirect Binding</td> <td>Der SZR-Gateway Client konnte nicht initialisiert werden.</td> </tr> </table> -<h4><a name="statuscodes_91xxx" id="allgemeines_zugangspunkte15"></a>1.3.4.2 Interne Fehler (91xxx)</h4> -<table width="1237" border="1"> +<h5><a name="statuscodes_91xxx" id="allgemeines_zugangspunkte15"></a>1.3.4.2 Interne Fehler (91xxx)</h5> +<table class="configtable"> <tr> - <th width="214" scope="col">Statuscode</th> - <th width="1007" scope="col">Beschreibung</th> + <th>Statuscode</th> + <th>Beschreibung</th> </tr> <tr> <td>9100</td> @@ -844,7 +845,7 @@ Redirect Binding</td> </tr> </table> <p> </p> -<h2><a name="allgemeines_sso" id="allgemeines_zugangspunkte3"></a>1.4 Single Sign-On</h2> +<h3><a name="allgemeines_sso" id="allgemeines_zugangspunkte3"></a>1.4 Single Sign-On</h3> <p>Das Modul MOA-ID-Auth unterstützt ab der Version 2.0 Single Sign-On (SSO), wobei diese Funktionalität unabhängig vom verwendeten Protokoll ist. Bei Verwendung von SSO muss sich der Benutzer nur ein Mal bei MOA-ID-Auth authentifizieren und danach steht die authentifizierte Session für die Benutzerin oder den Benutzer für weitere Anmeldevorgänge ohne weitere Authentifizierung mittels Bürgerkarte, Handy-Signatur oder STORK zur Verfügung. Die SSO Session kann danach durch <a href="#allgemeines_ssologout">die Benutzerin oder den Benutzer beendet</a> werden, oder sie wird von MOA-ID-Auth nach der <a href="./../config/config.html#konfigurationsparameter_allgemein_timeouts">maximal erlaubten Sessionzeit</a> serverseitig beendet. </p> <p>Das nachfolgende Sequenzdiagramm zeigt eine Anmeldung mittels Single Sign-On an zwei Online-Applikationen unter Verwendung von PVP 2.1. Aus Gründen der Übersichtlichkeit wurden die Teile welche die Kommunikation mit der Bürgerkartenumgebung, die Vollmachten-Auswahl oder den Metadatenaustausch betreffen bewusst nicht berücksichtigt.</p> <p><img src="sso_sequence.png" width="1095" height="978" alt="Sequenzdiagramm einer Anmeldung mittels Single Sign-On"></p> @@ -873,7 +874,7 @@ Redirect Binding</td> <li>Ist die Validierung der Assertion erfolgreich wird die Benutzerin oder der Benutzer an der Online-Applikation 2 angemeldet</li> </ol> <p>Zusätzliche Informationen zur Konfiguration und die sich daraus ergebenden Anforderungen oder Einschränkungen finden sie <a href="./../config/config.html#konfigurationsparameter_allgemein_sso">hier</a>.</p> -<h2><a name="allgemeines_ssologout" id="allgemeines_zugangspunkte5"></a>1.5 SSO Logout </h2> +<h3><a name="allgemeines_ssologout" id="allgemeines_zugangspunkte5"></a>1.5 SSO Logout </h3> <p>Das Modul MOA-ID-Auth stellt ein einfaches Service zur Beendigung einer bestehenden Single Sign-On Session zur Verfügung. Nach dem Aufruf dieses Service aus dem Browser des Users wird eine bestehende SSO Session beendet und anschließend wird die Benutzerin oder der Benutzer an eine im LogOut Request angegebene URL weitergeleitet. </p> <p>Das SSO Logout Service steht unter folgender URL zur Verfügung und benötigt einen http GET Parameter:</p> <pre>http://<host>:<port>/moa-id-auth/LogOut @@ -882,11 +883,11 @@ Redirect Binding</td> <pre> https://<host>:<port>/moa-id-auth/LogOut </pre> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="115" scope="col">Name</th> - <th width="262" scope="col">Beispielwert</th> - <th width="848" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>redirect</td> @@ -901,7 +902,7 @@ https://<host>:<port>/moa-id-auth/LogOut <pre>https://demo.egiz.gv.at/moa-id-auth/LogOut?redirect=https://demo.egiz.gv.at/demoportal-openID_demo </pre> <p><strong>Hinweis:</strong> Dieses Service bietet jedoch NICHT eine vollständige Single Log-Out Funktionalität wie sie im SAML 2 Protokoll vorgesehen ist, sondern beendet ausschließlich die SSO Session in der MOA-ID-Auth Instanz.</p> -<h3><a name="allgemeines_ssologout_slo" id="allgemeines_zugangspunkte25"></a>1.5.1 Single LogOut</h3> +<h4><a name="allgemeines_ssologout_slo" id="allgemeines_zugangspunkte25"></a>1.5.1 Single LogOut</h4> <p>Ab der Version 2.1 unterstützt das Modul MOA-ID-Auth Single LogOut (SLO) laut SAML2 Spezifikation. Die SLO Funktionaltität steht jedoch nur für Online-Applikationen zur Verfügung welche als Authentifizierungsprotokoll PVP 2.1 verwenden. Für alle anderen Authentifizierungsprotokolle steht aktuell kein SLO zur Verfügung. </p> <p>Für Single LogOut stehen sowohl IDP initialisiertes SLO als auch Service Provider initialisiertes SLO zur Verfügung. Als Einsprungpunkt für IDP initialisiertes SLO stellt das Modul MOA-ID-Auth folgende Web Adressen zur Verfügung. Nach dem Aufruf dieses Services wird der Single LogOut Vorgang gestartet. Nach erfolgreicher Bearbeitung aller SLO Requests / Response erfolgt die Statusausgabe in den Browser.</p> <pre>https://<host>:<port>/moa-id-auth/idpSingleLogout</pre> @@ -912,14 +913,14 @@ https://<host>:<port>/moa-id-auth/LogOut <p> </p> <p><strong>Hinweis:</strong> Wenn Single Sign-On mit Authentifizierungsprotokollen, welche kein SLO untersützen verwendet wurde, schlägt der Single LogOut Vorgang auf jeden Fall fehl, da der Benutzer an den jeweiligen Online-Applikationen nicht angemeldet werden kann. Die SSO Session am Identityprovider wird jedoch auf jeden Fall beendet</p> <p> </p> -<h2><a name="allgemeines_legacy" id="allgemeines_zugangspunkte4"></a>1.6 Legacy Request (Bürgerkartenauswahl beim Service Provider)</h2> +<h3><a name="allgemeines_legacy" id="allgemeines_zugangspunkte4"></a>1.6 Legacy Request (Bürgerkartenauswahl beim Service Provider)</h3> <p>Soll die Bürgerkartenauswahl jedoch weiterhin, wie aus MOA-ID 1.5.1 bekannt direkt in der Online-Applikation des Service Providers erfolgen muss für das jeweilige Protokoll der <a href="./../config/config.html#konfigurationsparameter_allgemein_protocol_legacy">Legacy Modus aktiviert</a> werden. Wird der Legacy Modus verwendet muss jedoch zusätzlich zu den protokollspezifischen Parametern mindestens der Parameter <em>bkuURI</em>, welcher die gewählte Bürgerkartenumgebung enthält, im Authentifizierungsrequest an MOA-ID-Auth übergeben werden (siehe <a href="#saml1_startauth">Protokoll SAML 1</a>). Die folgenden Parameter stehen bei Verwendung des Legacy Modus unabhängig vom verwendeten Protokoll zur Verfügung und bilden den gesamten Umfang der Bürgerkartenauswahl, wie aus MOA-ID 1.5.1 bekannt, ab.</p> -<table border="1" width="1247"> +<table class="configtable"> <tbody> <tr> - <th scope="col" width="170">Name</th> - <th scope="col" width="221">Beispielwert</th> - <th scope="col" width="834">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>bkuURI=<bku-url></td> @@ -948,10 +949,10 @@ https://<host>:<port>/moa-id-auth/LogOut <p> </p> <p><strong>Hinweis:</strong> Bei einer vollständigen Neukonfiguration ist der Legacy Modus standardmäßig für alle Protokolle deaktiviert.</p> <p><strong>Hinweis:</strong> Bei der Verwendung des Legacy Request für die Bürgerkartenauswahl ist jedoch zu beachten dass im Falle einer aktiven Single Sign-On Session, MOA-ID-Auth mit einer Abfrage zum SSO Anmeldevorgang antwortet.</p> -<h1><a name="pvp21"></a>2 PVP 2.1</h1> +<h2><a name="pvp21"></a>2 PVP 2.1</h2> <p>Die PVP 2.1 Implementierung des Modules MOA-ID-Auth bezieht sich auf das <a href="#referenzierte_spezifikation">S-Profil der PVP 2 Spezifikation</a>. Das S - Profil von PVP 2 verwendet SAML WebSSO für die Authentifizierung von Benutzern mit Webbrowser. Dadurch wird die direkte Kommunikation des Browsers mit der Anwendung ermöglicht, was in Anwendungsfällen notwendig ist, wo Anwendungen nicht kompatibel mit dem Reverse - Proxy - Verfahren sind, datenschutzrechtliche Probleme bestehen oder SAML WebSSO als Industriestandard unterstützt werden soll.</p> <p>Bevor PVP 2.1 als Authentifizierungsprotokoll verwendet werden kann muss das Modul MOA-ID-Auth entsprechend konfiguriert werden. Detailinformationen zur Konfiguration finden Sie <a href="../config/config.html">hier</a>.</p> -<h2><a name="pvp21_sequenz" id="pvp21_sequenz"></a>2.1 Ablauf einer Anmeldung mittels PVP 2.1</h2> +<h3><a name="pvp21_sequenz" id="pvp21_sequenz"></a>2.1 Ablauf einer Anmeldung mittels PVP 2.1</h3> <p>Die nachfolgende Abbildung zeigt das Sequenzdiagramm eines Anmeldevorgangs mittels PVP 2.1 und des Modules MOA-ID-Auth als Identity Provider. Aus Gründen der Übersichtlichkeit wurden die Teile welche die Kommunikation mit der Bürgerkartenumgebung oder die Vollmachten-Auswahl betreffen bewusst nicht berücksichtigt.</p> <p><img src="pvp21_sequence.png" width="968" height="687" alt="Sequenzdiagramm PVP 2.1"></p> <ol> @@ -973,7 +974,7 @@ https://<host>:<port>/moa-id-auth/LogOut </ol> </li> </ol> -<h2><a name="pvp21_metadata" id="pvp21_metadata"></a>2.2 Metadaten</h2> +<h3><a name="pvp21_metadata" id="pvp21_metadata"></a>2.2 Metadaten</h3> <p>Das Modul MOA-ID-Auth stellt für Service-Provider (Online-Applikationen) Metadaten bereit welche alle PVP 2.1 spezifischen Informationen der MOA-ID-Auth Instanz beinhalten. Diese Metadaten werden durch das Modul MOA-ID-Auth signiert, wodurch Service Provider die Authentizität der Metadaten verifizieren können. Ein Beispiel für Metadaten von MOA-ID-Auth finden sie <a href="#idp_metadata.xml">hier</a>. Die aktuellen Metadaten zu Ihrer MOA-ID-Auth Instanz können unter folgender URL abgerufen werden.</p> <pre>http://<host>:<port>/moa-id-auth/pvp2/metadata </pre> @@ -993,7 +994,7 @@ https://<host>:<port>/moa-id-auth/pvp2/metadata </ul> <p>Zusätzlich unterstützt das Modul MOA-ID-Auth auch die Verschlüsselung PVP 2.1 Assertion mit einem vom Service-Provider definierten Zertifikat. Um diese Funktion zu nutzen muss in den Metadaten ein zweites XML Element <code>md:EntitiesDescriptor/md:EntityDescriptormd:SPSSODescriptor/md:KeyDescriptor</code> mit dem Attribut <code>use="encryption"</code> vorhanden sein (siehe <a href="./serviceprovider_metadata.xml">Beispiel</a>). In diesem Fall verwendet das Modul MOA-ID-Auth, dass in diesem Element hinterlegte Zertifikat zur Verschlüsselung der PVP 2.1 Assertion.</p> <p><strong>Hinweis:</strong> Fehlt im XML Element <code>md:EntitiesDescriptor/md:EntityDescriptormd:SPSSODescriptor/md:KeyDescriptor</code> das Attribut <code>use</code> wird das in diesem Element hinterlegte Zertifikat sowohl zur Prüfung der Signatur des Authentifizierungsrequest als auch zur Verschlüsselung der PVP 2.1 Assertion verwendet.</p> -<h2><a name="pvp21_binding" id="pvp21_binding"></a>2.3 Zugangspunkte</h2> +<h3><a name="pvp21_binding" id="pvp21_binding"></a>2.3 Zugangspunkte</h3> <p>Für die Kommunikation zwischen Service Provider und dem Modul MOA-ID-Auth stellt MOA-ID-Auth aktuell zwei PVP 2.1 spezifische Zugangspunkte zur Verfügung. Detailinformationen zu den beiden Zugangspunkten (Bindings) entnehmen finden Sie in der <a href="#referenzierte_spezifikation">SAML2 Spezifikation</a>. </p> <ul> <li><strong>POST Binding</strong>: In diesem Fall erfolgt die Übertragung mittels http POST. Hierfür stellt MOA-ID-Auth den folgenden Zugangspunkt zur Verfügung.</li> @@ -1004,16 +1005,16 @@ https://<host>:<port>/moa-id-auth/pvp2/metadata </ul> <pre>https://<host>:<port>/moa-id-auth/pvp2/redirect</pre> <p><strong>Hinweis:</strong> Die Zugangspunkte können auch direkt aus den von MOA-ID-Auth generierten Metadaten entnommen werden.</p> -<h3><a name="pvp21_binding_request" id="pvp21_binding2"></a>2.3.1 Authentifizierungsrequest</h3> +<h4><a name="pvp21_binding_request" id="pvp21_binding2"></a>2.3.1 Authentifizierungsrequest</h4> <p>Der Authentifizierungsrequest wird vom Service Provider erstellt und an das Modul MOA-ID-Auth übermittelt. Zur Übertragung, muss je nach verwendetem Binding, einer der beiden <a href="#pvp21_binding">Zugangspunkte</a> und die entsprechende Kodierung der Parameter verwendet werden.</p> <p>Folgende Minimalanforderungen an den Authentifizierungsrequest müssen erfüllt sein.</p> <ul> <li>Der Request muss durch den Service Provider signiert sein (siehe <a href="AuthRequest.xml">Beispiel</a>). Die Signatur wird durch das Modul MOA-ID-Auth mit Hilfe des in den <a href="#pvp21_metadata">Metadaten hinterlegten Zertifikats</a> validiert. Schlägt die Signaturprüfung fehl oder ist keine Signatur vorhanden wird der Request abgewiesen und MOA-ID-Auth antwortet mit http Code <em>400</em> und der Fehlermeldung <em>NO valid protocol request received!</em>.</li> <li> - <table border="1" cellpadding="2" class="fixedWidth"> + <table class="configtable"> <tr> - <td width="8%">Name</td> - <td width="92%"><code>saml2p:AuthnRequest/saml2:Issuer</code></td> + <td>Name</td> + <td ><code>saml2p:AuthnRequest/saml2:Issuer</code></td> </tr> <tr> <td> Gebrauch</td> @@ -1026,7 +1027,7 @@ https://<host>:<port>/moa-id-auth/pvp2/metadata </table> </li> <li> - <table border="1" cellpadding="2" class="fixedWidth"> + <table class="configtable"> <tr> <td width="8%">Name</td> <td width="92%"><code>/saml2p:AuthnRequest/@ID</code></td> @@ -1044,7 +1045,7 @@ https://<host>:<port>/moa-id-auth/pvp2/metadata </ul> <p>Einen Beispielrequest finden Sie <a href="AuthRequest.xml">hier</a>.</p> <p><strong>Hinweis:</strong> Detailinformationen finden Sie im Abschnitt <a href="#referenzierte_spezifikation">Spezifikationen</a> in der PVP 2.1 Spezifikation und der SAML2 Spezifikation.</p> -<h3><a name="pvp21_binding_response" id="pvp21_binding3"></a>2.3.2 Authentifizierungsresponse</h3> +<h4><a name="pvp21_binding_response" id="pvp21_binding3"></a>2.3.2 Authentifizierungsresponse</h4> <p>Nach erfolgreicher Authentifizierung antwortet das Modul MOA-ID-Auth mit einer PVP 2.1 Assertion. Zur Übertragung der Assertion erfolgt an das in den Metadaten der Online-Applikation angegebene <em>AssertionConsumerService</em> (siehe <a href="#pvp21_metadata">Metadaten</a>).</p> <p>Aktuell werden vom Modul MOA-ID-Auth zwei Bindings zur Übertragung der Assertion unterstützt.</p> <ul> @@ -1145,13 +1146,13 @@ https://<host>:<port>/moa-id-auth/pvp2/metadata <td><p>Dieses Attribut beinhaltet einen von MOA-ID-Auth ausgestellten Gültigkeitszeitraum für diese Assertion. Aktuell beträgt der Gültigkeitszeitraum fünf Minuten ab dem Ausstellzeitpunkt.</p></td> </tr> </table> -<h1><a name="openid"></a>3 OpenID Connect </h1> -<p>OpenID Connect ist ein Authentifizierungsprotokoll welches auf dem OAuth 2.0 Protokoll aufbaut. Dieses Protokoll erlaubt Online-Applikationen die Identifizierung und Authentifizierung von Benutzern, mit Hilfe des Modules MOA-ID-Auth. Der Vorteil von OpenID Connect im Vergleich zu auf SAML basierten Protokollen (PVP 2.1, SAML 1) ist der einfachere Aufbau der einzelnen Protokollnachrichten. Zusätzlich existieren einige frei Verfügbare Bibliotheken für unterschiedliche Programmiersprachen, welche OpenID Connect implementieren.</p> +<h2><a name="openid"></a>3 OpenID Connect </h2> +<p>OpenID Connect ist ein Authentifizierungsprotokoll welches auf dem OAuth 2.0 Protokoll aufbaut. Dieses Protokoll erlaubt Online-Applikationen die Identifizierung und Authentifizierung von Benutzern, mit Hilfe des Modules MOA-ID-Auth. Der Vorteil von OpenID Connect im Vergleich zu auf SAML basierten Protokollen (PVP 2.1, SAML 1) ist der einfachere Aufbau der einzelnen Protokollnachrichten. Zusätzlich existieren einige frei Verfügbare Bibliotheken für unterschiedliche Programmiersprachen, welche OpenID Connect implementieren.</p> <p>Bevor OpenID Connect in Kombination mit dem Modul MOA-ID-Auth verwendet werden kann muss das Modul MOA-ID-Auth konfiguriert werden. Detailinformationen zur <a href="./../config/config.html#basisconfig_moa_id_auth_param_protocol_openid" >Allgemeinen Konfiguration</a> und zur <a href="./../config/config.html#konfigurationsparameter_oa_protocol_openIDConnect">online-applikationsspezifischen Konfiguration</a> finden Sie im jeweiligen Abschnitt des Kapitels Konfiguration.</p> -<p>Die nachfolgende Beschreibung gibt einen kurzen Überblick zur Verwendung des Protokolls OpenID Connect in Kombination mit dem Modul MOA-ID-Auth. Detailinformationen zu OpenID Connect entnehmen Sie bitte der aktuellen <a href="#referenzierte_spezifikation">OpenID Connect Spezifikation</a></p> +<p>Die nachfolgende Beschreibung gibt einen kurzen Ãœberblick zur Verwendung des Protokolls OpenID Connect in Kombination mit dem Modul MOA-ID-Auth. Detailinformationen zu OpenID Connect entnehmen Sie bitte der aktuellen <a href="#referenzierte_spezifikation">OpenID Connect Spezifikation</a></p> -<h2><a name="openid_sequenzdiagramm"></a>3.1 Ablauf einer Anmeldung mittels OpenID Connect</h2> -<p>Die nachfolgende Abbildung zeigt das Sequenzdiagramm eines Anmeldevorgangs mittels OpenID Connect und des Modules MOA-ID-Auth als Identity Provider. Aus Gründen der Übersichtlichkeit wurden die Teile welche die Kommunikation mit der Bürgerkartenumgebung oder die Vollmachten-Auswahl betreffen bewusst nicht berücksichtigt.</p> +<h3><a name="openid_sequenzdiagramm"></a>3.1 Ablauf einer Anmeldung mittels OpenID Connect</h3> +<p>Die nachfolgende Abbildung zeigt das Sequenzdiagramm eines Anmeldevorgangs mittels OpenID Connect und des Modules MOA-ID-Auth als Identity Provider. Aus Gründen der Ãœbersichtlichkeit wurden die Teile welche die Kommunikation mit der Bürgerkartenumgebung oder die Vollmachten-Auswahl betreffen bewusst nicht berücksichtigt.</p> <p><img src="openIDconnect_sequenz.png" width="1138" height="705" alt="Sequenzdiagramm OpenID Connect"></p> <ol> @@ -1182,23 +1183,23 @@ https://<host>:<port>/moa-id-auth/pvp2/metadata </ol> </li> </ol> -<h2><a name="openid_interface"></a>3.2 Zugangspunkte</h2> -<p>Zur Verwendung von OpenID Connect stellt das Modul MOA-ID-Auth zwei Zugangspunkte zur Kommunikation mit der Online-Applikation zur Verfügung. Diese Zugangspunkte bezeichnen die URLs unter welchen das Modul MOA-ID-Auth die entsprechenden OpenID Connect Nachrichten entgegennimmt.</p> +<h3><a name="openid_interface"></a>3.2 Zugangspunkte</h3> +<p>Zur Verwendung von OpenID Connect stellt das Modul MOA-ID-Auth zwei Zugangspunkte zur Kommunikation mit der Online-Applikation zur Verfügung. Diese Zugangspunkte bezeichnen die URLs unter welchen das Modul MOA-ID-Auth die entsprechenden OpenID Connect Nachrichten entgegennimmt.</p> <ul> - <li><b>AuthCode-Request:</b> <em>https://<host>:<port>/moa-id-auth/oauth2/auth</em><br> Unter dieser URL wird der Authn Request entgegengenommen. Dieser Request startet den Authentifizierungsvorgang an der Online-Applikation. Hier finden Sie Detailinformationen zum <a href="#openid_req_authnreq"> Request </a>und zur <a href="#openid_req_authnresp">Response</a>.</li> - <li><b>AccessToken-Request:</b> <em>https://<host>:<port>/moa-id-auth/oauth2/token</em><br> Unter dieser URL können nach erfolgreicher Authentifizierung die eigentlichen Authentifizierungsdaten am Modul MOA-ID-Auth abgeholt werden. Hier finden Sie Detailinformationen zum <a href="#openid_req_tokenreq"> Request </a>und zur <a href="#openid_req_tokenresp">Response</a>.</li> + <li><b>AuthCode-Request:</b> <em>https://<host>:<port>/moa-id-auth/oauth3/auth</em><br> Unter dieser URL wird der Authn Request entgegengenommen. Dieser Request startet den Authentifizierungsvorgang an der Online-Applikation. Hier finden Sie Detailinformationen zum <a href="#openid_req_authnreq"> Request </a>und zur <a href="#openid_req_authnresp">Response</a>.</li> + <li><b>AccessToken-Request:</b> <em>https://<host>:<port>/moa-id-auth/oauth3/token</em><br> Unter dieser URL können nach erfolgreicher Authentifizierung die eigentlichen Authentifizierungsdaten am Modul MOA-ID-Auth abgeholt werden. Hier finden Sie Detailinformationen zum <a href="#openid_req_tokenreq"> Request </a>und zur <a href="#openid_req_tokenresp">Response</a>.</li> </ul> -<h2><a name="openid_requests"></a>3.3 Beschreibung der Nachrichten</h2> -<p>Dieser Abschnitt beschreibt die einzelnen OpenID Connect spezifischen Nachrichten, welche zwischen der Online-Applikation und dem Modul MOA-ID-Auth während eines Authentifizierungsvorgangs ausgetauscht werden. Hierbei wird auch auf das Sequenzdiagramm aus <a href="#openid_sequenzdiagramm">Abschnitt 3.1</a> Bezug genommen.</p> +<h3><a name="openid_requests"></a>3.3 Beschreibung der Nachrichten</h3> +<p>Dieser Abschnitt beschreibt die einzelnen OpenID Connect spezifischen Nachrichten, welche zwischen der Online-Applikation und dem Modul MOA-ID-Auth während eines Authentifizierungsvorgangs ausgetauscht werden. Hierbei wird auch auf das Sequenzdiagramm aus <a href="#openid_sequenzdiagramm">Abschnitt 3.1</a> Bezug genommen.</p> -<h3><a name="openid_req_authnreq"></a>3.2.1 AuthCode Request</h3> -<p>Der AuthCode Request ist die Authentifizierungsanfrage einer Online-Applikation für eine Benutzerin oder einen Benutzer. -Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für die Übertragung der Parameter sowohl http GET als auch http POST verwendet werden kann.</p> -<table width="1247" border="1"> +<h4><a name="openid_req_authnreq"></a>3.2.1 AuthCode Request</h4> +<p>Der AuthCode Request ist die Authentifizierungsanfrage einer Online-Applikation für eine Benutzerin oder einen Benutzer. +Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für die Ãœbertragung der Parameter sowohl http GET als auch http POST verwendet werden kann.</p> +<table class="configtable"> <tr> - <th width="115" scope="col">Name</th> - <th width="262" scope="col">Beispielwert</th> - <th width="848" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>client_id</td> @@ -1241,7 +1242,7 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für </table> <p> </p> <p>Nachfolgend ein Beispiel für einen OpenID Connect Authentifizierungsrequest an das Modul MOA-ID-Auth.</p> -<pre><form method="get" action="https://demo.egiz.gv.at/demoportal_moaid-2.0/oauth2/auth"> +<pre><form method="get" action="https://demo.egiz.gv.at/demoportal_moaid-2.0/oauth3/auth"> <input type="hidden" value="code" name="response_type"> <input type="hidden" value="https://demo.egiz.gv.at/demoportal-openID_demo" name="client_id"> <input type="hidden" value="https://demo.egiz.gv.at/demoportal-openID_demo/securearea.action" name="redirect_uri"> @@ -1249,13 +1250,13 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für <input type="hidden" value="1152547590" name="state"> <input type="submit" value="OpenID Connect login"> </form></pre> -<h3><a name="openid_req_authnresp"></a>3.2.2 AuthCode Response</h3> +<h4><a name="openid_req_authnresp"></a>3.2.2 AuthCode Response</h4> <p>Das Ergebnis des AuthCode Requests wird an die <em>redirect_uri</em> der Online-Applikation gesendet. Die nachfolgenden Parameter werden dabei übergeben.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="115" scope="col">Name</th> - <th width="262" scope="col">Beispielwert</th> - <th width="848" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>state</td> @@ -1271,13 +1272,13 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für <p> </p> <p>Nachfolgend ein Beispiel für eine AuthCode Response.</p> <pre>https://demo.egiz.gv.at/demoportal-openID_demo/securearea.action?state=1425782214234&code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7 </pre> -<h3><a name="openid_req_tokenreq"></a>3.2.3 AccessToken Request</h3> +<h4><a name="openid_req_tokenreq"></a>3.2.3 AccessToken Request</h4> <p>Mit dem AccessToken Request können vom Service Provider der Online-Applikation die Anmeldedaten an der MOA-ID-Auth Instanz abgeholt werden. Für die Abholung müssen folgende Parameter mit dem AccessToken Request an MOA-ID-Auth übertragen werden, wobei für die Übertragung der Parameter sowohl http GET als auch http POST verwendet werden kann.</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="115" scope="col">Name</th> - <th width="262" scope="col">Beispielwert</th> - <th width="848" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>grant_type</td> @@ -1307,7 +1308,7 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für </table> <p> </p> <p>Nachfolgend ein Beispiel für einen AccessToken Request</p> -<pre><form method="POST" action="https://demo.egiz.gv.at/demoportal_moaid-2.0/oauth2/token"> +<pre><form method="POST" action="https://demo.egiz.gv.at/demoportal_moaid-2.0/oauth3/token"> <input type="hidden" value="authorization_code" name="grant_type"> <input type="hidden" value="https://demo.egiz.gv.at/demoportal-openID_demo" name="client_id"> <input type="hidden" value="https://demo.egiz.gv.at/demoportal-openID_demo/securearea.action" name="redirect_uri"> @@ -1315,16 +1316,16 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für <input type="hidden" value="4/P7q7W91a-oMsCeLvIaQm6bTrgtp7" name="code"> </form></pre> -<h3><a name="openid_req_tokenresp"></a>3.2.4 AccessToken Response</h3> +<h4><a name="openid_req_tokenresp"></a>3.2.4 AccessToken Response</h4> <p>Die AccessToken Response beinhaltet ein signiertes JSON-Token welches alle angeforderten (Parameter <em>scope</em> im AuthCode Request) und vorhandenen Authentifizierungsdaten beinhaltet. Dieses JSON-Token ist mit einer JSON Web Signatur von MOA-ID-Auth signiert, wobei die Signatur alle angeforderten Daten einschließt. Details zur Konfiguration des Signatur Zertifikats finden Sie <a href="../config/config.html#basisconfig_moa_id_auth_param_protocol_openid">hier</a>. </p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="115" scope="col">Name</th> - <th width="262" scope="col">Beispielwert</th> - <th width="848" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>access_token</td> @@ -1365,20 +1366,20 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für NzYxMDAxIiwKICJhdWQiOiAiczZCaGRSa3F0MyIsCiAibm9uY2UiOiAibi0wUzZ fV3pBMk1qIiwKICJleHAiOiAxMzExMjgxOTcwLAogImlhdCI6IDEzMTEyODA5Nz AKfQ.ggW8hZ1EuVLuxNuuIJKX_V8a_OMXzR0EHR9R6jgdqrOOF4daGU96Sr_P6q - Jp6IcmD3HP99Obi1PRs-cwh3LO-p146waJ8IhehcwL7F09JdijmBqkvPeB2T9CJ + Jp6IcmD3HP99Obi1PRs-cwh4LO-p146waJ8IhehcwL7F09JdijmBqkvPeB2T9CJ NqeGpe-gccMg4vfKjkM8FcGvnzZUN4_KSP0aAp1tOJ1zZwgjxqGByKHiOtX7Tpd QyHE5lcMiKPXfEIQILVq0pc_E2DzL7emopWoaoZTF_m0_N0YzFC6g6EJbOEoRoS K5hoDalrcvRYLSrQAZZKflyuVCyixEoV9GfNQC3_osjzw2PAithfubEEBLuVVk4 XUVrWOLrLl0nx7RkKU8NXNHq-rvKMzqg" } </pre> -<h3><a name="openid_req_errorresponse" id="openid_req_errorresponse"></a>3.2.5 Error Response</h3> +<h4><a name="openid_req_errorresponse" id="openid_req_errorresponse"></a>3.2.5 Error Response</h4> <p>Sollte während des Authentifizierungsvorgangs ein Fehler auftreten antwortet das Modul MOA-ID-Auth mit einer Error Response. Diese beinhaltet folgende Parameter</p> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="115" scope="col">Name</th> - <th width="262" scope="col">Beispielwert</th> - <th width="848" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td>error</td> @@ -1397,10 +1398,10 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für </tr> </table> <p> </p> -<h1><a name="saml1"></a>3 SAML 1</h1> +<h2><a name="saml1"></a>3 SAML 1</h2> <p>SAML 1 wird durch MOA-ID-Auth 2.0 auch weiterhin, aus Gründen der Abwärtskompatibilität, als Authentifizierungsprotokoll unterstützt. Es wird jedoch der Umstieg auf ein aktuelles Authentifizierungsprotokoll wie PVP 2.1 oder OpenID Connect empfohlen.</p> <p>Die nachfolgenden Abschnitte beschreiben den Anmeldevorgang unter Verwendung von SAML1 wobei die Funktionalität, wie sie aus MOA-ID <= 1.5.1 bekannt ist, auch weiterhin unterstützt wird (Bürgerkartenauswahl auf Seiten des Service Provider). Zusätzlich steht für SAML 1 jedoch auch die Funktionalität der automatischen Generierung der Bürgerkartenauswahl durch das Modul MOA-ID-Auth zur Verfügung.</p> -<h2><a name="saml1_sequence" id="saml1_sequence"></a>3.1 Ablauf einer Anmeldung mittels SAML 1</h2> +<h3><a name="saml1_sequence" id="saml1_sequence"></a>3.1 Ablauf einer Anmeldung mittels SAML 1</h3> <p>Die nachfolgende Abbildung zeigt das Sequenzdiagramm eines Anmeldevorgangs mittels SAML 1 und des Modules MOA-ID-Auth als Identity Provider. Hierbei wird die aus MOA-ID 1.5.1 bekannte Variante der Bürgerkartenauswahl beim Service Provider verwenden. Aus Gründen der Übersichtlichkeit wurden die Teile welche die Kommunikation mit der Bürgerkartenumgebung oder die Vollmachten-Auswahl betreffen bewusst nicht berücksichtigt.</p> <p><img src="saml1_sequence.png" width="936" height="592" alt="Sequenzdiagramm für SAML 1"></p> <ol> @@ -1419,7 +1420,7 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für <li>MOA-ID-Auth validiert das Artifact. Ist die Validierung erfolgreich antwortet MOA-ID-Auth mit der SAML 1 Assertion, welche die Anmeldedaten beinhaltet. </li> <li>Der Service Provider verarbeitet die Assertion und danach ist der Benutzer an der Online-Applikation angemeldet.</li> </ol> -<h2><a name="saml1_zugang" id="saml1_zugang"></a>3.2 Zugangspunkte</h2> +<h3><a name="saml1_zugang" id="saml1_zugang"></a>3.2 Zugangspunkte</h3> <p>Zur Verwendung von SAML 1 stellt das Modul MOA-ID-Auth zwei Zugangspunkte zur Kommunikation mit der Online-Applikation (Service Provider) zur Verfügung. Diese Zugangspunkte bezeichnen die URLs unter welchen das Modul MOA-ID-Auth die entsprechenden SAML1 Nachrichten entgegennimmt.</p> <ul> <li><strong>StartAuthentication Request:</strong> <em>https://<host>:<port>/moa-id-auth/StartAuthentication</em><br> @@ -1427,7 +1428,7 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für <li><strong>GetAuthenticationData:</strong> <em>http(s)://<host>:<port>/moa-id-auth/services/GetAuthenticationData</em><br> Unter dieser URL können nach erfolgreicher Authentifizierung die eigentlichen Authentifizierungsdaten am Modul MOA-ID-Auth abgeholt werden.</li> </ul> -<h2><a name="saml1_startauth" id="saml1_zugang2"></a>3.3 StartAuthentication Request</h2> +<h3><a name="saml1_startauth" id="saml1_zugang2"></a>3.3 StartAuthentication Request</h3> <p>MOA-ID-Auth wird immer durch eine andere (verweisende) Webseite aufgerufen. Diese Webseite kann z.B. Teil eines Portals sein. Der Aufruf erfolgt durch einen Verweis der Form, wobei die Parameter sowohl als http GET als auch als http POST an MOA-ID-Auth übergeben werden können.</p> <pre><a href="https://<moa-id-server-und-pfad>/StartAuthentication ?Target=<geschäftsbereich> @@ -1436,11 +1437,11 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für &Template=<template-url> &useMandate=false &CCC=<ccc>"></pre> -<table width="1247" border="1"> +<table class="configtable"> <tr> - <th width="170" scope="col">Name</th> - <th width="221" scope="col">Beispielwert</th> - <th width="834" scope="col">Beschreibung</th> + <th>Name</th> + <th>Beispielwert</th> + <th>Beschreibung</th> </tr> <tr> <td><moa-id-server-und-pfad></td> @@ -1486,12 +1487,12 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für <td><strong>Optional:</strong> Die sourceID fließt in die Generierung des SAML1 Artifacts, welches an den Service Provider returniert wird, ein. Detailinformationen zur Generierung des SAML1 Artifacts und zur sourceID finden Sie in der <a href="#referenzierte_spezifikation">SAML1 Spezifikation</a>.</td> </tr> </table> -<h2><a name="saml1_getassertion" id="saml1_zugang3"></a>3.4 GetAuthenticationData Request</h2> +<h3><a name="saml1_getassertion" id="saml1_zugang3"></a>3.4 GetAuthenticationData Request</h3> <p>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. </p> <pre><a href="https://<oa-url>?Target=<geschäftsbereich>&SAMLArtifact=<saml-artifact>"></pre> -<table border="1"> +<table class="configtable"> <tbody valign="baseline"> <tr> <td>oa-url></td> @@ -1519,8 +1520,8 @@ Sollte während des Anmeldevorgangs ein Fehler aufgetreten sein, antwortet d <li> <a href="file:///D:/Projekte/svn/moa-id/moa-idspss/id/server/doc/cs-sstc-schema-assertion-01.xsd">SAML 1.0 Assertion Schema</a></li> </ul> <p>Der detaillierte Aufbau der <saml:Assertion> zu den Anmeldedaten ist in der <a href="./../spec/MOA_ID_1.4_20070802.pdf">Spezifikation MOA-ID 1.4</a> beschrieben.</p> -<h1><a name="referenzierte_spezifikation" id="uebersicht_zentraledatei_aktualisierung30"></a>A Referenzierte Spezifikation</h1> -<table class="fixedWidth" border="1" cellpadding="2"> +<h2><a name="referenzierte_spezifikation" id="uebersicht_zentraledatei_aktualisierung30"></a>A Referenzierte Spezifikation</h2> +<table class="configtable"> <tbody> <tr> <th>Spezifikation</th> @@ -1560,5 +1561,6 @@ Sollte während des Anmeldevorgangs ein Fehler aufgetreten sein, antwortet d </tr> </tbody> </table> + </div> </body> </html> diff --git a/id/server/idserverlib/.gitignore b/id/server/idserverlib/.gitignore index ea8c4bf7f..19f2e002c 100644 --- a/id/server/idserverlib/.gitignore +++ b/id/server/idserverlib/.gitignore @@ -1 +1,2 @@ /target +/target diff --git a/id/server/idserverlib/pom.xml b/id/server/idserverlib/pom.xml index 65004490b..44a6c3e60 100644 --- a/id/server/idserverlib/pom.xml +++ b/id/server/idserverlib/pom.xml @@ -352,7 +352,7 @@ <dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
- <version>1.9</version>
+ <version>1.10</version>
</dependency>
<!-- Google OAuth Client -->
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java index 52488c3cb..5d816be1b 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java @@ -43,6 +43,7 @@ import javax.xml.bind.Marshaller; import org.opensaml.saml2.core.Attribute; import org.opensaml.saml2.core.AttributeQuery; +import org.opensaml.saml2.core.AuthnStatement; import org.opensaml.saml2.core.Response; import org.opensaml.ws.soap.common.SOAPException; import org.opensaml.xml.XMLObject; @@ -214,7 +215,7 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants { } else { //build AuthenticationData from MOASession - buildAuthDataFormMOASession(authdata, session, oaParam); + buildAuthDataFormMOASession(authdata, session, oaParam, protocolRequest); } @@ -271,12 +272,13 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants { AssertionAttributeExtractor extractor = new AssertionAttributeExtractor(intfResp); - if (!extractor.containsAllRequiredAttributes()) { + if (!extractor.containsAllRequiredAttributes()) { + Logger.info("Received assertion does no contain a minimum set of attributes. Starting AttributeQuery process ..."); //collect attributes by using BackChannel communication String endpoint = idp.getIDPAttributQueryServiceURL(); if (MiscUtil.isEmpty(endpoint)) { - Logger.error("No AttributeQueryURL for interfederationIDP " + oaParam.getPublicURLPrefix()); - throw new ConfigurationException("No AttributeQueryURL for interfederationIDP " + oaParam.getPublicURLPrefix(), null); + Logger.error("No AttributeQueryURL for interfederationIDP " + idp.getPublicURLPrefix()); + throw new ConfigurationException("No AttributeQueryURL for interfederationIDP " + idp.getPublicURLPrefix(), null); } //build attributQuery request @@ -321,7 +323,7 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants { } //parse response information to authData - buildAuthDataFormInterfederationResponse(authdata, session, extractor, oaParam); + buildAuthDataFormInterfederationResponse(authdata, session, extractor, oaParam, req); } catch (SOAPException e) { throw new BuildException("builder.06", null, e); @@ -348,7 +350,8 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants { AuthenticationData authData, AuthenticationSession session, AssertionAttributeExtractor extractor, - IOAAuthParameters oaParam) + IOAAuthParameters oaParam, + IRequest req) throws BuildException, AssertionAttributeExtractorExeption { Logger.debug("Build AuthData from assertion starts ...."); @@ -358,14 +361,35 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants { authData.setFamilyName(extractor.getSingleAttributeValue(PVPConstants.PRINCIPAL_NAME_NAME)); authData.setGivenName(extractor.getSingleAttributeValue(PVPConstants.GIVEN_NAME_NAME)); authData.setDateOfBirth(extractor.getSingleAttributeValue(PVPConstants.BIRTHDATE_NAME)); - authData.setBPKType(extractor.getSingleAttributeValue(PVPConstants.EID_SECTOR_FOR_IDENTIFIER_NAME)); authData.setCcc(extractor.getSingleAttributeValue(PVPConstants.EID_ISSUING_NATION_NAME)); authData.setBkuURL(extractor.getSingleAttributeValue(PVPConstants.EID_CCS_URL_NAME)); authData.setIdentificationValue(extractor.getSingleAttributeValue(PVPConstants.EID_SOURCE_PIN_NAME)); authData.setIdentificationType(extractor.getSingleAttributeValue(PVPConstants.EID_SOURCE_PIN_TYPE_NAME)); + + if (extractor.containsAttribute(PVPConstants.EID_SECTOR_FOR_IDENTIFIER_NAME)) { + String bpkType = extractor.getSingleAttributeValue(PVPConstants.EID_SECTOR_FOR_IDENTIFIER_NAME); + if (bpkType.startsWith(Constants.URN_PREFIX_CDID) && + !bpkType.substring(Constants.URN_PREFIX_CDID.length(), + Constants.URN_PREFIX_CDID.length() + 1).equals("+")) { + Logger.warn("Receive uncorrect encoded bBKType attribute " + bpkType + " Starting attribute value correction ... "); + bpkType = Constants.URN_PREFIX_CDID + "+" + bpkType.substring(Constants.URN_PREFIX_CDID.length() + 1); + + } + + authData.setBPKType(bpkType); + } + if (extractor.containsAttribute(PVPConstants.BPK_NAME)) { String pvpbPK = extractor.getSingleAttributeValue(PVPConstants.BPK_NAME); + + if (pvpbPK.startsWith("bPK:")) { + Logger.warn("Attribute " + PVPConstants.BPK_NAME + + " contains a not standardize prefix! Staring attribute value correction process ..."); + pvpbPK = pvpbPK.substring("bPK:".length()); + + } + String[] spitted = pvpbPK.split(":"); authData.setBPK(spitted[1]); if (MiscUtil.isEmpty(authData.getBPKType())) { @@ -513,7 +537,7 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants { } //build OA specific bPK/wbPK information - buildOAspecificbPK(oaParam, authData, + buildOAspecificbPK(req, oaParam, authData, authData.getIdentificationValue(), authData.getIdentificationType()); @@ -521,7 +545,7 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants { if (MiscUtil.isEmpty(authData.getBPK())) { Logger.debug("Calcutlate bPK from baseID"); - buildOAspecificbPK(oaParam, authData, + buildOAspecificbPK(req, oaParam, authData, authData.getIdentificationValue(), authData.getIdentificationType()); @@ -536,7 +560,7 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants { } else { Logger.debug("Found PVP QAA level. QAA mapping process starts ... "); - String mappedQAA = PVPtoSTORKMapper.getInstance().mapQAALevel(qaaLevel); + String mappedQAA = PVPtoSTORKMapper.getInstance().mapToQAALevel(qaaLevel); if (MiscUtil.isNotEmpty(mappedQAA)) authData.setQAALevel(mappedQAA); @@ -744,6 +768,12 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants { } } + //set PVP OU attribute + if (extractor.containsAttribute(PVPConstants.OU_NAME)) { + authData.setPvpAttribute_OU(extractor.getSingleAttributeValue(PVPConstants.OU_NAME)); + Logger.debug("Found PVP 'OU' attribute in response -> " + authData.getPvpAttribute_OU()); + + } //set STORK attributes if (extractor.containsAttribute(PVPConstants.EID_STORK_TOKEN_NAME)) { @@ -761,8 +791,19 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants { authData.setSsoSession(true); authData.setInterfederatedSSOSession(true); - if (extractor.getFullAssertion().getConditions() != null && extractor.getFullAssertion().getConditions().getNotOnOrAfter() != null) + if (extractor.getFullAssertion().getAuthnStatements() != null + && extractor.getFullAssertion().getAuthnStatements().size() > 0) { + for (AuthnStatement el : extractor.getFullAssertion().getAuthnStatements()) { + if (el.getSessionNotOnOrAfter() != null) { + authData.setSsoSessionValidTo(el.getSessionNotOnOrAfter().toDate()); + break; + } + } + + } else { authData.setSsoSessionValidTo(extractor.getFullAssertion().getConditions().getNotOnOrAfter().toDate()); + + } //only for SAML1 if (PVPConstants.STORK_QAA_1_4.equals(authData.getQAALevel())) @@ -805,7 +846,7 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants { } private static void buildAuthDataFormMOASession(AuthenticationData authData, AuthenticationSession session, - IOAAuthParameters oaParam) throws BuildException, ConfigurationException { + IOAAuthParameters oaParam, IRequest protocolRequest) throws BuildException, ConfigurationException { IdentityLink identityLink = session.getIdentityLink(); @@ -919,7 +960,7 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants { Logger.trace("Authenticated User is OW: " + mandate.getOWbPK()); } else { - buildOAspecificbPK(oaParam, authData, + buildOAspecificbPK(protocolRequest, oaParam, authData, identityLink.getIdentificationValue(), identityLink.getIdentificationType()); @@ -951,7 +992,13 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants { //resign IDL IdentityLinkReSigner identitylinkresigner = IdentityLinkReSigner.getInstance(); Element resignedilAssertion; - resignedilAssertion = identitylinkresigner.resignIdentityLink(businessServiceIdl.getSamlAssertion()); + + AuthConfigurationProvider config = AuthConfigurationProvider.getInstance(); + if (config.isIdentityLinkResigning()) { + resignedilAssertion = identitylinkresigner.resignIdentityLink(businessServiceIdl.getSamlAssertion(), config.getIdentityLinkResigningKey()); + } else { + resignedilAssertion = businessServiceIdl.getSamlAssertion(); + } IdentityLinkAssertionParser resignedIDLParser = new IdentityLinkAssertionParser(resignedilAssertion); IdentityLink resignedIDL = resignedIDLParser.parseIdentityLink(); @@ -963,7 +1010,7 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants { } - private static void buildOAspecificbPK(IOAAuthParameters oaParam, AuthenticationData authData, String baseID, String baseIDType) throws BuildException { + private static void buildOAspecificbPK(IRequest protocolRequest, IOAAuthParameters oaParam, AuthenticationData authData, String baseID, String baseIDType) throws BuildException { if (oaParam.getBusinessService()) { //since we have foreigner, wbPK is not calculated in BKU @@ -984,9 +1031,15 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants { if (baseIDType.equals(Constants.URN_PREFIX_BASEID)) { // only compute bPK if online application is a public service and we have the Stammzahl - String bpkBase64 = new BPKBuilder().buildBPK(baseID, oaParam.getTarget()); + String target = null; + if (protocolRequest instanceof SAML1RequestImpl) + target = protocolRequest.getTarget(); + else + target = oaParam.getTarget(); + + String bpkBase64 = new BPKBuilder().buildBPK(baseID, target); authData.setBPK(bpkBase64); - authData.setBPKType(Constants.URN_PREFIX_CDID + "+" + oaParam.getTarget()); + authData.setBPKType(Constants.URN_PREFIX_CDID + "+" + target); } Logger.trace("Authenticate user with bPK " + authData.getBPK()); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/IdentityLinkAssertionParser.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/IdentityLinkAssertionParser.java index e2802c1d2..a5783bfb7 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/IdentityLinkAssertionParser.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/IdentityLinkAssertionParser.java @@ -106,7 +106,7 @@ public class IdentityLinkAssertionParser { + PDATA + "Person"; /** Xpath expression to the PersonData GivenName element */ - private static final String PERSON_GIVEN_NAME_XPATH = + public static final String PERSON_GIVEN_NAME_XPATH = PERSON_XPATH + "/" + PDATA @@ -114,7 +114,7 @@ public class IdentityLinkAssertionParser { + PDATA + "GivenName"; /** Xpath expression to the PersonData FamilyName element */ - private static final String PERSON_FAMILY_NAME_XPATH = + public static final String PERSON_FAMILY_NAME_XPATH = PERSON_XPATH + "/" + PDATA @@ -122,7 +122,7 @@ public class IdentityLinkAssertionParser { + PDATA + "FamilyName"; /** Xpath expression to the PersonData DateOfBirth element */ - private static final String PERSON_DATE_OF_BIRTH_XPATH = + public static final String PERSON_DATE_OF_BIRTH_XPATH = PERSON_XPATH + "/" + PDATA diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/StartAuthentificationParameterParser.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/StartAuthentificationParameterParser.java index 1bc3702e4..a123569d5 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/StartAuthentificationParameterParser.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/StartAuthentificationParameterParser.java @@ -132,12 +132,13 @@ public class StartAuthentificationParameterParser implements MOAIDAuthConstants{ String targetFriendlyNameConfig = oaParam.getTargetFriendlyName(); if (StringUtils.isEmpty(targetConfig) -// || (module.equals(SAML1Protocol.PATH) && -// !StringUtils.isEmpty(target)) + || (module.equals(SAML1Protocol.PATH) && + !StringUtils.isEmpty(target)) ) { - // no target attribut is given in OA config - // target is used from request - // check parameter + //INFO: ONLY SAML1 legacy mode + // if SAML1 is used and target attribute is given in request + // use requested target + // check target parameter if (!ParamValidatorUtils.isValidTarget(target)) { Logger.error("Selected target is invalid. Using target: " + target); throw new WrongParametersException("StartAuthentication", PARAM_TARGET, "auth.12"); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java index 2ef8ab5ec..99a7dce89 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java @@ -45,6 +45,9 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.TemplateType; import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException; import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; +import at.gv.egovernment.moa.id.moduls.IRequest; +import at.gv.egovernment.moa.id.moduls.RequestStorage; +import at.gv.egovernment.moa.id.protocols.saml1.SAML1Protocol; import at.gv.egovernment.moa.id.storage.AuthenticationSessionStoreage; import at.gv.egovernment.moa.id.util.MOAIDMessageProvider; import at.gv.egovernment.moa.logging.Logger; @@ -116,11 +119,15 @@ public class GenerateIFrameTemplateServlet extends AuthServlet { else { - //load Parameters from config - String target = oaParam.getTarget(); - - - + //get Target from config or from request in case of SAML 1 + String target = null; + IRequest pendingReq = RequestStorage.getPendingRequest(pendingRequestID); + if (MiscUtil.isNotEmpty(pendingReq.getTarget()) && + pendingReq.requestedModule().equals(SAML1Protocol.PATH)) + target = pendingReq.getTarget(); + else + target = oaParam.getTarget(); + String bkuURL = oaParam.getBKUURL(bkuid); if (MiscUtil.isEmpty(bkuURL)) { Logger.info("No OA specific BKU defined. Use BKU from default configuration"); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorServlet.java index 3dd2afd96..8aef6af2d 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorServlet.java @@ -48,6 +48,8 @@ import org.apache.velocity.Template; import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.opensaml.saml2.core.StatusCode;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
import at.gv.egovernment.moa.id.auth.AuthenticationServer;
import at.gv.egovernment.moa.id.auth.builder.DataURLBuilder;
@@ -55,6 +57,7 @@ import at.gv.egovernment.moa.id.auth.data.AuthenticationSession; import at.gv.egovernment.moa.id.auth.data.IdentityLink;
import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;
import at.gv.egovernment.moa.id.auth.exception.MOAIDException;
+import at.gv.egovernment.moa.id.auth.parser.IdentityLinkAssertionParser;
import at.gv.egovernment.moa.id.auth.stork.STORKException;
import at.gv.egovernment.moa.id.auth.stork.STORKResponseProcessor;
import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils;
@@ -65,9 +68,12 @@ import at.gv.egovernment.moa.id.moduls.ModulUtils; import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants;
import at.gv.egovernment.moa.id.storage.AuthenticationSessionStoreage;
import at.gv.egovernment.moa.id.util.HTTPUtils;
+import at.gv.egovernment.moa.id.util.IdentityLinkReSigner;
import at.gv.egovernment.moa.id.util.VelocityProvider;
import at.gv.egovernment.moa.logging.Logger;
+import at.gv.egovernment.moa.util.DOMUtils;
import at.gv.egovernment.moa.util.StringUtils;
+import at.gv.egovernment.moa.util.XPathUtils;
import at.gv.util.xsd.xmldsig.SignatureType;
import at.gv.util.xsd.xmldsig.X509DataType;
import eu.stork.oasisdss.api.ApiUtils;
@@ -434,14 +440,61 @@ public class PEPSConnectorServlet extends AuthServlet { targetType = AuthenticationSession.TARGET_PREFIX_ + oaParam.getTarget();
}
- Logger.debug("Starting connecting SZR Gateway");
- //contact SZR Gateway
IdentityLink identityLink = null;
try {
- identityLink = STORKResponseProcessor.connectToSZRGateway(authnResponse.getPersonalAttributeList(),
+ AuthConfigurationProvider config = AuthConfigurationProvider.getInstance();
+ if(config.isStorkFakeIdLActive() && config.getStorkFakeIdLCountries().contains(storkAuthnRequest.getCitizenCountryCode())) {
+ // create fake IdL
+ // - fetch IdL template from resources
+ InputStream s = PEPSConnectorServlet.class.getResourceAsStream("/resources/xmldata/fakeIdL_IdL_template.xml");
+ Element idlTemplate = DOMUtils.parseXmlValidating(s);
+
+ identityLink = new IdentityLinkAssertionParser(idlTemplate).parseIdentityLink();
+
+ // replace data
+ Element idlassertion = identityLink.getSamlAssertion();
+ // - set bpk/wpbk;
+ Node prIdentification = XPathUtils.selectSingleNode(idlassertion, IdentityLinkAssertionParser.PERSON_IDENT_VALUE_XPATH);
+ if(!STORKResponseProcessor.hasAttribute("eIdentifier", attributeList))
+ throw new STORKException("eIdentifier is missing");
+ String eIdentifier = STORKResponseProcessor.getAttributeValue("eIdentifier", attributeList, false);
+ prIdentification.getFirstChild().setNodeValue(eIdentifier);
+
+ // - set last name
+ Node prFamilyName = XPathUtils.selectSingleNode(idlassertion, IdentityLinkAssertionParser.PERSON_FAMILY_NAME_XPATH);
+ if(!STORKResponseProcessor.hasAttribute("surname", attributeList))
+ throw new STORKException("surname is missing");
+ String familyName = STORKResponseProcessor.getAttributeValue("surname", attributeList, false);
+ prFamilyName.getFirstChild().setNodeValue(familyName);
+
+ // - set first name
+ Node prGivenName = XPathUtils.selectSingleNode(idlassertion, IdentityLinkAssertionParser.PERSON_GIVEN_NAME_XPATH);
+ if(!STORKResponseProcessor.hasAttribute("givenName", attributeList))
+ throw new STORKException("givenName is missing");
+ String givenName = STORKResponseProcessor.getAttributeValue("givenName", attributeList, false);
+ prGivenName.getFirstChild().setNodeValue(givenName);
+
+ // - set date of birth
+ Node prDateOfBirth = XPathUtils.selectSingleNode(idlassertion, IdentityLinkAssertionParser.PERSON_DATE_OF_BIRTH_XPATH);
+ if(!STORKResponseProcessor.hasAttribute("dateOfBirth", attributeList))
+ throw new STORKException("dateOfBirth is missing");
+ String dateOfBirth = STORKResponseProcessor.getAttributeValue("dateOfBirth", attributeList, false);
+ prDateOfBirth.getFirstChild().setNodeValue(dateOfBirth);
+
+ identityLink = new IdentityLinkAssertionParser(idlassertion).parseIdentityLink();
+
+ //resign IDL
+ IdentityLinkReSigner identitylinkresigner = IdentityLinkReSigner.getInstance();
+ Element resignedilAssertion = identitylinkresigner.resignIdentityLink(identityLink.getSamlAssertion(), config.getStorkFakeIdLResigningKey());
+ identityLink = new IdentityLinkAssertionParser(resignedilAssertion).parseIdentityLink();
+ } else {
+ //contact SZR Gateway
+ Logger.debug("Starting connecting SZR Gateway");
+ identityLink = STORKResponseProcessor.connectToSZRGateway(authnResponse.getPersonalAttributeList(),
oaParam.getFriendlyName(),
targetType, null,
oaParam.getMandateProfiles(), citizenSignature);
+ }
} catch (STORKException e) {
// this is really nasty but we work against the system here. We are supposed to get the gender attribute from
// stork. If we do not, we cannot register the person in the ERnP - we have to have the
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java index 7113dcf70..ea1526ff0 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java @@ -102,7 +102,7 @@ public class STORKResponseProcessor { private static String getAttributeValue(String attributeName, IPersonalAttributeList attributeList) throws STORKException {
return getAttributeValue(attributeName, attributeList, true);
}
- private static String getAttributeValue(String attributeName, IPersonalAttributeList attributeList, boolean throwException) throws STORKException {
+ public static String getAttributeValue(String attributeName, IPersonalAttributeList attributeList, boolean throwException) throws STORKException {
try {
String result = attributeList.get(attributeName).getValue().get(0);
Logger.trace(attributeName + " : " + result);
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWClient.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWClient.java index e1cd59c26..61b26b59a 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWClient.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWClient.java @@ -65,6 +65,7 @@ import org.w3c.dom.NodeList; import org.w3c.dom.Text;
import at.gv.egovernment.moa.id.auth.validator.parep.ParepUtils;
+import at.gv.egovernment.moa.id.commons.utils.HttpClientWithProxySupport;
import at.gv.egovernment.moa.util.Constants;
import at.gv.egovernment.moa.util.DOMUtils;
@@ -137,7 +138,7 @@ public class SZRGWClient { if (address == null) {
throw new NullPointerException("Address (SZR-gateway ServiceURL) must not be null.");
}
- HttpClient client = new HttpClient();
+ HttpClient client = HttpClientWithProxySupport.getHttpClient();
PostMethod method = new PostMethod(address);
method.setRequestHeader("SOAPAction", "");
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationProvider.java index 88ed7885f..24def1e02 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationProvider.java @@ -124,7 +124,7 @@ public class ConfigurationProvider { protected String certstoreDirectory; - protected boolean trustmanagerrevoationchecking; + protected boolean trustmanagerrevoationchecking = true; /** * Returns the main configuration file directory used to configure MOA-ID diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java index 89d02c183..80364a2ab 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java @@ -53,6 +53,7 @@ import java.io.IOException; import java.math.BigInteger; import java.net.MalformedURLException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -1007,6 +1008,39 @@ public class AuthConfigurationProvider extends ConfigurationProvider { return null; } + /** + * Checks if is fakeIdL is activated. + * + * @return true, if fake IdLs are available for stork + */ + public boolean isStorkFakeIdLActive() { + String prop = props.getProperty("stork.fakeIdL.active", "false"); + return Boolean.valueOf(prop); + } + + /** + * Gets the countries which will receive a fake IdL + * + * @return the countries + */ + public List<String> getStorkFakeIdLCountries() { + String prop = props.getProperty("stork.fakeIdL.countries", ""); + return Arrays.asList(prop.replaceAll(" ", "").split(",")); + } + + /** + * Gets the resigning key (group) for the stork fake IdL. + * + * @return the resigning key + */ + public String getStorkFakeIdLResigningKey() { + String prop = props.getProperty("stork.fakeIdL.keygroup"); + if (MiscUtil.isNotEmpty(prop)) + return prop; + else + return null; + } + public boolean isMonitoringActive() { String prop = props.getProperty("configuration.monitoring.active", "false"); return Boolean.valueOf(prop); @@ -1047,12 +1081,19 @@ public class AuthConfigurationProvider extends ConfigurationProvider { return !Boolean.valueOf(prop); } + //Load document service url from moa properties public String getDocumentServiceUrl() { String prop = props.getProperty("stork.documentservice.url", "false"); return prop; } + + public boolean isPVPSchemaValidationActive() { + String prop = props.getProperty("protocols.pvp2.schemavalidation", "true"); + return Boolean.valueOf(prop); + } + /** * Returns the STORK Configuration * @return STORK Configuration @@ -1084,10 +1125,11 @@ private void setCertStoreDirectory() throws ConfigurationException { private void setTrustManagerRevocationChecking() throws ConfigurationException { AuthComponentGeneral auth = getAuthComponentGeneral(); - if (auth.getGeneralConfiguration() != null) + if (auth.getGeneralConfiguration() != null && + auth.getGeneralConfiguration().isTrustManagerRevocationChecking() != null) trustmanagerrevoationchecking = auth.getGeneralConfiguration().isTrustManagerRevocationChecking(); else { - Logger.warn("Error in MOA-ID Configuration. No CertStoreDirectory defined."); + Logger.warn("No TrustMangerRevoationChecking defined. Use default value = TRUE"); throw new ConfigurationException("config.02", null); } } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/legacy/BuildFromLegacyConfig.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/legacy/BuildFromLegacyConfig.java index 9067d8fc4..3d4b53f7c 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/legacy/BuildFromLegacyConfig.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/legacy/BuildFromLegacyConfig.java @@ -151,6 +151,8 @@ public class BuildFromLegacyConfig { if (genericConfiguration.containsKey(ConfigurationProvider.TRUST_MANAGER_REVOCATION_CHECKING)) authGeneral.setTrustManagerRevocationChecking( Boolean.valueOf((String)genericConfiguration.get(ConfigurationProvider.TRUST_MANAGER_REVOCATION_CHECKING))); + else + authGeneral.setTrustManagerRevocationChecking(true); if (genericConfiguration.containsKey(ConfigurationProvider.DIRECTORY_CERTSTORE_PARAMETER_PROPERTY)) authGeneral.setCertStoreDirectory( diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java index 65c413ef9..05b008515 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java @@ -133,7 +133,9 @@ public class AuthenticationData implements IAuthData, Serializable { private String authBlock = null; private List<String> encbPKList = null; + //ISA 1.18 attributes private List<AuthenticationRole> roles = null; + private String pvpAttribute_OU = null; private boolean useMandate = false; private MISMandate mandate = null; @@ -707,6 +709,7 @@ public class AuthenticationData implements IAuthData, Serializable { return roles; } + //ISA 1.18 attributes /** * @param roles the roles to set */ @@ -716,26 +719,31 @@ public class AuthenticationData implements IAuthData, Serializable { this.roles.add(role); } + + /** + * @return the pvpAttribute_OU + */ + public String getPvpAttribute_OU() { + return pvpAttribute_OU; + } + + /** + * @param pvpAttribute_OU the pvpAttribute_OU to set + */ + public void setPvpAttribute_OU(String pvpAttribute_OU) { + this.pvpAttribute_OU = pvpAttribute_OU; + } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.data.IAuthData#isBusinessService() */ @Override public boolean isBusinessService() { - // TODO Auto-generated method stub return this.businessService; } public void setIsBusinessService(boolean flag) { this.businessService = flag; - } - - - - - - - - + } } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationRoleFactory.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationRoleFactory.java index 8915b2442..b3b29f6c5 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationRoleFactory.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationRoleFactory.java @@ -26,6 +26,7 @@ import java.util.Arrays; import java.util.List; import at.gv.egovernment.moa.logging.Logger; +import at.gv.egovernment.moa.util.MiscUtil; /** * @author tlenz @@ -51,23 +52,29 @@ public class AuthenticationRoleFactory { List<String> param = Arrays.asList(params.split(",")); String test = new String(); for (String el : param) { - test = test.concat(el); - if (!test.endsWith("\\") || - (test.endsWith("\\\\") && !test.endsWith("\\\\\\")) ) { - String[] keyValue = test.split("="); - if (keyValue.length < 2) { - role.addParameter(keyValue[0].trim(), ""); - Logger.debug("Add authentication roleparameter with key=" + keyValue[0].trim()); + if (MiscUtil.isNotEmpty(el)) { + test = test.concat(el); + if (!test.endsWith("\\") || + (test.endsWith("\\\\") && !test.endsWith("\\\\\\")) ) { + String[] keyValue = test.split("="); + if (keyValue.length < 2) { + role.addParameter(keyValue[0].trim(), ""); + Logger.debug("Add authentication roleparameter with key=" + keyValue[0].trim()); - } else { - role.addParameter(keyValue[0].trim(), keyValue[1].trim()); - Logger.debug("Add authentication roleparameter with key=" + keyValue[0].trim() - + " value=" + keyValue[1].trim()); + } else { + role.addParameter(keyValue[0].trim(), keyValue[1].trim()); + Logger.debug("Add authentication roleparameter with key=" + keyValue[0].trim() + + " value=" + keyValue[1].trim()); - } + } - test = new String(); - } + test = new String(); + + } else { + test = test.substring(0, test.length()-1).concat(","); + + } + } } } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/IAuthData.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/IAuthData.java index ebbf62ce7..ccc90a031 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/IAuthData.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/IAuthData.java @@ -69,7 +69,9 @@ public interface IAuthData { IdentityLink getIdentityLink(); byte[] getSignerCertificate(); String getAuthBlock(); - + + //ISA 1.18 attributes + String getPvpAttribute_OU(); List<AuthenticationRole> getAuthenticationRoles(); boolean isPublicAuthority(); @@ -90,5 +92,6 @@ public interface IAuthData { String getCcc(); STORKAuthnRequest getStorkAuthnRequest(); String getStorkAuthnResponse(); - IPersonalAttributeList getStorkAttributes(); + IPersonalAttributeList getStorkAttributes(); + } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/AuthenticationManager.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/AuthenticationManager.java index a4d63b144..333bd35f1 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/AuthenticationManager.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/AuthenticationManager.java @@ -77,6 +77,7 @@ import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; import at.gv.egovernment.moa.id.data.SLOInformationContainer; import at.gv.egovernment.moa.id.data.SLOInformationImpl; +import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants; import at.gv.egovernment.moa.id.protocols.pvp2x.PVPTargetConfiguration; import at.gv.egovernment.moa.id.protocols.pvp2x.binding.IEncoder; import at.gv.egovernment.moa.id.protocols.pvp2x.binding.PostBinding; @@ -87,9 +88,11 @@ import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOARequest; import at.gv.egovernment.moa.id.protocols.pvp2x.metadata.MOAMetadataProvider; import at.gv.egovernment.moa.id.protocols.pvp2x.utils.MOASAMLSOAPClient; import at.gv.egovernment.moa.id.protocols.pvp2x.utils.SAML2Utils; +import at.gv.egovernment.moa.id.protocols.stork2.MOASTORKRequest; import at.gv.egovernment.moa.id.storage.AssertionStorage; import at.gv.egovernment.moa.id.storage.AuthenticationSessionStoreage; import at.gv.egovernment.moa.id.util.MOAIDMessageProvider; +import at.gv.egovernment.moa.id.util.PVPtoSTORKMapper; import at.gv.egovernment.moa.id.util.ParamValidatorUtils; import at.gv.egovernment.moa.id.util.Random; import at.gv.egovernment.moa.logging.Logger; @@ -381,6 +384,7 @@ public class AuthenticationManager extends AuthServlet { //get IDP metadata try { OAAuthParameter idp = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(target.getRequestedIDP()); + OAAuthParameter sp = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(target.getOAURL()); if (!idp.isInderfederationIDP() || !idp.isInboundSSOInterfederationAllowed()) { Logger.info("Requested interfederation IDP " + target.getRequestedIDP() + " is not valid for interfederation."); @@ -389,7 +393,7 @@ public class AuthenticationManager extends AuthServlet { return; } - + EntityDescriptor idpEntity = MOAMetadataProvider.getInstance(). getEntityDescriptor(target.getRequestedIDP()); @@ -409,7 +413,7 @@ public class AuthenticationManager extends AuthServlet { redirectEndpoint == null ) redirectEndpoint = sss; } - + if (redirectEndpoint != null) { AuthnRequest authReq = SAML2Utils @@ -422,16 +426,10 @@ public class AuthenticationManager extends AuthServlet { authReq.setAssertionConsumerServiceIndex(0); authReq.setIssueInstant(new DateTime()); - Subject subject = SAML2Utils.createSAMLObject(Subject.class); - NameID name = SAML2Utils.createSAMLObject(NameID.class); - Issuer issuer = SAML2Utils.createSAMLObject(Issuer.class); - + Issuer issuer = SAML2Utils.createSAMLObject(Issuer.class); String serviceURL = PVPConfiguration.getInstance().getIDPPublicPath(); - name.setValue(serviceURL); issuer.setValue(serviceURL); - subject.setNameID(name); - authReq.setSubject(subject); issuer.setFormat(NameIDType.ENTITY); authReq.setIssuer(issuer); NameIDPolicy policy = SAML2Utils @@ -446,13 +444,55 @@ public class AuthenticationManager extends AuthServlet { SAML2Utils.createSAMLObject(RequestedAuthnContext.class); AuthnContextClassRef authnClassRef = - SAML2Utils.createSAMLObject(AuthnContextClassRef.class); - authnClassRef.setAuthnContextClassRef("http://www.stork.gov.eu/1.0/citizenQAALevel/4"); + SAML2Utils.createSAMLObject(AuthnContextClassRef.class); + + if (sp != null && sp.isSTORKPVPGateway()){ + //use PVP SecClass instead of STORK QAA level + String secClass = null; + if (target instanceof MOASTORKRequest) { + + try { + MOASTORKRequest storkReq = (MOASTORKRequest) target; + secClass = PVPtoSTORKMapper.getInstance().mapToSecClass( + PVPConstants.STORK_QAA_PREFIX + storkReq.getStorkAuthnRequest().getQaa()); + + } catch (Exception e) { + Logger.warn("STORK-QAA level can not read from STORK request. Use default QAA 4", e); + + } + } + + if (MiscUtil.isNotEmpty(secClass)) + authnClassRef.setAuthnContextClassRef(secClass); + else + authnClassRef.setAuthnContextClassRef("http://www.ref.gv.at/ns/names/agiz/pvp/secclass/0-3"); + + } else { + if (target instanceof MOASTORKRequest) { + //use requested QAA level from STORK request + try { + MOASTORKRequest storkReq = (MOASTORKRequest) target; + authnClassRef.setAuthnContextClassRef( + PVPConstants.STORK_QAA_PREFIX + storkReq.getStorkAuthnRequest().getQaa()); + Logger.debug("Use STORK-QAA level " + authnClassRef.getAuthnContextClassRef() + + " from STORK request"); + + } catch (Exception e) { + Logger.warn("STORK-QAA level can not read from STORK request. Use default QAA 4", e); + + } + + } + + if (MiscUtil.isEmpty(authnClassRef.getAuthnContextClassRef())) + authnClassRef.setAuthnContextClassRef("http://www.stork.gov.eu/1.0/citizenQAALevel/4"); + + } + reqAuthContext.setComparison(AuthnContextComparisonTypeEnumeration.MINIMUM); reqAuthContext.getAuthnContextClassRefs().add(authnClassRef); authReq.setRequestedAuthnContext(reqAuthContext); - - + IEncoder binding = null; if (redirectEndpoint.getBinding().equals( SAMLConstants.SAML2_REDIRECT_BINDING_URI)) { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/SingleLogOutAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/SingleLogOutAction.java index b22941216..aa154b84b 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/SingleLogOutAction.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/SingleLogOutAction.java @@ -135,8 +135,10 @@ public class SingleLogOutAction implements IAction { if (MiscUtil.isEmpty(ssoID)) { Logger.warn("Can not find active Session. Single LogOut not possible!"); SingleLogoutService sloService = SingleLogOutBuilder.getResponseSLODescriptor(pvpReq); - LogoutResponse message = SingleLogOutBuilder.buildSLOErrorResponse(sloService, pvpReq, StatusCode.RESPONDER_URI); - SingleLogOutBuilder.sendFrontChannelSLOMessage(sloService, message, httpReq, httpResp, samlReq.getRelayState()); + //LogoutResponse message = SingleLogOutBuilder.buildSLOErrorResponse(sloService, pvpReq, StatusCode.RESPONDER_URI); + LogoutResponse message = SingleLogOutBuilder.buildSLOResponseMessage(sloService, pvpReq, null); + Logger.info("Sending SLO success message to requester ..."); + SingleLogOutBuilder.sendFrontChannelSLOMessage(sloService, message, httpReq, httpResp, samlReq.getRelayState()); return null; } else { @@ -147,7 +149,9 @@ public class SingleLogOutAction implements IAction { } catch (MOADatabaseException e) { Logger.warn("Can not find active Session. Single LogOut not possible!"); SingleLogoutService sloService = SingleLogOutBuilder.getResponseSLODescriptor(pvpReq); - LogoutResponse message = SingleLogOutBuilder.buildSLOErrorResponse(sloService, pvpReq, StatusCode.RESPONDER_URI); + //LogoutResponse message = SingleLogOutBuilder.buildSLOErrorResponse(sloService, pvpReq, StatusCode.RESPONDER_URI); + LogoutResponse message = SingleLogOutBuilder.buildSLOResponseMessage(sloService, pvpReq, null); + Logger.info("Sending SLO success message to requester ..."); SingleLogOutBuilder.sendFrontChannelSLOMessage(sloService, message, httpReq, httpResp, samlReq.getRelayState()); return null; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/SingleLogOutBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/SingleLogOutBuilder.java index 01139d95c..50f42d928 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/SingleLogOutBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/SingleLogOutBuilder.java @@ -43,6 +43,7 @@ import org.opensaml.saml2.core.StatusCode; import org.opensaml.saml2.core.StatusMessage; import org.opensaml.saml2.core.StatusResponseType; import org.opensaml.saml2.metadata.EntityDescriptor; +import org.opensaml.saml2.metadata.IDPSSODescriptor; import org.opensaml.saml2.metadata.SPSSODescriptor; import org.opensaml.saml2.metadata.SSODescriptor; import org.opensaml.saml2.metadata.SingleLogoutService; @@ -348,17 +349,29 @@ public class SingleLogOutBuilder { public static SingleLogoutService getResponseSLODescriptor(PVPTargetConfiguration spRequest) throws NoMetadataInformationException, NOSLOServiceDescriptorException { MOARequest moaReq = (MOARequest) spRequest.getRequest(); EntityDescriptor metadata = moaReq.getEntityMetadata(); - SPSSODescriptor spsso = metadata.getSPSSODescriptor(SAMLConstants.SAML20P_NS); + SSODescriptor ssodesc = metadata.getSPSSODescriptor(SAMLConstants.SAML20P_NS); + + if (ssodesc == null) { + Logger.debug("No PVP SPSSO descriptor found --> search IDPSSO descriptor"); + ssodesc = metadata.getIDPSSODescriptor(SAMLConstants.SAML20P_NS); + + } + + if (ssodesc == null) { + Logger.error("Found no SLO ServiceDescriptor in Metadata"); + throw new NOSLOServiceDescriptorException("NO SLO ServiceDescriptor", null); + } + SingleLogoutService sloService = null; - for (SingleLogoutService el : spsso.getSingleLogoutServices()) { + for (SingleLogoutService el : ssodesc.getSingleLogoutServices()) { if (el.getBinding().equals(spRequest.getBinding())) sloService = el; } if (sloService == null) { - if (spsso.getSingleLogoutServices().size() != 0) - sloService = spsso.getSingleLogoutServices().get(0); + if (ssodesc.getSingleLogoutServices().size() != 0) + sloService = ssodesc.getSingleLogoutServices().get(0); else { Logger.error("Found no SLO ServiceDescriptor in Metadata"); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepDescAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepDescAttributeBuilder.java index 4c981cb24..1059e324e 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepDescAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepDescAttributeBuilder.java @@ -22,10 +22,14 @@ *******************************************************************************/ package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; +import org.w3c.dom.Element; + +import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate; import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; import at.gv.egovernment.moa.id.data.IAuthData; import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException; import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException; +import at.gv.egovernment.moa.id.util.MandateBuilder; import at.gv.egovernment.moa.id.util.client.mis.simple.MISMandate; import at.gv.egovernment.moa.util.MiscUtil; @@ -37,23 +41,37 @@ public class MandateProfRepDescAttributeBuilder implements IPVPAttributeBuilder public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData, IAttributeGenerator<ATT> g) throws AttributeException { - if(authData.isUseMandate()) { - MISMandate mandate = authData.getMISMandate(); - + if(authData.isUseMandate()) { + Element mandate = authData.getMandate(); + if (mandate == null) { + throw new NoMandateDataAttributeException(); + } - if(mandate == null) { + Mandate mandateObject = MandateBuilder.buildMandate(authData.getMandate()); + if (mandateObject == null) { throw new NoMandateDataAttributeException(); } + + String text = null; + if (MiscUtil.isNotEmpty(mandateObject.getAnnotation())) { + text = mandateObject.getAnnotation(); + + } else { + MISMandate misMandate = authData.getMISMandate(); - String text = mandate.getTextualDescriptionOfOID(); + if(misMandate == null) { + throw new NoMandateDataAttributeException(); + } - if(MiscUtil.isEmpty(text)) { - return null; - - } else - return g.buildStringAttribute(MANDATE_PROF_REP_DESC_FRIENDLY_NAME, - MANDATE_PROF_REP_DESC_NAME, text); + text = misMandate.getTextualDescriptionOfOID(); + if(MiscUtil.isEmpty(text)) { + return null; + + } else + return g.buildStringAttribute(MANDATE_PROF_REP_DESC_FRIENDLY_NAME, + MANDATE_PROF_REP_DESC_NAME, text); + } } return null; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/exceptions/SchemaValidationException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/exceptions/SchemaValidationException.java new file mode 100644 index 000000000..fc4ed1f28 --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/exceptions/SchemaValidationException.java @@ -0,0 +1,52 @@ +/* + * Copyright 2014 Federal Chancellery Austria + * MOA-ID has been developed in a cooperation between BRZ, the Federal + * Chancellery Austria - ICT staff unit, and Graz University of Technology. + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ +package at.gv.egovernment.moa.id.protocols.pvp2x.exceptions; + +/** + * @author tlenz + * + */ +public class SchemaValidationException extends PVP2Exception { + + /** + * + */ + private static final long serialVersionUID = 1L; + + /** + * @param messageId + * @param parameters + */ + public SchemaValidationException(String messageId, Object[] parameters) { + super(messageId, parameters); + } + + /** + * @param messageId + * @param parameters + */ + public SchemaValidationException(String messageId, Object[] parameters, Throwable e) { + super(messageId, parameters, e); + } + +} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java index cba64e080..12afa14bc 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java @@ -57,6 +57,7 @@ import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants; import at.gv.egovernment.moa.id.protocols.pvp2x.verification.metadata.InterfederatedIDPPublicServiceFilter; import at.gv.egovernment.moa.id.protocols.pvp2x.verification.metadata.MetadataFilterChain; +import at.gv.egovernment.moa.id.protocols.pvp2x.verification.metadata.SchemaValidationFilter; import at.gv.egovernment.moa.logging.Logger; import at.gv.egovernment.moa.util.MiscUtil; @@ -324,6 +325,7 @@ public class MOAMetadataProvider implements MetadataProvider { private MetadataFilterChain buildMetadataFilterChain(OnlineApplication oa, String metadataURL, byte[] certificate) throws CertificateException { MetadataFilterChain filterChain = new MetadataFilterChain(metadataURL, certificate); + filterChain.getFilters().add(new SchemaValidationFilter()); if (oa.isIsInterfederationIDP() != null && oa.isIsInterfederationIDP()) { Logger.info("Online-Application is an interfederated IDP. Add addional Metadata policies"); @@ -374,6 +376,8 @@ public class MOAMetadataProvider implements MetadataProvider { httpProvider.setMetadataFilter(filter); httpProvider.initialize(); + httpProvider.setRequireValidMetadata(true); + return httpProvider; } catch (Throwable e) { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/AssertionAttributeExtractor.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/AssertionAttributeExtractor.java index f0373e214..26b3bfbd1 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/AssertionAttributeExtractor.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/AssertionAttributeExtractor.java @@ -54,8 +54,7 @@ public class AssertionAttributeExtractor { private final List<String> minimalAttributeNameList = Arrays.asList( PVPConstants.PRINCIPAL_NAME_NAME, - PVPConstants.GIVEN_NAME_NAME, - PVPConstants.BIRTHDATE_NAME); + PVPConstants.GIVEN_NAME_NAME); public AssertionAttributeExtractor(StatusResponseType samlResponse) throws AssertionAttributeExtractorExeption { @@ -119,16 +118,21 @@ public class AssertionAttributeExtractor { //first check if a bPK or an encrypted bPK is available if (attributs.containsKey(PVPConstants.ENC_BPK_LIST_NAME) || - (attributs.containsKey(PVPConstants.BPK_NAME) && attributs.containsKey(PVPConstants.EID_SECTOR_FOR_IDENTIFIER_NAME))) { + (attributs.containsKey(PVPConstants.BPK_NAME))) { boolean flag = true; for (String attr : attributeNameList) { - if (!attributs.containsKey(attr)) + if (!attributs.containsKey(attr)) { flag = false; + Logger.debug("Assertion contains no Attribute " + attr); + + } + } return flag; - } + } + Logger.debug("Assertion contains no bPK or encryptedbPK."); return false; } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/SAMLVerificationEngine.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/SAMLVerificationEngine.java index 4ba93f8fe..257f9dac4 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/SAMLVerificationEngine.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/SAMLVerificationEngine.java @@ -25,14 +25,20 @@ package at.gv.egovernment.moa.id.protocols.pvp2x.verification; import java.util.ArrayList; import java.util.List; +import javax.xml.transform.dom.DOMSource; +import javax.xml.validation.Schema; +import javax.xml.validation.Validator; + import org.joda.time.DateTime; import org.opensaml.common.xml.SAMLConstants; +import org.opensaml.common.xml.SAMLSchemaBuilder; import org.opensaml.saml2.core.Conditions; import org.opensaml.saml2.core.EncryptedAssertion; import org.opensaml.saml2.core.RequestAbstractType; import org.opensaml.saml2.core.Response; import org.opensaml.saml2.core.StatusCode; import org.opensaml.saml2.core.StatusResponseType; +import org.opensaml.saml2.core.validator.AuthnRequestSchemaValidator; import org.opensaml.saml2.encryption.Decrypter; import org.opensaml.saml2.encryption.EncryptedElementTypeEncryptedKeyResolver; import org.opensaml.saml2.metadata.IDPSSODescriptor; @@ -51,11 +57,14 @@ import org.opensaml.xml.security.keyinfo.StaticKeyInfoCredentialResolver; import org.opensaml.xml.security.x509.X509Credential; import org.opensaml.xml.signature.SignatureTrustEngine; import org.opensaml.xml.validation.ValidationException; +import org.w3c.dom.Element; +import org.xml.sax.SAXException; import at.gv.egovernment.moa.id.auth.exception.InvalidProtocolRequestException; import at.gv.egovernment.moa.id.config.ConfigurationException; import at.gv.egovernment.moa.id.protocols.pvp2x.config.PVPConfiguration; import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.AssertionValidationExeption; +import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.SchemaValidationException; import at.gv.egovernment.moa.id.protocols.pvp2x.messages.InboundMessage; import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOARequest; import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOAResponse; @@ -81,9 +90,15 @@ public class SAMLVerificationEngine { SAMLSignatureProfileValidator profileValidator = new SAMLSignatureProfileValidator(); try { profileValidator.validate(samlObj.getSignature()); + performSchemaValidation(samlObj.getDOM()); + } catch (ValidationException e) { - // Indicates signature did not conform to SAML Signature profile - e.printStackTrace(); + Logger.warn("Signature is not conform to SAML signature profile", e); + throw new InvalidProtocolRequestException("pvp2.21", new Object[] {}); + + } catch (SchemaValidationException e) { + throw new InvalidProtocolRequestException("pvp2.22", new Object[] {e.getMessage()}); + } CriteriaSet criteriaSet = new CriteriaSet(); @@ -103,12 +118,17 @@ public class SAMLVerificationEngine { public void verifyRequest(RequestAbstractType samlObj, SignatureTrustEngine sigTrustEngine ) throws org.opensaml.xml.security.SecurityException, Exception { SAMLSignatureProfileValidator profileValidator = new SAMLSignatureProfileValidator(); - try { - profileValidator.validate(samlObj.getSignature()); + profileValidator.validate(samlObj.getSignature()); + performSchemaValidation(samlObj.getDOM()); + } catch (ValidationException e) { - // Indicates signature did not conform to SAML Signature profile - e.printStackTrace(); + Logger.warn("Signature is not conform to SAML signature profile", e); + throw new InvalidProtocolRequestException("pvp2.21", new Object[] {}); + + } catch (SchemaValidationException e) { + throw new InvalidProtocolRequestException("pvp2.22", new Object[] {e.getMessage()}); + } CriteriaSet criteriaSet = new CriteriaSet(); @@ -173,16 +193,27 @@ public class SAMLVerificationEngine { List<org.opensaml.saml2.core.Assertion> validatedassertions = new ArrayList<org.opensaml.saml2.core.Assertion>(); for (org.opensaml.saml2.core.Assertion saml2assertion : saml2assertions) { - Conditions conditions = saml2assertion.getConditions(); - DateTime notbefore = conditions.getNotBefore(); + try { + performSchemaValidation(saml2assertion.getDOM()); + + Conditions conditions = saml2assertion.getConditions(); + DateTime notbefore = conditions.getNotBefore().minusMinutes(5); DateTime notafter = conditions.getNotOnOrAfter(); if ( notbefore.isAfterNow() || notafter.isBeforeNow() ) { - Logger.warn("PVP2 Assertion is out of Date"); + Logger.warn("PVP2 Assertion is out of Date. " + + "{ Current : " + new DateTime() + + " NotBefore: " + notbefore + + " NotAfter : " + notafter + + " }");; - } else { - validatedassertions.add(saml2assertion); + } else { + validatedassertions.add(saml2assertion); + + } + + } catch (SchemaValidationException e) { - } + } } if (validatedassertions.isEmpty()) { @@ -213,4 +244,35 @@ public class SAMLVerificationEngine { throw new AssertionValidationExeption("pvp.12", null, e); } } + + private static void performSchemaValidation(Element source) throws SchemaValidationException { + + String err = null; + try { + Schema test = SAMLSchemaBuilder.getSAML11Schema(); + Validator val = test.newValidator(); + val.validate(new DOMSource(source)); + Logger.debug("Schema validation check done OK"); + return; + + } catch (SAXException e) { + err = e.getMessage(); + if (Logger.isDebugEnabled() || Logger.isTraceEnabled()) + Logger.warn("Schema validation FAILED with exception:", e); + else + Logger.warn("Schema validation FAILED with message: "+ e.getMessage()); + + } catch (Exception e) { + err = e.getMessage(); + if (Logger.isDebugEnabled() || Logger.isTraceEnabled()) + Logger.warn("Schema validation FAILED with exception:", e); + else + Logger.warn("Schema validation FAILED with message: "+ e.getMessage()); + + } + + throw new SchemaValidationException("pvp2.22", new Object[]{err}); + + } + } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/metadata/InterfederatedIDPPublicServiceFilter.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/metadata/InterfederatedIDPPublicServiceFilter.java index 3d608fd6d..4d9b97a52 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/metadata/InterfederatedIDPPublicServiceFilter.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/metadata/InterfederatedIDPPublicServiceFilter.java @@ -26,7 +26,6 @@ import org.opensaml.saml2.metadata.provider.FilterException; import org.opensaml.saml2.metadata.provider.MetadataFilter; import org.opensaml.xml.XMLObject; -import at.gv.egovernment.moa.id.commons.db.dao.config.InterfederationIDPType; import at.gv.egovernment.moa.id.commons.validation.ValidationHelper; import at.gv.egovernment.moa.logging.Logger; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/metadata/SchemaValidationFilter.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/metadata/SchemaValidationFilter.java new file mode 100644 index 000000000..382adb108 --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/metadata/SchemaValidationFilter.java @@ -0,0 +1,110 @@ +/* + * Copyright 2014 Federal Chancellery Austria + * MOA-ID has been developed in a cooperation between BRZ, the Federal + * Chancellery Austria - ICT staff unit, and Graz University of Technology. + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ +package at.gv.egovernment.moa.id.protocols.pvp2x.verification.metadata; + +import java.io.IOException; + +import org.opensaml.saml2.metadata.provider.FilterException; +import org.opensaml.saml2.metadata.provider.MetadataFilter; +import org.opensaml.xml.XMLObject; + +import javax.xml.transform.dom.DOMSource; +import javax.xml.validation.Schema; +import javax.xml.validation.Validator; + +import org.opensaml.common.xml.SAMLSchemaBuilder; + +import org.xml.sax.SAXException; + +import at.gv.egovernment.moa.id.config.ConfigurationException; +import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; +import at.gv.egovernment.moa.logging.Logger; + +/** + * @author tlenz + * + */ +public class SchemaValidationFilter implements MetadataFilter { + + private boolean isActive = true; + + public SchemaValidationFilter() { + try { + isActive = AuthConfigurationProvider.getInstance().isPVPSchemaValidationActive(); + + } catch (ConfigurationException e) { + e.printStackTrace(); + } + } + + /** + * + */ + public SchemaValidationFilter(boolean useSchemaValidation) { + this.isActive = useSchemaValidation; + } + + + /* (non-Javadoc) + * @see org.opensaml.saml2.metadata.provider.MetadataFilter#doFilter(org.opensaml.xml.XMLObject) + */ + @Override + public void doFilter(XMLObject arg0) throws FilterException { + + String errString = null; + + if (isActive) { + try { + Schema test = SAMLSchemaBuilder.getSAML11Schema(); + Validator val = test.newValidator(); + DOMSource source = new DOMSource(arg0.getDOM()); + val.validate(source); + Logger.info("Metadata Schema validation check done OK"); + return; + + } catch (SAXException e) { + if (Logger.isDebugEnabled() || Logger.isTraceEnabled()) + Logger.warn("Metadata Schema validation FAILED with exception:", e); + else + Logger.warn("Metadata Schema validation FAILED with message: "+ e.getMessage()); + + errString = e.getMessage(); + + } catch (Exception e) { + if (Logger.isDebugEnabled() || Logger.isTraceEnabled()) + Logger.warn("Metadata Schema validation FAILED with exception:", e); + else + Logger.warn("Metadata Schema validation FAILED with message: "+ e.getMessage()); + + errString = e.getMessage(); + + } + + throw new FilterException("Metadata Schema validation FAILED with message: "+ errString); + + } else + Logger.info("Metadata Schema validation check is DEACTIVATED!"); + + } + +} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetArtifactAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetArtifactAction.java index 67f780b3a..4cdd1db01 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetArtifactAction.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetArtifactAction.java @@ -83,7 +83,7 @@ public class GetArtifactAction implements IAction { String url = AuthConfigurationProvider.getInstance().getPublicURLPrefix() + "/RedirectServlet"; url = addURLParameter(url, RedirectServlet.REDIRCT_PARAM_URL, URLEncoder.encode(oaURL, "UTF-8")); if (!oaParam.getBusinessService()) - url = addURLParameter(url, PARAM_TARGET, URLEncoder.encode(oaParam.getTarget(), "UTF-8")); + url = addURLParameter(url, PARAM_TARGET, URLEncoder.encode(req.getTarget(), "UTF-8")); url = addURLParameter(url, PARAM_SAMLARTIFACT, URLEncoder.encode(samlArtifactBase64, "UTF-8")); url = httpResp.encodeRedirectURL(url); @@ -95,7 +95,7 @@ public class GetArtifactAction implements IAction { String redirectURL = oaURL; if (!oaParam.getBusinessService()) { redirectURL = addURLParameter(redirectURL, PARAM_TARGET, - URLEncoder.encode(oaParam.getTarget(), "UTF-8")); + URLEncoder.encode(req.getTarget(), "UTF-8")); } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1AuthenticationServer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1AuthenticationServer.java index 65e520cc3..c8a480cac 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1AuthenticationServer.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1AuthenticationServer.java @@ -64,6 +64,7 @@ import at.gv.egovernment.moa.logging.Logger; import at.gv.egovernment.moa.util.Base64Utils; import at.gv.egovernment.moa.util.Constants; import at.gv.egovernment.moa.util.DOMUtils; +import at.gv.egovernment.moa.util.MiscUtil; import at.gv.egovernment.moa.util.StringUtils; import at.gv.util.xsd.persondata.IdentificationType; import at.gv.util.xsd.persondata.IdentificationType.Value; @@ -222,8 +223,14 @@ public class SAML1AuthenticationServer extends AuthenticationServer { Value value = new Value(); id.setValue(value ); - id.setType(Constants.URN_PREFIX_BASEID); - value.setValue(""); + id.setType(authData.getIdentificationType()); + //add baseID if it is requested and available + if ( MiscUtil.isNotEmpty(authData.getIdentificationValue()) && + saml1parameter.isProvideIdentityLink() ) + value.setValue(authData.getIdentificationValue()); + else + value.setValue(""); + familyName.setValue(authData.getFamilyName()); familyName.setPrimary("undefined"); name.getGivenName().add(authData.getGivenName()); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1Protocol.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1Protocol.java index 8f7f17e2e..9934c339d 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1Protocol.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1Protocol.java @@ -132,7 +132,7 @@ public class SAML1Protocol implements IModulInfo, MOAIDAuthConstants { if (!ParamValidatorUtils.isValidOA(oaURL)) throw new WrongParametersException("StartAuthentication", PARAM_OA, "auth.12"); - + config.setOAURL(oaURL); Logger.info("Dispatch SAML1 Request: OAURL=" + oaURL); @@ -156,8 +156,13 @@ public class SAML1Protocol implements IModulInfo, MOAIDAuthConstants { new Object[] { null }); } - config.setSourceID(sourceID); - config.setTarget(oaParam.getTarget()); + config.setSourceID(sourceID); + if (MiscUtil.isNotEmpty(target)) + config.setTarget(target); + + else + config.setTarget(oaParam.getTarget()); + return config; } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java index 8322f0cea..1e6cf6910 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java @@ -121,7 +121,7 @@ public class AttributeCollector implements IAction { if (authnResponse.getPersonalAttributeList().size() > 0) { Logger.info("Response from external attribute provider contains " + authnResponse.getPersonalAttributeList().size() + " attributes."); - addOrUpdateAll(container.getResponse().getPersonalAttributeList(), authnResponse.getPersonalAttributeList()); + container.getResponse().setPersonalAttributeList(addOrUpdateAll(container.getResponse().getPersonalAttributeList(), authnResponse.getPersonalAttributeList())); } } @@ -157,7 +157,7 @@ public class AttributeCollector implements IAction { // - insert the embedded attribute(s) into the container if (null != newAttributes) - addOrUpdateAll(container.getResponse().getPersonalAttributeList(), newAttributes); + container.getResponse().setPersonalAttributeList(addOrUpdateAll(container.getResponse().getPersonalAttributeList(), newAttributes)); // see if we need some more attributes SLOInformationImpl sloInfo = (SLOInformationImpl) processRequest(container, httpReq, httpResp, authData, oaParam); @@ -203,7 +203,8 @@ public class AttributeCollector implements IAction { IPersonalAttributeList aquiredAttributes = new PersonalAttributeList(); currentAttribute.setStatus(AttributeStatusType.NOT_AVAILABLE.value()); aquiredAttributes.add((PersonalAttribute) currentAttribute.clone()); - addOrUpdateAll(container.getResponse().getPersonalAttributeList(), aquiredAttributes); + container.getResponse().setPersonalAttributeList( + addOrUpdateAll(container.getResponse().getPersonalAttributeList(), aquiredAttributes)); // - check if we can find a suitable AttributeProvider Plugin Iterator<AttributeProvider> attibuteProvidersInterator = AttributeProviderFactory.getConfiguredPlugins(oaParam.getStorkAPs()); @@ -247,7 +248,7 @@ public class AttributeCollector implements IAction { Logger.error("We have no suitable plugin for obtaining the attribute '" + currentAttribute.getName() + "'"); } else // else, update any existing attributes - addOrUpdateAll(container.getResponse().getPersonalAttributeList(), aquiredAttributes); + container.getResponse().setPersonalAttributeList(addOrUpdateAll(container.getResponse().getPersonalAttributeList(), aquiredAttributes)); } Logger.info("collecting attributes done"); @@ -296,15 +297,21 @@ public class AttributeCollector implements IAction { * * @param target the target * @param source the source + * @return * @throws MOAIDException */ - private void addOrUpdateAll(IPersonalAttributeList target, IPersonalAttributeList source) throws MOAIDException { + private PersonalAttributeList addOrUpdateAll(IPersonalAttributeList target, IPersonalAttributeList source) throws MOAIDException { + + PersonalAttributeList updatedList = new PersonalAttributeList(); + for (PersonalAttribute el : target) + updatedList.add(el); + Logger.debug("Updating " + source.size() + " attributes..."); for (PersonalAttribute current : source) { Logger.debug("treating " + current.getName()); // check if we need to update the current pa - if (target.containsKey(current.getName())) { + if (updatedList.containsKey(current.getName())) { PersonalAttribute existing = target.get(current.getName()); if(!(existing.isEmptyValue() && existing.isEmptyComplexValue())) if(!(existing.getValue().equals(current.getValue()) || existing.getComplexValue().equals(current.getComplexValue()))) { @@ -312,14 +319,16 @@ public class AttributeCollector implements IAction { throw new MOAIDException("stork.16", new Object[] {existing.getName()}); } - target.get(current.getName()).setStatus(current.getStatus()); - target.get(current.getName()).setValue(current.getValue()); - target.get(current.getName()).setComplexValue(current.getComplexValue()); + updatedList.get(current.getName()).setStatus(current.getStatus()); + updatedList.get(current.getName()).setValue(current.getValue()); + updatedList.get(current.getName()).setComplexValue(current.getComplexValue()); } else - target.add(current); + updatedList.add(current); - Logger.debug("...successfully treated " + current.getName()); + Logger.debug("...successfully treated " + current.getName()); } + + return updatedList; } /* (non-Javadoc) diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java index 136200ed0..3ab4ec4a1 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java @@ -58,19 +58,23 @@ public class MOAAttributeProvider { static { Map<String, String> tempSimpleMap = new HashMap<String, String>(); tempSimpleMap.put("givenName", "getGivenName"); - tempSimpleMap.put("surname", "getFamilyName"); + tempSimpleMap.put("surname", "getFamilyName"); + tempSimpleMap.put("MSOrganization", "getPvpAttribute_OU"); storkAttributeSimpleMapping = Collections.unmodifiableMap(tempSimpleMap); + Map<String, String> tempFunctionMap = new HashMap<String, String>(); tempFunctionMap.put("eIdentifier", "geteIdentifier"); tempFunctionMap.put("ECApplicationRole","getECApplicationRole"); tempFunctionMap.put("dateOfBirth", "getFormatedDateOfBirth"); + tempFunctionMap.put("MSOrganization", "getMSOrganization"); storkAttributeFunctionMapping = Collections.unmodifiableMap(tempFunctionMap); + } public MOAAttributeProvider(IAuthData authData, MOASTORKRequest moastorkRequest) { this.authData = authData; this.moastorkRequest = moastorkRequest; - Logger.debug("identity " + authData.getIdentificationType() + " " + authData.getIdentificationValue()); + } public void populateAttribute(PersonalAttributeList attributeList, PersonalAttribute requestedAttribute ) { @@ -128,7 +132,7 @@ public class MOAAttributeProvider { } return storkRoles; } - + private String getFormatedDateOfBirth() { if (authData.getDateOfBirth() != null) { DateFormat fmt = new SimpleDateFormat("yyyyMMdd"); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKPVPUtilits.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKPVPUtilits.java index d923eccde..123d32af4 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKPVPUtilits.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKPVPUtilits.java @@ -32,7 +32,7 @@ import java.util.List; public class STORKPVPUtilits { public static final List<String> attributesRequirePVPAuthentication = - Arrays.asList("ECApplicationRole"); + Arrays.asList("ECApplicationRole", "MSOrganization"); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/PVPAuthenticationProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/PVPAuthenticationProvider.java index 96aa55bcf..7f06c604b 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/PVPAuthenticationProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/PVPAuthenticationProvider.java @@ -80,7 +80,7 @@ public class PVPAuthenticationProvider extends AttributeProvider { this.moastorkRequest = moastorkRequest; // break if we cannot handle the requested attribute - if (!attributes.contains(attribute.getName())) { + if (!getSupportedAttributeNames().contains(attribute.getName())) { Logger.info("Attribute " + attribute.getName() + " not supported by the provider: " + getAttrProviderName()); throw new UnsupportedAttributeException(); @@ -193,33 +193,34 @@ public class PVPAuthenticationProvider extends AttributeProvider { public IPersonalAttributeList parse(HttpServletRequest httpReq) throws UnsupportedAttributeException, MOAIDException { - Logger.info(this.getClass().getSimpleName() + " tries to extract SAMLResponse out of HTTP Request"); + throw new UnsupportedAttributeException(); - //extract STORK Response from HTTP Request - //Decodes SAML Response - byte[] decSamlToken; - try { - decSamlToken = PEPSUtil.decodeSAMLToken(httpReq.getParameter("SAMLResponse")); - } catch(NullPointerException e) { - throw new UnsupportedAttributeException(); - } - - //Get SAMLEngine instance - STORKSAMLEngine engine = STORKSAMLEngine.getInstance("VIDP"); - - STORKAuthnResponse authnResponse = null; - try { - //validate SAML Token - Logger.debug("Starting validation of SAML response"); - authnResponse = engine.validateSTORKAuthnResponse(decSamlToken, (String) httpReq.getRemoteHost()); - Logger.info("SAML response successfully verified!"); - - }catch(STORKSAMLEngineException e){ - Logger.error("Failed to verify STORK SAML Response", e); - throw new MOAIDException("stork.05", null); - } - - return authnResponse.getPersonalAttributeList(); +// Logger.info(this.getClass().getSimpleName() + " tries to extract SAMLResponse out of HTTP Request"); +// //extract STORK Response from HTTP Request +// //Decodes SAML Response +// byte[] decSamlToken; +// try { +// decSamlToken = PEPSUtil.decodeSAMLToken(httpReq.getParameter("SAMLResponse")); +// } catch(NullPointerException e) { +// throw new UnsupportedAttributeException(); +// } +// +// //Get SAMLEngine instance +// STORKSAMLEngine engine = STORKSAMLEngine.getInstance("VIDP"); +// +// STORKAuthnResponse authnResponse = null; +// try { +// //validate SAML Token +// Logger.debug("Starting validation of SAML response"); +// authnResponse = engine.validateSTORKAuthnResponse(decSamlToken, (String) httpReq.getRemoteHost()); +// Logger.info("SAML response successfully verified!"); +// +// }catch(STORKSAMLEngineException e){ +// Logger.error("Failed to verify STORK SAML Response", e); +// throw new MOAIDException("stork.05", null); +// } +// +// return authnResponse.getPersonalAttributeList(); } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/IdentityLinkReSigner.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/IdentityLinkReSigner.java index 090bea486..520b81b17 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/IdentityLinkReSigner.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/IdentityLinkReSigner.java @@ -71,13 +71,9 @@ public class IdentityLinkReSigner { return instance; } - public Element resignIdentityLink(Element idl) throws MOAIDException { + public Element resignIdentityLink(Element idl, String keyGroupId) throws MOAIDException { try { - AuthConfigurationProvider config = AuthConfigurationProvider.getInstance(); - - if (config.isIdentityLinkResigning()) { - if (idl == null) { Logger.warn("IdentityLink is empty"); return null; @@ -91,7 +87,6 @@ public class IdentityLinkReSigner { SPSSFactory spssFac = SPSSFactory.getInstance(); - String keyGroupId = config.getIdentityLinkResigningKey(); if (MiscUtil.isEmpty(keyGroupId)) { Logger.warn("No IdentityLink reSigning-Key definded"); throw new MOAIDException("config.19", new Object[]{}); @@ -166,9 +161,6 @@ public class IdentityLinkReSigner { Logger.warn("Allgemeiner Fehler beim Aufruf von MOA-SS: Unbekannter ResponseType von MOA-SS"); throw new MOAIDException("builder.05", new Object[]{}); } - - } else - return idl; } catch (ConfigurationException e) { Logger.warn("Configuration can not be loaded", e); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/PVPtoSTORKMapper.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/PVPtoSTORKMapper.java index 0ea03e29d..5ef9494f4 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/PVPtoSTORKMapper.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/PVPtoSTORKMapper.java @@ -36,6 +36,7 @@ import at.gv.egovernment.moa.util.MiscUtil; public class PVPtoSTORKMapper { private static final String PVP_SECCLASS_PREFIX = "http://www.ref.gv.at/ns/names/agiz/pvp/"; + private static final String STORK_QAA_PREFIX = "http://www.stork.gov.eu/1.0/"; private static final String MAPPING_RESOURCE = "resources/properties/pvp-stork_mapping.properties"; @@ -67,12 +68,31 @@ public class PVPtoSTORKMapper { } + /**Map a STORK QAA level to PVP SecClass + * + * @param STORK-QAA level + * @return PVP SecClass pvpQAALevel + */ + public String mapToSecClass(String storkQAALevel) { + if (mapping != null) { + String input = storkQAALevel.substring(STORK_QAA_PREFIX.length()); + String mappedQAA = mapping.getProperty(input); + if (MiscUtil.isNotEmpty(mappedQAA)) { + Logger.info("Map STORK-QAA " + storkQAALevel + " to PVP SecClass " + mappedQAA); + return mappedQAA; + + } + } + Logger.warn("No mapping for STORK-QAA " + storkQAALevel +" !"); + return null; + } + /**Map a PVP SecClass to STORK QAA level * * @param PVP SecClass pvpQAALevel * @return STORK-QAA level */ - public String mapQAALevel(String pvpQAALevel) { + public String mapToQAALevel(String pvpQAALevel) { if (mapping != null) { String input = pvpQAALevel.substring(PVP_SECCLASS_PREFIX.length()); String mappedQAA = mapping.getProperty(input); @@ -93,13 +113,16 @@ public class PVPtoSTORKMapper { */ public String map(AuthenticationRole el) { if (mapping != null) { - String ecRole = mapping.getProperty(el.getRawRoleString()); + //String ecRole = mapping.getProperty(el.getRawRoleString()); + String ecRole = mapping.getProperty(el.getRoleName()); if (MiscUtil.isNotEmpty(ecRole)) { - Logger.info("Map PVPRole " + el.getRawRoleString() + " to ECRole " + ecRole); + //Logger.info("Map PVPRole " + el.getRawRoleString() + " to ECRole " + ecRole); + Logger.info("Map PVPRole " + el.getRoleName() + " to ECRole " + ecRole); return ecRole; } } - Logger.warn("NO mapping for PVPRole "+ el.getRawRoleString() + " !"); + //Logger.warn("NO mapping for PVPRole "+ el.getRawRoleString() + " !"); + Logger.warn("NO mapping for PVPRole "+ el.getRoleName() + " !"); return null; } } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISMandate.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISMandate.java index 20cabaf4d..1edb8d1f3 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISMandate.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISMandate.java @@ -66,6 +66,9 @@ public class MISMandate implements Serializable{ final static public String OID_ORGANWALTER = "1.2.40.0.10.3.4";
final static private String TEXT_ORGANWALTER = "Organwalter";
+ final static public String OID_ELGA_OMBUTSSTELLE = "1.2.40.0.34.3.1.3";
+ final static public String OID_ELGA_OMBUTSSTELLE_TEST = "1.2.40.0.34.3.1.2.99.9";
+ final static private String TEXT_ELGA_OMBUTSSTELLE = "ELGA-Ombudsstelle";
private String oid = null;
private byte[] mandate = null;
@@ -102,7 +105,10 @@ public class MISMandate implements Serializable{ return TEXT_ZIVILTECHNIKER;
if (this.oid.equalsIgnoreCase(OID_ORGANWALTER))
return TEXT_ORGANWALTER;
-
+ if (this.oid.equalsIgnoreCase(OID_ELGA_OMBUTSSTELLE)
+ || this.oid.equalsIgnoreCase(OID_ELGA_OMBUTSSTELLE_TEST))
+ return TEXT_ELGA_OMBUTSSTELLE;
+
return "Keine textuelle Beschreibung für OID " + oid;
} else {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSimpleClient.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSimpleClient.java index 15b2a89b5..24c96a78f 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSimpleClient.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSimpleClient.java @@ -56,6 +56,7 @@ import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerException;
import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.httpclient.HostConfiguration;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.StringRequestEntity;
@@ -70,6 +71,7 @@ import org.xml.sax.SAXException; import at.gv.egovernment.moa.id.auth.exception.MISSimpleClientException;
import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.SZRGWSecureSocketFactory;
+import at.gv.egovernment.moa.id.commons.utils.HttpClientWithProxySupport;
import at.gv.egovernment.moa.logging.Logger;
import at.gv.egovernment.moa.util.DOMUtils;
import at.gv.egovernment.moa.util.StringUtils;
@@ -300,7 +302,7 @@ public class MISSimpleClient { throw new NullPointerException("Argument request must not be null.");
}
try {
- HttpClient httpclient = new HttpClient();
+ HttpClient httpclient = HttpClientWithProxySupport.getHttpClient();
PostMethod post = new PostMethod(webServiceURL);
StringRequestEntity re = new StringRequestEntity(DOMUtils.serializeNode(packIntoSOAP(request)),"text/xml", "UTF-8");
post.setRequestEntity(re);
diff --git a/id/server/idserverlib/src/main/resources/resources/properties/pvp-stork_mapping.properties b/id/server/idserverlib/src/main/resources/resources/properties/pvp-stork_mapping.properties index 63745f826..ca12fada4 100644 --- a/id/server/idserverlib/src/main/resources/resources/properties/pvp-stork_mapping.properties +++ b/id/server/idserverlib/src/main/resources/resources/properties/pvp-stork_mapping.properties @@ -1,9 +1,31 @@ ##PVP role mapping viewer=CIRCABC/viewer CIRCABC-viewer=CIRCABC/viewer +CIRCABC-DIRECTOR=CIRCABC/DIRECTOR +CIRCABC-SECRETARY=CIRCABC/SECRETARY +CIRCABC-MEMBER=CIRCABC/MEMBER -##PVP SecClass mapping +ecas-demo-EUROPEAN_COMMISSION=ecas-demo/EUROPEAN_COMMISSION +ecas-demo-EXTERNAL_INTRAMUROS=ecas-demo/EXTERNAL_INTRAMUROS +ecas-demo-INTERNET=ecas-demo/INTERNET +ecas-demo-LIVENEWS=ecas-demo/LIVENEWS + +DIGIT-EUROPEAN_COMMISSION=DIGIT/EUROPEAN_COMMISSION +DIGIT-EXTERNAL_INTRAMUROS=DIGIT/EXTERNAL_INTRAMUROS +DIGIT-INTERNET=DIGIT/INTERNET +DIGIT-LIVENEWS=DIGIT/LIVENEWS + + + + +##PVP SecClass to STORK-QAA mapping secclass/0=http://www.stork.gov.eu/1.0/citizenQAALevel/1 secclass/0-1=http://www.stork.gov.eu/1.0/citizenQAALevel/2 -secclass/0-2=http://www.stork.gov.eu/1.0/citizenQAALevel/3 -secclass/0-3=http://www.stork.gov.eu/1.0/citizenQAALevel/4
\ No newline at end of file +secclass/0-2=http://www.stork.gov.eu/1.0/citizenQAALevel/4 +secclass/0-3=http://www.stork.gov.eu/1.0/citizenQAALevel/4 + +##STORK-QAA to PVP SecClass mapping +citizenQAALevel/1=http://www.ref.gv.at/ns/names/agiz/pvp/secclass/0 +citizenQAALevel/2=http://www.ref.gv.at/ns/names/agiz/pvp/secclass/0-1 +citizenQAALevel/3=http://www.ref.gv.at/ns/names/agiz/pvp/secclass/0-2 +citizenQAALevel/4=http://www.ref.gv.at/ns/names/agiz/pvp/secclass/0-2
\ No newline at end of file diff --git a/id/server/idserverlib/src/main/resources/resources/xmldata/fakeIdL_IdL_template.xml b/id/server/idserverlib/src/main/resources/resources/xmldata/fakeIdL_IdL_template.xml new file mode 100644 index 000000000..09084a34f --- /dev/null +++ b/id/server/idserverlib/src/main/resources/resources/xmldata/fakeIdL_IdL_template.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?><saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:ecdsa="http://www.w3.org/2001/04/xmldsig-more#" xmlns:pr="http://reference.e-government.gv.at/namespace/persondata/20020228#" xmlns:si="http://www.w3.org/2001/XMLSchema-instance" AssertionID="szr.bmi.gv.at-AssertionID13456264458587874" IssueInstant="2012-08-22T11:07:25+01:00" Issuer="http://portal.bmi.gv.at/ref/szr/issuer" MajorVersion="1" MinorVersion="0" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + <saml:AttributeStatement> + <saml:Subject> + <saml:SubjectConfirmation> + <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:sender-vouches</saml:ConfirmationMethod> + <saml:SubjectConfirmationData> + <pr:Person si:type="pr:PhysicalPersonType"><pr:Identification><pr:Value>wJO/bvDJjUysG0yARn7I6w==</pr:Value><pr:Type>urn:publicid:gv.at:baseid</pr:Type></pr:Identification><pr:Name><pr:GivenName>XXXRúùd</pr:GivenName><pr:FamilyName primary="undefined">XXXVà n Nisteĺrooy</pr:FamilyName></pr:Name><pr:DateOfBirth>1969-02-13</pr:DateOfBirth></pr:Person> + </saml:SubjectConfirmationData> + </saml:SubjectConfirmation> + </saml:Subject> + <saml:Attribute AttributeName="CitizenPublicKey" AttributeNamespace="urn:publicid:gv.at:namespaces:identitylink:1.2"><saml:AttributeValue><ecdsa:ECDSAKeyValue><ecdsa:DomainParameters><ecdsa:NamedCurve URN="urn:oid:1.2.840.10045.3.1.7"/></ecdsa:DomainParameters><ecdsa:PublicKey><ecdsa:X Value="22280299907126338788314199678167217078072953115254374209747379168424021905237" si:type="ecdsa:PrimeFieldElemType"/><ecdsa:Y Value="40387096985250872237992703378062984723606079359080588656963239072881568409170" si:type="ecdsa:PrimeFieldElemType"/></ecdsa:PublicKey></ecdsa:ECDSAKeyValue></saml:AttributeValue></saml:Attribute><saml:Attribute AttributeName="CitizenPublicKey" AttributeNamespace="urn:publicid:gv.at:namespaces:identitylink:1.2"><saml:AttributeValue><dsig:RSAKeyValue><dsig:Modulus>4Y4FL09VhczsfYQgFPuycP8quJNZBAAu1R1rFXNodI2711B6BTMjAGQn6xuFWfd3/nyFav/MLTr/ +t2VazvANS4TRFxJAcWyIx7xbxCdzZr6gJ+FCmq4g5JPrQvt50v3JX+wKSYft1gHBOWlDn90Ia4Gm +P8MVuze21T+VVKM6ZklmS6d5PT1er/uYQFydGErmJ17xlSQG6Fi5xuftopBDyJxG1tL1KIebpLFg +gaM2EyuB1HxH8/+Mfqa4UgeqIH65</dsig:Modulus><dsig:Exponent>AQAB</dsig:Exponent></dsig:RSAKeyValue></saml:AttributeValue></saml:Attribute></saml:AttributeStatement> + <dsig:Signature> + <dsig:SignedInfo> + <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + <dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> + <dsig:Reference URI=""> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <dsig:XPath>not(ancestor-or-self::pr:Identification)</dsig:XPath> + </dsig:Transform> + <dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> + <dsig:DigestValue>KEQEPY2O3Z3IRaISSSoRZVPzsHE=</dsig:DigestValue> + </dsig:Reference> + <dsig:Reference Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest"> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> + <dsig:DigestValue>gzGhjH1kdmPcPbgen0xojNIoJLk=</dsig:DigestValue> + </dsig:Reference> + </dsig:SignedInfo> + <dsig:SignatureValue> + 06wqWHgplwpu3N5HMhzb6QC5NkXMO1z4N4oc1L6eDqwZlvFJ9X1XGW//QqviKO9oog3il7IzdfJwnjygR4trgGCIqx+JYCDHJCrG9l8zlxlSW0ZqfsygGXthutcQ1aeUpfO6jYuhnWOUywa8BgzukRtWT+AOJBQZPRYTb8IBmey+uAwlhFLni94eMOd81l+efCvkWi3jRajwsG8ZOaNxSZT3aEV5vj+32Aqtx2MPEVzQWtIA7GqZi+EzcdSdHQvHhg7UB+8kqbU70ENAJbEMTANFZYvLOJ0Om9KfDtPf/+R2TvTc360fNo9RnPl04pHPhCIjcGZhFZorBpUhXFwd2Q== + </dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIIF3TCCBMWgAwIBAgIDByniMA0GCSqGSIb3DQEBBQUAMIGfMQswCQYDVQQGEwJBVDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMSIwIAYDVQQLDBlhLXNpZ24tY29ycG9yYXRlLWxpZ2h0LTAyMSIwIAYDVQQDDBlhLXNpZ24tY29ycG9yYXRlLWxpZ2h0LTAyMB4XDTEwMDcyODExMzY0M1oXDTE1MDcyODExMzY0M1owgbYxCzAJBgNVBAYTAkFUMR4wHAYDVQQKDBVEYXRlbnNjaHV0emtvbW1pc3Npb24xIjAgBgNVBAsMGVN0YW1temFobHJlZ2lzdGVyYmVob2VyZGUxLjAsBgNVBAMMJVNpZ25hdHVyc2VydmljZSBEYXRlbnNjaHV0emtvbW1pc3Npb24xFTATBgNVBAUTDDMyNTkyODMyMzk5ODEcMBoGCSqGSIb3DQEJARYNZHNrQGRzay5ndi5hdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN+dBSEBGj2jUXIK1Mp3lVxc/Za+pJMiyKrX3G1ZxgX/ikx7D9scsPYMt473LlAWl9cmCbHbJK+PV2XNNdURLMUCIX+4vUNs2MHeDTQtX8BXjJFpwJYSoaRJQ39FVS/1r5sWcra9Hhdm7w5Gtx/2ukyDX0kdkxawkhP4EQEzi/SI+Fugn+WqgQ1nAdlbxb/dcBw5w1h9b3lmuwUf4z3ooQWUD2DgA/kKd1KejNR43mLUsmvSzevPxT9zs78pOR1OacB7IszTVJPXeOEaaNZHnnB/UeO3g8LEV/3OkXcUgcMkbIIiaBHlll71Pq0COj9kqjXoe7OrRjLY5i3KwOpa6TMCAwEAAaOCAgcwggIDMBMGA1UdIwQMMAqACEkcWDpP6A0DMH8GCCsGAQUFBwEBBHMwcTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AuYS10cnVzdC5hdC9vY3NwMEYGCCsGAQUFBzAChjpodHRwOi8vd3d3LmEtdHJ1c3QuYXQvY2VydHMvYS1zaWduLWNvcnBvcmF0ZS1saWdodC0wMmEuY3J0MFQGA1UdIARNMEswSQYGKigAEQESMD8wPQYIKwYBBQUHAgEWMWh0dHA6Ly93d3cuYS10cnVzdC5hdC9kb2NzL2NwL2Etc2lnbi1BbXRzc2lnbmF0dXIwgZ4GA1UdHwSBljCBkzCBkKCBjaCBioaBh2xkYXA6Ly9sZGFwLmEtdHJ1c3QuYXQvb3U9YS1zaWduLWNvcnBvcmF0ZS1saWdodC0wMixvPUEtVHJ1c3QsYz1BVD9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0P2Jhc2U/b2JqZWN0Y2xhc3M9ZWlkQ2VydGlmaWNhdGlvbkF1dGhvcml0eTARBgNVHQ4ECgQITAgOnhr0tbowDgYDVR0PAQH/BAQDAgSwMCAGA1UdEQQZMBeBFW1hcmN1cy5oaWxkQGRzay5ndi5hdDAJBgNVHRMEAjAAMA4GByooAAoBBwEEAwEB/zAUBgcqKAAKAQEBBAkMB0JTQi1EU0swDQYJKoZIhvcNAQEFBQADggEBAHTklnvPCH/bJSOlIPbLUEkSGuFHsektSZ8Vr22x/Yv7EzsxoQrJIiz2mQ2gQqFuExdWYxvsowjiSbiis9iUf1c0zscvDS3mIZxGs4M89XHsjHnIyb+Fuwnamw65QrFvM1tNB1ZMjxJ3x+YmHLHdtT3BEBcr3/NCRHd2S0HoBspNz9HVgJaZY1llR7poKBvnAc4g1i+QTvyVb00PtKxR9Lw/9ABInX/1pzpxqrPy7Ib2OP8z6dd3WHmIsCiSHUaj0Dxwwln6fYJjhxZ141SnbovlCLYtrsZLXoi9ljIqX4xO0PwMI2RfNc9cXxTRrRS6rEOvX7PpvgXiDXhp592Yyp4=</dsig:X509Certificate></dsig:X509Data></dsig:KeyInfo> + <dsig:Object> + <dsig:Manifest Id="manifest"> + <dsig:Reference URI=""> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <dsig:XPath>not(ancestor-or-self::dsig:Signature)</dsig:XPath> + </dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> + <dsig:DigestValue>8e7RjLnA4Mgltq5ruIJzheKGxu0=</dsig:DigestValue> + </dsig:Reference> + </dsig:Manifest> + </dsig:Object> + </dsig:Signature> +</saml:Assertion>
\ No newline at end of file diff --git a/id/server/idserverlib/src/test/java/test/tlenz/simpletest.java b/id/server/idserverlib/src/test/java/test/tlenz/simpletest.java index ec908f78b..549eb4f2b 100644 --- a/id/server/idserverlib/src/test/java/test/tlenz/simpletest.java +++ b/id/server/idserverlib/src/test/java/test/tlenz/simpletest.java @@ -1,3 +1,8 @@ +package test.tlenz; + +import at.gv.egovernment.moa.id.data.AuthenticationRole; +import at.gv.egovernment.moa.id.data.AuthenticationRoleFactory; + /******************************************************************************* * Copyright 2014 Federal Chancellery Austria * MOA-ID has been developed in a cooperation between BRZ, the Federal @@ -38,12 +43,19 @@ //import at.gv.egovernment.moa.id.storage.AssertionStorage; //import at.gv.egovernment.moa.util.MiscUtil; // -//public class simpletest { +public class simpletest { // -// public static void main(String[] args) { + public static void main(String[] args) { + + AuthenticationRole test = AuthenticationRoleFactory.buildFormPVPole("ecas-demo-EUROPEAN_COMMISSION(key=A\\,B)"); + + test = AuthenticationRoleFactory.buildFormPVPole("ecas-demo-EUROPEAN_COMMISSION"); + test = AuthenticationRoleFactory.buildFormPVPole("ecas-demo-EUROPEAN_COMMISSION(key=A)"); + test = AuthenticationRoleFactory.buildFormPVPole("ecas-demo-EUROPEAN_COMMISSION(keyA=A,keyB=B)"); + // // System.setProperty("mandates.configuration", "D:/Projekte/svn/moa-id/moa-id.properties"); -// String propertiesFileLocation = System.getProperty("mandates.configuration"); +// String propertiesFileLocation = Systm.getProperty("mandates.configuration"); // // MiscUtil.assertNotNull(propertiesFileLocation, "propertiesFileName"); // File propertiesFile = new File(propertiesFileLocation); @@ -95,5 +107,5 @@ // // // -// } -//} + } +} diff --git a/id/server/moa-id-commons/pom.xml b/id/server/moa-id-commons/pom.xml index 2ca351e81..21286585e 100644 --- a/id/server/moa-id-commons/pom.xml +++ b/id/server/moa-id-commons/pom.xml @@ -46,17 +46,17 @@ <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> - <version>4.3.6.Final</version> + <version>4.3.8.Final</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-c3p0</artifactId> - <version>4.3.6.Final</version> + <version>4.3.8.Final</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> - <version>4.3.6.Final</version> + <version>4.3.8.Final</version> </dependency> <dependency> @@ -64,10 +64,14 @@ <artifactId>commons-lang3</artifactId> <version>3.3.2</version> </dependency> - <dependency> + <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> </dependency> +<!-- <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpclient</artifactId> + </dependency> --> <dependency> <groupId>MOA</groupId> <artifactId>moa-common</artifactId> @@ -118,7 +122,7 @@ <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> - <version>5.1.33</version> + <version>5.1.34</version> </dependency> </dependencies> diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBRead.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBRead.java index a3f445fcf..6efdd6223 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBRead.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBRead.java @@ -152,7 +152,7 @@ public class ConfigurationDBRead { if (result.size() == 0) { Logger.trace("No entries found. Create fresh instance."); - return new MOAIDConfiguration(); + return null; } return (MOAIDConfiguration) result.get(0); diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/HttpClientWithProxySupport.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/HttpClientWithProxySupport.java new file mode 100644 index 000000000..733c03bf0 --- /dev/null +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/HttpClientWithProxySupport.java @@ -0,0 +1,61 @@ +/* + * Copyright 2014 Federal Chancellery Austria + * MOA-ID has been developed in a cooperation between BRZ, the Federal + * Chancellery Austria - ICT staff unit, and Graz University of Technology. + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ +package at.gv.egovernment.moa.id.commons.utils; + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.UsernamePasswordCredentials; +import org.apache.commons.httpclient.auth.AuthScope; + +import at.gv.egovernment.moa.logging.Logger; +import at.gv.egovernment.moa.util.MiscUtil; + +/** + * @author tlenz + * + */ +public class HttpClientWithProxySupport { + + public static HttpClient getHttpClient() { + HttpClient client = new HttpClient(); + + String host = System.getProperty("http.proxyHost"); //$NON-NLS-1$ + String port = System.getProperty("http.proxyPort"); //$NON-NLS-1$ + if (MiscUtil.isNotEmpty(host) && + MiscUtil.isNotEmpty(port)) { + int p = Integer.parseInt(port); + client.getHostConfiguration().setProxy(host, p); + Logger.info("Initial HTTPClient with proxy usage. " + + "ProxyHost=" + host + + " ProxyPort=" + port); + + String user = System.getProperty("http.proxyUser"); //$NON-NLS-1$ + String pass = System.getProperty("http.proxyPassword"); //$NON-NLS-1$ + if (MiscUtil.isNotEmpty(user) && pass != null) { + client.getState().setProxyCredentials(new AuthScope(host, p), + new UsernamePasswordCredentials(user, pass)); + + } + } + return client; + } +} diff --git a/id/server/moa-id-commons/src/main/java/org/apache/commons/httpclient/MOAHttpClient.java b/id/server/moa-id-commons/src/main/java/org/apache/commons/httpclient/MOAHttpClient.java index e4aa6a284..758209193 100644 --- a/id/server/moa-id-commons/src/main/java/org/apache/commons/httpclient/MOAHttpClient.java +++ b/id/server/moa-id-commons/src/main/java/org/apache/commons/httpclient/MOAHttpClient.java @@ -26,15 +26,8 @@ import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; -import org.apache.commons.httpclient.HostConfiguration; -import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.HttpException; -import org.apache.commons.httpclient.HttpMethod; -import org.apache.commons.httpclient.HttpMethodDirector; -import org.apache.commons.httpclient.HttpState; -import org.apache.commons.httpclient.URI; import org.apache.commons.httpclient.protocol.Protocol; -import org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory; +import org.apache.commons.httpclient.protocol.ProtocolSocketFactory; import at.gv.egovernment.moa.id.commons.ex.MOAHttpProtocolSocketFactoryException; @@ -47,7 +40,7 @@ import at.gv.egovernment.moa.id.commons.ex.MOAHttpProtocolSocketFactoryException public class MOAHttpClient extends HttpClient { - public void setCustomSSLTrustStore(String metadataURL, SecureProtocolSocketFactory protoSocketFactory) throws MOAHttpProtocolSocketFactoryException, MalformedURLException { + public void setCustomSSLTrustStore(String metadataURL, ProtocolSocketFactory protoSocketFactory) throws MOAHttpProtocolSocketFactoryException, MalformedURLException { ; URL url = new URL(metadataURL); diff --git a/id/server/stork2-commons/pom.xml b/id/server/stork2-commons/pom.xml index 43a02ae5d..926651b04 100644 --- a/id/server/stork2-commons/pom.xml +++ b/id/server/stork2-commons/pom.xml @@ -41,7 +41,6 @@ <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> - <version>1.2.17</version> <exclusions> <exclusion> <groupId>javax.jms</groupId> @@ -65,7 +64,6 @@ <dependency> <groupId>org.opensaml</groupId> <artifactId>opensaml</artifactId> - <version>${opensaml.version}</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> @@ -130,8 +128,8 @@ <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> - <source>1.7</source> - <target>1.7</target> + <source>1.6</source> + <target>1.6</target> <encoding>UTF-8</encoding> </configuration> </plugin> diff --git a/id/server/stork2-saml-engine/pom.xml b/id/server/stork2-saml-engine/pom.xml index a082a618b..f28f2c9a4 100644 --- a/id/server/stork2-saml-engine/pom.xml +++ b/id/server/stork2-saml-engine/pom.xml @@ -60,7 +60,6 @@ <dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml</artifactId>
- <version>${opensaml.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
@@ -92,8 +91,7 @@ <dependency>
<groupId>org.opensaml</groupId>
<artifactId>xmltooling</artifactId>
- <version>1.4.3</version>
- </dependency>
+ </dependency>
<dependency>
<groupId>org.slf4j</groupId>
@@ -130,7 +128,7 @@ <dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
- <version>2.11.0</version>
+<!-- <version>2.11.0</version> -->
<scope>test</scope>
</dependency>
<dependency>
|