aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--id/server/doc/handbook/config/config.html4
-rw-r--r--id/server/doc/handbook/protocol/Assertion.xml81
-rw-r--r--id/server/doc/handbook/protocol/AuthRequest.xml38
-rw-r--r--id/server/doc/handbook/protocol/idp_metadata.xml116
-rw-r--r--id/server/doc/handbook/protocol/openIDconnect_sequenz.pngbin22117 -> 121367 bytes
-rw-r--r--id/server/doc/handbook/protocol/protocol.html650
-rw-r--r--id/server/doc/handbook/protocol/serviceprovider_metadata.xml95
-rw-r--r--id/server/doc/handbook/spec/MOA-SPSS-2.0.0.wsdl128
-rw-r--r--id/server/doc/handbook/spec/MOA-SPSS-2.0.0.xsd572
-rw-r--r--id/server/doc/htmlTemplates/template_onlineBKU.html37
10 files changed, 1709 insertions, 12 deletions
diff --git a/id/server/doc/handbook/config/config.html b/id/server/doc/handbook/config/config.html
index 52b894fe4..48ca18305 100644
--- a/id/server/doc/handbook/config/config.html
+++ b/id/server/doc/handbook/config/config.html
@@ -527,7 +527,6 @@ 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 &bdquo;Online-Applikation aktivieren&ldquo; (siehe <a href="#konfigurationsparameter_oa">Kapitel 3.2</a>: ) steht jedoch nicht zur Verf&uuml;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&ouml;schen. Beim L&ouml;schen eines Benutzeraccounts werden Online-Applikationen die von diesem erstellt wurden jedoch nicht automatisch gel&ouml;scht. </li>
</ul>
-<p>&nbsp;</p>
<h2><a name="basisconfig_moa_id_auth" id="uebersicht_zentraledatei_aktualisierung2"></a>2.2 MOA-ID-Auth</h2>
<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&uuml;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>
@@ -1563,7 +1562,8 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
<td>http://demo.egiz.gv.at/demologin-pvp2-sso/metadata/demoportal-pvp2-sso.mdxml</td>
<td align="center">&nbsp;</td>
<td align="center">&nbsp;</td>
- <td>URL unter der die MOA-ID-Auth Instanz die Metadaten der Online-Applikation beziehen kann. Diese Metadaten m&uuml;ssen durch die Online-Applikation signiert sein. F&uuml;r den Fall das die Metadaten &uuml;ber https abgeholt werden, muss ja jeweilige Serverzertifikat zur Zertifikatspr&uuml;fung im <a href="../install/install.html#webservice_basisinstallation_installation_spssdeploy">TrustStore der MOA-ID-Auth Instanz</a> hinterlegt sein.</td>
+ <td><p>URL unter der die MOA-ID-Auth Instanz die Metadaten der Online-Applikation beziehen kann. Diese Metadaten m&uuml;ssen durch die Online-Applikation signiert sein. F&uuml;r den Fall das die Metadaten &uuml;ber https abgeholt werden, muss ja jeweilige Serverzertifikat zur Zertifikatspr&uuml;fung im <a href="../install/install.html#webservice_basisinstallation_installation_spssdeploy">TrustStore der MOA-ID-Auth Instanz</a> hinterlegt sein.</p>
+ <p><strong>Hinweis:</strong> Metadaten k&ouml;nnen nur &uuml;ber http oder https abgeholt werden.</p></td>
</tr>
<tr>
<td>Infos zum Zertifikat</td>
diff --git a/id/server/doc/handbook/protocol/Assertion.xml b/id/server/doc/handbook/protocol/Assertion.xml
new file mode 100644
index 000000000..6be5c7384
--- /dev/null
+++ b/id/server/doc/handbook/protocol/Assertion.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" Destination="https://demo.egiz.gv.at/demoportal_demologin/securearea.action" InResponseTo="_2e6529184b536ad98be7e8a23058276b" IssueInstant="2014-03-04T13:52:14.026Z" Version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">https://demo.egiz.gv.at/demoportal_moaid-2.0</saml2:Issuer>
+ <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:SignedInfo>
+ <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+ <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
+ <ds:Reference URI="">
+ <ds:Transforms>
+ <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
+ <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
+ <ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="xs"/>
+ </ds:Transform>
+ </ds:Transforms>
+ <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+ <ds:DigestValue>kvUKbjEOo7lVsclpkgHFkkbJ5bErwG/bu6KzGoJzLZs=</ds:DigestValue>
+ </ds:Reference>
+ </ds:SignedInfo>
+ <ds:SignatureValue>bNS+LN4YNeqKR05F+Y9YbRkPEJ87rhEK+Prk3pEnMBZT8VKWwP/ki4TdrupkFX3YjJvINXk2NFJxcB5GEbHxJjnpF8+K4gH2cPRyzDdS72mlO70mKg9Aa2chP/35c9kyGaHfzrw7Y4MzKjrkXfl76ekdL8UzHFYVFE4oUwtJXvrsg78RZNcy4aCuUvzsJbYwfriAjT7Cp93F5aum6oJ6kXk8XSHmh+yVzFSzYL+WkbIV+x7OOXVnoAWSY5d3tPGlr2LhjTf53q0pn+cggJ6jPfAVmwuxJTwe2C7xPlkylsQkswORMwXovGr+KqrcOpimxgeukvlJD+7YUHsi8uJMvg==</ds:SignatureValue>
+ <ds:KeyInfo>
+ <ds:KeyValue>
+ <ds:RSAKeyValue>
+ <ds:Modulus>xRE83dJy1dj+KVBp5Syo91fjGeG1MmJDSuTZ5MwdDzvIZrbK3YPh0jbJz4lOSrw9urRacavZX4m2
+XAKfSRxaowP3GqTh3Ew4WJE7yXEnWiic7bUz8uMIr020bsvqHCvY48+oPARbz/cEOf5NgMBWqo9E
+nibdIyU5+AmfFzDaMwNocJEANoXrjLTpduCHvT0Qt/wH+7rVdgjX1djMrBhyMWs7GQyIBRfuf58m
+8kdcoiMSm9AWA4d4GzXch+bi1QRzj+Ib80DeWdcXP3Hc6pcyp/+L+hya2jZ9NMS8yup6xuoAeh7w
+6JNpfE9QnO3/CPrDZTtmjPK2OIRkhgn4Yi+iBQ==</ds:Modulus>
+ <ds:Exponent>AQAB</ds:Exponent>
+ </ds:RSAKeyValue>
+ </ds:KeyValue>
+ </ds:KeyInfo>
+ </ds:Signature>
+ <saml2p:Status>
+ <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
+ </saml2p:Status>
+ <saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" ID="_35f651bf2b8f06249ef55ca244584a6a" IssueInstant="2014-03-04T13:52:14.026Z" Version="2.0">
+ <saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">https://demo.egiz.gv.at/demoportal_moaid-2.0</saml2:Issuer>
+ <saml2:Subject>
+ <saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" NameQualifier="urn:publicid:gv.at:cdid+BF">QVGm48cqcM4UcyhDTNGYmVdrIoY=</saml2:NameID>
+ <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
+ <saml2:SubjectConfirmationData InResponseTo="_2e6529184b536ad98be7e8a23058276b" NotOnOrAfter="2014-03-04T13:57:14.026Z" Recipient="https://demo.egiz.gv.at/demoportal_demologin/securearea.action"/>
+ </saml2:SubjectConfirmation>
+ </saml2:Subject>
+ <saml2:Conditions NotBefore="2014-03-04T13:52:14.026Z" NotOnOrAfter="2014-03-04T13:57:14.026Z">
+ <saml2:AudienceRestriction>
+ <saml2:Audience>https://demo.egiz.gv.at/demoportal_demologin/</saml2:Audience>
+ </saml2:AudienceRestriction>
+ </saml2:Conditions>
+ <saml2:AuthnStatement AuthnInstant="2014-03-04T13:52:14.026Z" SessionIndex="_3d750604d315cc40a9cce50f7bdb43d7">
+ <saml2:AuthnContext>
+ <saml2:AuthnContextClassRef>http://www.stork.gov.eu/1.0/citizenQAALevel/4</saml2:AuthnContextClassRef>
+ </saml2:AuthnContext>
+ </saml2:AuthnStatement>
+ <saml2:AttributeStatement>
+ <saml2:Attribute FriendlyName="PVP-VERSION" Name="urn:oid:1.2.40.0.10.2.1.1.261.10" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
+ <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">2.1</saml2:AttributeValue>
+ </saml2:Attribute>
+ <saml2:Attribute FriendlyName="PRINCIPAL-NAME" Name="urn:oid:1.2.40.0.10.2.1.1.261.20" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
+ <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Mustermann</saml2:AttributeValue>
+ </saml2:Attribute>
+ <saml2:Attribute FriendlyName="GIVEN-NAME" Name="urn:oid:2.5.4.42" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
+ <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Max</saml2:AttributeValue>
+ </saml2:Attribute>
+ <saml2:Attribute FriendlyName="BIRTHDATE" Name="urn:oid:1.2.40.0.10.2.1.1.55" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
+ <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">1940-01-01</saml2:AttributeValue>
+ </saml2:Attribute>
+ <saml2:Attribute FriendlyName="BPK" Name="urn:oid:1.2.40.0.10.2.1.1.149" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
+ <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">BF:QVGm48cqcM4UcyhDTNGYmVdrIoY=</saml2:AttributeValue>
+ </saml2:Attribute>
+ <saml2:Attribute FriendlyName="EID-CITIZEN-QAA-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.94" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
+ <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:integer">4</saml2:AttributeValue>
+ </saml2:Attribute>
+ <saml2:Attribute FriendlyName="EID-ISSUING-NATION" Name="urn:oid:1.2.40.0.10.2.1.1.261.32" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
+ <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">AT</saml2:AttributeValue>
+ </saml2:Attribute>
+ <saml2:Attribute FriendlyName="EID-SECTOR-FOR-IDENTIFIER" Name="urn:oid:1.2.40.0.10.2.1.1.261.34" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
+ <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">urn:publicid:gv.at:cdid+BF</saml2:AttributeValue>
+ </saml2:Attribute>
+ </saml2:AttributeStatement>
+ </saml2:Assertion>
+</saml2p:Response>
diff --git a/id/server/doc/handbook/protocol/AuthRequest.xml b/id/server/doc/handbook/protocol/AuthRequest.xml
new file mode 100644
index 000000000..9a5c5f481
--- /dev/null
+++ b/id/server/doc/handbook/protocol/AuthRequest.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" AssertionConsumerServiceIndex="1" AttributeConsumingServiceIndex="0" Destination="https://demo.egiz.gv.at/demoportal_moaid-2.0/pvp2/post" ID="_5760e287e5e06dda027d3c59812a2aba" IssueInstant="2014-03-04T13:20:00.861Z" Version="2.0">
+ <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">https://demo.egiz.gv.at/demoportal_demologin/</saml2:Issuer>
+ <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:SignedInfo>
+ <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+ <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
+ <ds:Reference URI="#_5760e287e5e06dda027d3c59812a2aba">
+ <ds:Transforms>
+ <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
+ <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+ </ds:Transforms>
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <ds:DigestValue>6azvvz1bk4wlcEoCEq3DgwYE/FU=</ds:DigestValue>
+ </ds:Reference>
+ </ds:SignedInfo>
+ <ds:SignatureValue>J+en/LY0okRfEW9KEX4sj6TydwHFrtY4PbS1wDvdpAr9v6qY4+PvKHIhfTY/D/DBMJq/bVMJj+y+LgXzyHbLitqEvJkgYeFBrfFLu/6I7zuqucHbip4YAd63Vrg6f5buxrY0S4uJniRGtEhkZDcGJ0Y9Bu3obWXMk7oK/tHtsrvejd27bQOzdZv1ESWiBorlTVPzkfvS13jNsIyeWOuQ/Zv0FKn9RenqvbIVWnG3xKiSEcKT4VaosDdvZX35wxEYh3Rk84ZySDdp502vCvpOjSkc64s6ZiqZcmwwpSNb3+uMwvUNF+gH7mAYs1FXit9/UaGyL30qXgEc+TUZd2o/iA==</ds:SignatureValue>
+ <ds:KeyInfo>
+ <ds:KeyValue>
+ <ds:RSAKeyValue>
+ <ds:Modulus>nEPzKMh3TovnfBnTyv+TMYFsGep8Uil7iNbfVyfLoBfqRdeGDOk4es2qWkgB6az+kM/9Js2H06m4
+pjEY7/RIjd0lMWqgi8eqdjilMmbFQykkYYQhlZbvi8KqoBcCKzj5N3GY4qh8A5qN4y85Q3sZj23T
+iiIY1rphE+ZTOHCm6CKeRso9jj409YHP1xAXfPvtIYx2TA1uuagxOmL75OC/hr7gcUm0tmuKiSeq
++TO4VZw2Q7K7YESZ1WkiBoG2i4cHdcBFKnVrGNtyxl6UkjWxXRJSU9aNLs5QxsE6iFwCvFoIO+IU
+cVWxfFHqOGbRtAcRUb4fk+KFHE2o1DLmfwZaUQ==</ds:Modulus>
+ <ds:Exponent>AQAB</ds:Exponent>
+ </ds:RSAKeyValue>
+ </ds:KeyValue>
+ </ds:KeyInfo>
+ </ds:Signature>
+ <saml2:Subject xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
+ <saml2:NameID>https://demo.egiz.gv.at/demoportal_demologin/</saml2:NameID>
+ </saml2:Subject>
+ <saml2p:NameIDPolicy AllowCreate="true" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"/>
+ <saml2p:RequestedAuthnContext>
+ <saml2:AuthnContextClassRef xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">http://www.stork.gov.eu/1.0/citizenQAALevel/4</saml2:AuthnContextClassRef>
+ </saml2p:RequestedAuthnContext>
+</saml2p:AuthnRequest>
diff --git a/id/server/doc/handbook/protocol/idp_metadata.xml b/id/server/doc/handbook/protocol/idp_metadata.xml
new file mode 100644
index 000000000..ff8a2cdf1
--- /dev/null
+++ b/id/server/doc/handbook/protocol/idp_metadata.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<md:EntitiesDescriptor ID="_b8d2c4cbb05444174815ce5f407e56d4" Name="MOA-ID 2.0 Demo IDP (Version: 1.9.98-SNAPSHOT)" validUntil="2014-03-05T11:49:47.300Z">
+ <ds:Signature>
+ <ds:SignedInfo>
+ <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+ <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
+ <ds:Reference URI="#_b8d2c4cbb05444174815ce5f407e56d4">
+ <ds:Transforms>
+ <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
+ <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+ </ds:Transforms>
+ <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+ <ds:DigestValue>TDy0AH/6p/9B1XhpoisAD3Rwx3fzQt75+tD+rvmA1ro=</ds:DigestValue>
+ </ds:Reference>
+ </ds:SignedInfo>
+ <ds:SignatureValue>QC+UmPuj/8cmpjyDtprXMz7bEZ3a5bJQT4QgJ3bkZ5sHfNR5u3NvYLdZbWwrzKiruDPdItYghTnXIv3fULBjR8j/51nOjgHQPzk8oz9MeJVFtH99AxLYwkYRk2bl1ZiPc5gZJOoyf0uF5nO+F9oJFV0CD91QVEBAKmnlGpED4s53EVojKFrXxbQUNEmNrHXq0o+iIIZnKUb+PDDjqr/IZoDmTYswsld7tv5+PZT6MyQADVHYfuU6DjY98vFCAFeBDyw7BY8dplFuUzqzvQ2AEF3vY+1lF2Xet6in9pjly3OZq+9greFkpcTZoyIBql+jS6qjf5WD51CjTm76xWQsRg==</ds:SignatureValue>
+ </ds:Signature>
+ <md:EntityDescriptor entityID="https://demo.egiz.gv.at/demoportal_moaid-2.0" validUntil="2014-03-28T11:49:47.300Z">
+ <md:IDPSSODescriptor WantAuthnRequestsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
+ <md:KeyDescriptor use="signing">
+ <ds:KeyInfo>
+ <ds:KeyValue>
+ <ds:RSAKeyValue>
+ <ds:Modulus>xRE83dJy1dj+KVBp5Syo91fjGeG1MmJDSuTZ5MwdDzvIZrbK3YPh0jbJz4lOSrw9urRacavZX4m2
+XAKfSRxaowP3GqTh3Ew4WJE7yXEnWiic7bUz8uMIr020bsvqHCvY48+oPARbz/cEOf5NgMBWqo9E
+nibdIyU5+AmfFzDaMwNocJEANoXrjLTpduCHvT0Qt/wH+7rVdgjX1djMrBhyMWs7GQyIBRfuf58m
+8kdcoiMSm9AWA4d4GzXch+bi1QRzj+Ib80DeWdcXP3Hc6pcyp/+L+hya2jZ9NMS8yup6xuoAeh7w
+6JNpfE9QnO3/CPrDZTtmjPK2OIRkhgn4Yi+iBQ==</ds:Modulus>
+ <ds:Exponent>AQAB</ds:Exponent>
+ </ds:RSAKeyValue>
+ </ds:KeyValue>
+ <ds:X509Data>
+ <ds:X509Certificate>MIIEFTCCAv2gAwIBAgIJAI/HXXgQpJtFMA0GCSqGSIb3DQEBCwUAMGQxCzAJBgNVBAYTAkFUMRMw
+EQYDVQQIEwpTb21lLVN0YXRlMQ0wCwYDVQQHEwRHcmF6MQ0wCwYDVQQKEwRFR0laMSIwIAYDVQQD
+ExlNT0EtSUQgSURQIChUZXN0LVZlcnNpb24pMB4XDTE0MDEyMTA4NDAxOFoXDTE1MDEyMTA4NDAx
+OFowZDELMAkGA1UEBhMCQVQxEzARBgNVBAgTClNvbWUtU3RhdGUxDTALBgNVBAcTBEdyYXoxDTAL
+BgNVBAoTBEVHSVoxIjAgBgNVBAMTGU1PQS1JRCBJRFAgKFRlc3QtVmVyc2lvbikwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFETzd0nLV2P4pUGnlLKj3V+MZ4bUyYkNK5NnkzB0PO8hm
+tsrdg+HSNsnPiU5KvD26tFpxq9lfibZcAp9JHFqjA/capOHcTDhYkTvJcSdaKJzttTPy4wivTbRu
+y+ocK9jjz6g8BFvP9wQ5/k2AwFaqj0SeJt0jJTn4CZ8XMNozA2hwkQA2heuMtOl24Ie9PRC3/Af7
+utV2CNfV2MysGHIxazsZDIgFF+5/nybyR1yiIxKb0BYDh3gbNdyH5uLVBHOP4hvzQN5Z1xc/cdzq
+lzKn/4v6HJraNn00xLzK6nrG6gB6HvDok2l8T1Cc7f8I+sNlO2aM8rY4hGSGCfhiL6IFAgMBAAGj
+gckwgcYwHQYDVR0OBBYEFKG3LzuPtAGCXUPTw3fo9dtsS9wWMIGWBgNVHSMEgY4wgYuAFKG3LzuP
+tAGCXUPTw3fo9dtsS9wWoWikZjBkMQswCQYDVQQGEwJBVDETMBEGA1UECBMKU29tZS1TdGF0ZTEN
+MAsGA1UEBxMER3JhejENMAsGA1UEChMERUdJWjEiMCAGA1UEAxMZTU9BLUlEIElEUCAoVGVzdC1W
+ZXJzaW9uKYIJAI/HXXgQpJtFMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAME3wzEi
+UAcF2pCDtMMJzX4IDhSkWNuvWtSMMy8Vgtcc2t570teIKh+qNKQWZyX3QFVE6ovDABg3ZUhn780l
+G4/t6aMOUEeGg4udl7l0QRBRbdd+9oc0Aw5dQqku02AQ6wQd695PLj+F0GeA7cdef90aLPu6Rwa5
+z5BiKpReJZoul3NpjQXz7A1IslZOlIhEDcFUlBSn/+QfLOeNDKurvPT0OzUGSGfrv0AoniNHc/fz
+lfyRmgFbzAVHedU5cIxcE0yHtEKFjFSVwtGng9rTJpoOoY4pvGvAHlw6GEgO+HwFukPDtnvY8vi/
+cfmNJhb06H+6mmHz929Bk4HuHoQj8X8=</ds:X509Certificate>
+ </ds:X509Data>
+ </ds:KeyInfo>
+ </md:KeyDescriptor>
+ <md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>
+ <md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
+ <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
+ <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://demo.egiz.gv.at/demoportal_moaid-2.0/pvp2/post"/>
+ <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://demo.egiz.gv.at/demoportal_moaid-2.0/pvp2/redirect"/>
+ <saml2:Attribute FriendlyName="EID-ISSUING-NATION" Name="urn:oid:1.2.40.0.10.2.1.1.261.32" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="pseudonym" Name="http://www.stork.gov.eu/1.0/pseudonym" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="fiscalNumber" Name="http://www.stork.gov.eu/1.0/fiscalNumber" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="age" Name="http://www.stork.gov.eu/1.0/age" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="EID-IDENTITY-LINK" Name="urn:oid:1.2.40.0.10.2.1.1.261.38" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="canonicalResidenceAddress" Name="http://www.stork.gov.eu/1.0/canonicalResidenceAddress" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="EID-SOURCE-PIN" Name="urn:oid:1.2.40.0.10.2.1.1.261.36" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="PVP-VERSION" Name="urn:oid:1.2.40.0.10.2.1.1.261.10" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="EID-SECTOR-FOR-IDENTIFIER" Name="urn:oid:1.2.40.0.10.2.1.1.261.34" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="GIVEN-NAME" Name="urn:oid:2.5.4.42" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="nationalityCode" Name="http://www.stork.gov.eu/1.0/nationalityCode" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="textResidenceAddress" Name="http://www.stork.gov.eu/1.0/textResidenceAddress" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="countryCodeOfBirth" Name="http://www.stork.gov.eu/1.0/countryCodeOfBirth" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="MANDATOR-NATURAL-PERSON-GIVEN-NAME" Name="urn:oid:1.2.40.0.10.2.1.1.261.78" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="MANDATE-FULL-MANDATE" Name="urn:oid:1.2.40.0.10.2.1.1.261.92" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="residencePermit" Name="http://www.stork.gov.eu/1.0/residencePermit" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="EID-CITIZEN-QAA-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.94" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="MANDATOR-LEGAL-PERSON-SOURCE-PIN-TYPE" Name="urn:oid:1.2.40.0.10.2.1.1.261.76" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="isAgeOver" Name="http://www.stork.gov.eu/1.0/isAgeOver" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="EID-STORK-TOKEN" Name="urn:oid:1.2.40.0.10.2.1.1.261.96" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="MANDATOR-NATURAL-PERSON-SOURCE-PIN" Name="urn:oid:1.2.40.0.10.2.1.1.261.70" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="MANDATOR-NATURAL-PERSON-BPK" Name="urn:oid:1.2.40.0.10.2.1.1.261.98" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="BIRTHDATE" Name="urn:oid:1.2.40.0.10.2.1.1.55" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="title" Name="http://www.stork.gov.eu/1.0/title" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="PRINCIPAL-NAME" Name="urn:oid:1.2.40.0.10.2.1.1.261.20" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="MANDATE-REFERENCE-VALUE" Name="urn:oid:1.2.40.0.10.2.1.1.261.90" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="BPK" Name="urn:oid:1.2.40.0.10.2.1.1.149" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="adoptedFamilyName" Name="http://www.stork.gov.eu/1.0/adoptedFamilyName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="MANDATOR-LEGAL-PERSON-SOURCE-PIN" Name="urn:oid:1.2.40.0.10.2.1.1.261.100" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="MANDATOR-PROF-REP-DESCRIPTION" Name="urn:oid:1.2.40.0.10.2.1.1.261.88" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="MANDATOR-NATURAL-PERSON-SOURCE-PIN-TYPE" Name="urn:oid:1.2.40.0.10.2.1.1.261.102" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="EID-SOURCE-PIN-TYPE" Name="urn:oid:1.2.40.0.10.2.1.1.261.104" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="MANDATE-TYPE" Name="urn:oid:1.2.40.0.10.2.1.1.261.68" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="maritalStatus" Name="http://www.stork.gov.eu/1.0/maritalStatus" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="EID-SIGNER-CERTIFICATE" Name="urn:oid:1.2.40.0.10.2.1.1.261.66" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="inheritedFamilyName" Name="http://www.stork.gov.eu/1.0/inheritedFamilyName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="EID-CCS-URL" Name="urn:oid:1.2.40.0.10.2.1.1.261.64" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="MANDATOR-NATURAL-PERSON-BIRTHDATE" Name="urn:oid:1.2.40.0.10.2.1.1.261.82" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="EID-AUTH-BLOCK" Name="urn:oid:1.2.40.0.10.2.1.1.261.62" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="MANDATOR-NATURAL-PERSON-FAMILY-NAME" Name="urn:oid:1.2.40.0.10.2.1.1.261.80" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="gender" Name="http://www.stork.gov.eu/1.0/gender" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="MANDATOR-PROF-REP-OID" Name="urn:oid:1.2.40.0.10.2.1.1.261.86" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ <saml2:Attribute FriendlyName="MANDATOR-LEGAL-PERSON-FULL-NAME" Name="urn:oid:1.2.40.0.10.2.1.1.261.84" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/>
+ </md:IDPSSODescriptor>
+ <md:Organization>
+ <md:OrganizationName xml:lang="de">EGIZ</md:OrganizationName>
+ <md:OrganizationDisplayName xml:lang="de">E-Government Innovationszentrum</md:OrganizationDisplayName>
+ <md:OrganizationURL xml:lang="de">http://www.egiz.gv.at</md:OrganizationURL>
+ </md:Organization>
+ <md:ContactPerson contactType="technical">
+ <md:Company>E-Government Innovationszentrum</md:Company>
+ <md:GivenName>Lenz</md:GivenName>
+ <md:SurName>Thomas</md:SurName>
+ <md:EmailAddress>thomas.lenz@egiz.gv.at</md:EmailAddress>
+ </md:ContactPerson>
+ </md:EntityDescriptor>
+</md:EntitiesDescriptor>
diff --git a/id/server/doc/handbook/protocol/openIDconnect_sequenz.png b/id/server/doc/handbook/protocol/openIDconnect_sequenz.png
index 47b8f2784..2faff33ed 100644
--- a/id/server/doc/handbook/protocol/openIDconnect_sequenz.png
+++ b/id/server/doc/handbook/protocol/openIDconnect_sequenz.png
Binary files differ
diff --git a/id/server/doc/handbook/protocol/protocol.html b/id/server/doc/handbook/protocol/protocol.html
index bd6893af0..f75888f22 100644
--- a/id/server/doc/handbook/protocol/protocol.html
+++ b/id/server/doc/handbook/protocol/protocol.html
@@ -32,10 +32,447 @@
<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 &Uuml;bersicht der Zugangspunkte</h2>
+ <p>In diesem Abschnitt sind die Zugangspunkte der vom Modul MOA-ID-Auth unterst&uuml;tzten Protokolle kurz zusammengefasst. Eine detailierte Beschreibung der einzelnen Protokolle finden Sie in den anschlie&szlig;enden Unterkapiteln. </p>
+ <table width="1247" border="1">
+ <tr>
+ <th width="164" scope="col">Protokoll</th>
+ <th width="168" scope="col">Requesttyp</th>
+ <th width="893" scope="col">URL</th>
+ </tr>
+ <tr>
+ <td><a href="#pvp21">PVP 2.1</a></td>
+ <td>Metadaten</td>
+ <td>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/pvp2/metadata</td>
+ </tr>
+ <tr>
+ <td><p><a href="#pvp21">PVP 2.1</a></p></td>
+ <td>Authentifizierungsrequest <br>
+ POST Binding</td>
+ <td>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/pvp2/post</td>
+ </tr>
+ <tr>
+ <td><p><a href="#pvp21">PVP 2.1</a></p></td>
+ <td>Authentifizierungsrequest <br>
+Redirect Binding</td>
+ <td>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/pvp2/redirect</td>
+ </tr>
+ <tr>
+ <td><a href="#openid">OpenID Connect</a></td>
+ <td>Authentifizierungsrequest <br>
+ (AuthCode-Request)</td>
+ <td>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/oauth2/auth</td>
+ </tr>
+ <tr>
+ <td><a href="#openid">OpenID Connect</a></td>
+ <td><p>AccessToken-Request</p></td>
+ <td>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/oauth2/token</td>
+ </tr>
+ <tr>
+ <td><a href="#saml1">SAML 1</a></td>
+ <td>Authentifizierungsrequest</td>
+ <td><p>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/StartAuthentication</p></td>
+ </tr>
+ <tr>
+ <td><a href="#saml1">SAML 1</a></td>
+ <td><p>GetAuthenticationData</p></td>
+ <td><p>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/services/GetAuthenticationData</p>
+ <p>http://&lt;host&gt;:&lt;port&gt;/moa-id-auth/services/GetAuthenticationData</p></td>
+ </tr>
+ </table>
+ <h2><a name="allgemeines_attribute" id="allgemeines_zugangspunkte2"></a>1.2 &Uuml;bersicht der m&ouml;glichen Attribute</h2>
+ <p>Die nachfolgende Tabelle beinhaltet eine Liste aller Attribute die vom Modul MOA-ID-Auth an die Online-Applikation zur&uuml;ckgeliefert werden k&ouml;nnen, sofern diese nach der Authentifizierung zur Verf&uuml;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">
+ <tr>
+ <th colspan="4" align="center" valign="middle" scope="col">Protokolle</th>
+ <th width="518" rowspan="3" scope="col">Beschreibung</th>
+ </tr>
+ <tr>
+ <th width="254" rowspan="2" scope="col">PVP 2.1</th>
+ <th colspan="2" scope="col">OpenID Connect</th>
+ <th width="219" rowspan="2" scope="col">SAML 1</th>
+ </tr>
+ <tr>
+ <th width="169" scope="col">Name</th>
+ <th width="53" scope="col">Profil</th>
+ </tr>
+ <tr>
+ <td>urn:oid:1.2.40.0.10.2.1.1.149</td>
+ <td>BPK</td>
+ <td align="center">eID</td>
+ <td>&nbsp;</td>
+ <td><p>Bereichsspezifisches Personenkennzeichen (bPK / wbPK)</p>
+ <p><strong>Hinweis:</strong> Der Syntax f&uuml;r dieses Attribut ist <em>bPK-value := (BEREICH &quot;:&quot; bPK)</em> wobei unter <em>Bereich</em> der &ouml;ffentliche Bereich (Target) der Online-Applikation oder die Stammzahl des Auftraggebers bei Anwendungs-verantwortlichen aus der Privatwirtschaft angegeben wird.</p></td>
+ </tr>
+ <tr>
+ <td><p>urn:oid:2.5.4.42</p></td>
+ <td>given_name</td>
+ <td align="center">profile</td>
+ <td>&nbsp;</td>
+ <td>Vorname</td>
+ </tr>
+ <tr>
+ <td><p>urn:oid:1.2.40.0.10.2.1.1.261.20</p></td>
+ <td>family_name</td>
+ <td align="center">profile</td>
+ <td>&nbsp;</td>
+ <td>Familienname</td>
+ </tr>
+ <tr>
+ <td>urn:oid:1.2.40.0.10.2.1.1.55</td>
+ <td>birthdate</td>
+ <td align="center">profile</td>
+ <td>&nbsp;</td>
+ <td>Geburtsdatum im Format JJJJ-MM-TT</td>
+ </tr>
+ <tr>
+ <td>urn:oid:1.2.40.0.10.2.1.1.261.64</td>
+ <td>EID-CCS-URL</td>
+ <td align="center">eID</td>
+ <td>&nbsp;</td>
+ <td>URL auf die B&uuml;rgerkartenumgebung die f&uuml;r die Authentifizierung verwendet wurde. Im Falle einer Anmeldung mittels STORK steht dieses Attribut NICHT zur Verf&uuml;gung.</td>
+ </tr>
+ <tr>
+ <td>urn:oid:1.2.40.0.10.2.1.1.261.94</td>
+ <td>EID-CITIZEN-QAA-LEVEL</td>
+ <td align="center">eID</td>
+ <td>&nbsp;</td>
+ <td>Authentifizierungslevel des B&uuml;rgers</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.32</td>
+ <td>EID-ISSUING-NATION</td>
+ <td align="center">eID</td>
+ <td>&nbsp;</td>
+ <td>Landescode gem. ISO-3166 ALPHA-2</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.34</td>
+ <td>EID-SECTOR-FOR-IDENTIFIER</td>
+ <td align="center">eID</td>
+ <td>&nbsp;</td>
+ <td>Bereich f&uuml;r den die bPK / wbPK berechnet wurde.</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.62</td>
+ <td>EID-AUTH-BLOCK</td>
+ <td align="center">eID</td>
+ <td>&nbsp;</td>
+ <td>Base64 kodierte Signatur die w&auml;hrend des Authentifizierungsdaten vom Benutzer erzeugt wurde.</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.66</td>
+ <td>EID-SIGNER-CERTIFICATE</td>
+ <td align="center">eID</td>
+ <td>&nbsp;</td>
+ <td>Base64 kodiertes Zertifikat, dass f&uuml;r die Anmeldung verwendet wurde.</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.36</td>
+ <td>EID-SOURCE-PIN</td>
+ <td align="center">eID_gov</td>
+ <td>&nbsp;</td>
+ <td><p>Stammzahl der nat&uuml;rlichen Person</p>
+ <p><strong>Hinweis:</strong> Dieses Attribut steht nur zur Verf&uuml;gung wenn die Online-Applikation alle <a href="../config/config.html#konfigurationsparameter_oa_general_public">Anforderungen an eine Applikation aus dem &ouml;ffentlichen Bereich</a> erf&uuml;llt.</p></td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid: 1.2.40.0.10.2.1.1.261.104</td>
+ <td>EID-SOURCE-PIN-TYPE</td>
+ <td align="center">eID_gov</td>
+ <td>&nbsp;</td>
+ <td><p>Bereich der Stammzahl, wobei aktuell nur ein Bereich existiert.</p>
+ <p><strong>Hinweis:</strong> Dieses Attribut steht nur zur Verf&uuml;gung wenn die Online-Applikation alle <a href="../config/config.html#konfigurationsparameter_oa_general_public">Anforderungen an eine Applikation aus dem &ouml;ffentlichen Bereich</a> erf&uuml;llt.</p></td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.38</td>
+ <td>EID-IDENTITY-LINK</td>
+ <td align="center">eID_gov</td>
+ <td>&nbsp;</td>
+ <td><p>Gesamte Personenbindung in BASE64 kodiert.</p>
+ <p><strong>Hinweis:</strong> Im Falle einer privatwirtschaftlichen Applikation ist die Stammzahl durch die wbPK ersetzt.</p></td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.68</td>
+ <td>MANDATE-TYPE</td>
+ <td align="center">mandate</td>
+ <td>&nbsp;</td>
+ <td>Bezeichnung des verwendeten Vollmachten-Profils.</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.102</td>
+ <td>MANDATOR-NATURAL-PERSON-SOURCE-PIN-TYPE</td>
+ <td align="center">mandate</td>
+ <td>&nbsp;</td>
+ <td>Bereich der Stammzahl der vertretenen nat&uuml;rlichen Person, wobei aktuell nur ein Bereich existiert.</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.70</td>
+ <td>MANDATOR-NATURAL-PERSON-SOURCE-PIN</td>
+ <td align="center">mandate</td>
+ <td>&nbsp;</td>
+ <td>Stammzahl der nat&uuml;rlichen Person, f&uuml;r die Vollmachts- bzw. Vertretungsbe-fugnisse ausge&uuml;bt werden.</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.76</td>
+ <td>MANDATOR-LEGAL-PERSON-SOURCE-PIN-TYPE</td>
+ <td align="center">mandate</td>
+ <td>&nbsp;</td>
+ <td>Gibt an, um welche Art der Stammzahl einer vertretenen juristischen Person es sich handelt.</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.100</td>
+ <td>MANDATOR-LEGAL-PERSON-SOURCE-PIN</td>
+ <td align="center">mandate</td>
+ <td>&nbsp;</td>
+ <td>Stammzahl der juristischen Person, f&uuml;r die Vollmachts- bzw. Vertretungsbe-fugnisse ausge&uuml;bt werden.</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.98</td>
+ <td>MANDATOR-NATURAL-PERSON-BPK</td>
+ <td align="center">mandate</td>
+ <td>&nbsp;</td>
+ <td>Bereichsspezifisches Personenkennzeichen des Vollmachtgebers</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.78</td>
+ <td>MANDATOR-NATURAL-PERSON-GIVEN-NAME</td>
+ <td align="center">mandate</td>
+ <td>&nbsp;</td>
+ <td>Vorname(n) der nat&uuml;rlichen Person, die die Vollmacht erteilt hat, bzw. die vertreten wird.</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.80</td>
+ <td>MANDATOR-NATURAL-PERSON-FAMILY-NAME</td>
+ <td align="center">mandate</td>
+ <td>&nbsp;</td>
+ <td>Nachname der Person, die die Vollmacht erteilt hat, bzw. die vertreten wird.</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.82</td>
+ <td>MANDATOR-NATURAL-PERSON-BIRTHDATE</td>
+ <td align="center">mandate</td>
+ <td>&nbsp;</td>
+ <td>Geburtsdatum der Person, die die Vollmacht erteilt hat, bzw. die vertreten wird im Format JJJJ-MM-TT</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.84</td>
+ <td>MANDATOR-LEGAL-PERSON-FULL-NAME</td>
+ <td align="center">mandate</td>
+ <td>&nbsp;</td>
+ <td>Name der juristischen Person bzw. Personenmehrheit gem&auml;&szlig; zugrundelie-gendem Register.</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.86</td>
+ <td>MANDATE-PROF-REP-OID</td>
+ <td align="center">mandate</td>
+ <td>&nbsp;</td>
+ <td>Object Identifiern (OID) zur Kennzeichnung von berufsm&auml;&szlig;igen ParteienvertreterInnen bzw. OrganwalterInnen.</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.88</td>
+ <td>MANDATE-PROF-REP-DESCRIPTION</td>
+ <td align="center">mandate</td>
+ <td>&nbsp;</td>
+ <td>Textuelle Beschreibung der Eigenschaft als berufsm&auml;&szlig;iger ParteienvertreterIn.</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.90</td>
+ <td>MANDATE-REFERENCE-VALUE</td>
+ <td align="center">mandate</td>
+ <td>&nbsp;</td>
+ <td>Die im Rahmen einer elektronischen Vollmachtserstellung generierte Transaktionsnummer.</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.92</td>
+ <td>MANDATE-FULL-MANDATE</td>
+ <td align="center">mandate</td>
+ <td>&nbsp;</td>
+ <td>Base64 kodierte Vollmacht im XML Format gem&auml;&szlig; Vollmachten-Spezifikation.</td>
+ </tr>
+ <tr>
+ <td height="23">urn:oid:1.2.40.0.10.2.1.1.261.96</td>
+ <td>EID-STORK-TOKEN</td>
+ <td align="center">stork</td>
+ <td>&nbsp;</td>
+ <td>Beinhaltet die komplette Response Message eines STORK Providers im Base64-Format.</td>
+ </tr>
+ <tr>
+ <td height="23">http://www.stork.gov.eu/1.0/<br>
+ inheritedFamilyName</td>
+ <td>inheritedFamilyName</td>
+ <td align="center">stork</td>
+ <td>&nbsp;</td>
+ <td><p>Vererbter Familienname</p>
+ <strong>Hinweis:</strong> Dieses Attribut steht nur bei einer Anmeldung mittels STORK zur Verf&uuml;gung.</td>
+ </tr>
+ <tr>
+ <td height="23">http://www.stork.gov.eu/1.0/<br>
+ adoptedFamilyName</td>
+ <td>adoptedFamilyName</td>
+ <td align="center">stork</td>
+ <td>&nbsp;</td>
+ <td><p>Angenommener Familienname</p>
+ <p><strong>Hinweis:</strong> Dieses Attribut steht nur bei einer Anmeldung mittels STORK zur Verf&uuml;gung.</p></td>
+ </tr>
+ <tr>
+ <td height="23">http://www.stork.gov.eu/1.0/<br>
+ gender</td>
+ <td>gender</td>
+ <td align="center">stork</td>
+ <td>&nbsp;</td>
+ <td><p>Geschlecht</p>
+ <p><strong>Hinweis:</strong> Dieses Attribut steht nur bei einer Anmeldung mittels STORK zur Verf&uuml;gung.</p></td>
+ </tr>
+ <tr>
+ <td height="23">http://www.stork.gov.eu/1.0/<br>
+ countryCodeOfBirth</td>
+ <td>countryCodeOfBirth</td>
+ <td align="center">stork</td>
+ <td>&nbsp;</td>
+ <td><p>Geburtsland</p>
+ <p><strong>Hinweis:</strong> Dieses Attribut steht nur bei einer Anmeldung mittels STORK zur Verf&uuml;gung.</p></td>
+ </tr>
+ <tr>
+ <td height="23">http://www.stork.gov.eu/1.0/<br>
+ nationalityCode</td>
+ <td>nationalityCode</td>
+ <td align="center">stork</td>
+ <td>&nbsp;</td>
+ <td><p>Nationalit&auml;t</p>
+ <p><strong>Hinweis:</strong> Dieses Attribut steht nur bei einer Anmeldung mittels STORK zur Verf&uuml;gung.</p></td>
+ </tr>
+ <tr>
+ <td height="23">http://www.stork.gov.eu/1.0/<br>
+ maritalStatus</td>
+ <td>maritalStatus</td>
+ <td align="center">stork</td>
+ <td>&nbsp;</td>
+ <td><p>Familienstand</p>
+ <p><strong>Hinweis:</strong> Dieses Attribut steht nur bei einer Anmeldung mittels STORK zur Verf&uuml;gung.</p></td>
+ </tr>
+ <tr>
+ <td height="23">http://www.stork.gov.eu/1.0/<br>
+ textResidenceAddress</td>
+ <td>textResidenceAddress</td>
+ <td align="center">stork</td>
+ <td>&nbsp;</td>
+ <td><p>Wohnadresse in Textform</p>
+ <p><strong>Hinweis:</strong> Dieses Attribut steht nur bei einer Anmeldung mittels STORK zur Verf&uuml;gung.</p></td>
+ </tr>
+ <tr>
+ <td height="23">http://www.stork.gov.eu/1.0/<br>
+ canonicalResidenceAddress</td>
+ <td>canonicalResidenceAddress</td>
+ <td align="center">stork</td>
+ <td>&nbsp;</td>
+ <td><p>Anerkannte Wohnadresse</p>
+ <p><strong>Hinweis:</strong> Dieses Attribut steht nur bei einer Anmeldung mittels STORK zur Verf&uuml;gung.</p></td>
+ </tr>
+ <tr>
+ <td height="23">http://www.stork.gov.eu/1.0/<br>
+ title</td>
+ <td>title</td>
+ <td align="center">stork</td>
+ <td>&nbsp;</td>
+ <td><p>Titel</p>
+ <p><strong>Hinweis:</strong> Dieses Attribut steht nur bei einer Anmeldung mittels STORK zur Verf&uuml;gung.</p></td>
+ </tr>
+ <tr>
+ <td height="23">http://www.stork.gov.eu/1.0/<br>
+ residencePermit</td>
+ <td>residencePermit</td>
+ <td align="center">stork</td>
+ <td>&nbsp;</td>
+ <td><p>Aufenthaltsbewilligung</p>
+ <p><strong>Hinweis:</strong> Dieses Attribut steht nur bei einer Anmeldung mittels STORK zur Verf&uuml;gung.</p></td>
+ </tr>
+ <tr>
+ <td height="23">http://www.stork.gov.eu/1.0/<br>
+ pseudonym</td>
+ <td>pseudonym</td>
+ <td align="center">stork</td>
+ <td>&nbsp;</td>
+ <td><p>Pseudonym</p>
+ <p><strong>Hinweis:</strong> Dieses Attribut steht nur bei einer Anmeldung mittels STORK zur Verf&uuml;gung.</p></td>
+ </tr>
+ <tr>
+ <td height="23">http://www.stork.gov.eu/1.0/<br>
+ age</td>
+ <td>age</td>
+ <td align="center">stork</td>
+ <td>&nbsp;</td>
+ <td><p>Alter</p>
+ <p><strong>Hinweis:</strong> Dieses Attribut steht nur bei einer Anmeldung mittels STORK zur Verf&uuml;gung.</p></td>
+ </tr>
+ <tr>
+ <td height="23">http://www.stork.gov.eu/1.0/<br>
+ isAgeOver</td>
+ <td>isAgeOver</td>
+ <td align="center">stork</td>
+ <td>&nbsp;</td>
+ <td><p>Mindestalter erreicht</p>
+ <p><strong>Hinweis:</strong> Dieses Attribut steht nur bei einer Anmeldung mittels STORK zur Verf&uuml;gung.</p></td>
+ </tr>
+ <tr>
+ <td height="23">http://www.stork.gov.eu/1.0/<br>
+ fiscalNumber</td>
+ <td>fiscalNumber</td>
+ <td align="center">stork</td>
+ <td>&nbsp;</td>
+ <td><p>Steuernummer</p>
+ <p><strong>Hinweis:</strong> Dieses Attribut steht nur bei einer Anmeldung mittels STORK zur Verf&uuml;gung.</p></td>
+ </tr>
+ </table>
+ <p>&nbsp;</p>
<h1><a name="pvp21"></a>2 PVP 2.1</h1>
-
-
+<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&uuml;r die Authentifizierung von Benutzern mit Webbrowser. Dadurch wird die direkte Kommunikation des Browsers mit der Anwendung erm&ouml;glicht, was in Anwendungsf&auml;llen notwendig ist, wo Anwendungen nicht kompatibel mit dem Reverse - Proxy - Verfahren sind, datenschutzrechtliche Probleme bestehen oder SAML WebSSO als Industriestandard unterst&uuml;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>
+<p>Die nachfolgende Abbildung zeigt das Sequenzdiagramm eines Anmeldevorgangs mittels PVP 2.1 und des Modules MOA-ID-Auth als Identityprovider. Aus Gr&uuml;nden der &Uuml;bersichtlichkeit wurden die Teile welche die Kommunikation mit der B&uuml;rgerkartenumgebung oder die Vollmachten-Auswahl betreffen bewusst nicht ber&uuml;cksichtigt.</p>
+<p>&nbsp;</p>
+<h2><a name="pvp21_metadata" id="pvp21_metadata"></a>2.2 Metadaten</h2>
+<p>Das Modul MOA-ID-Auth stellt f&uuml;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&auml;t der Metadaten verifizieren k&ouml;nnen. Ein Beispiel f&uuml;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&ouml;nnen unter folgender URL abgerufen werden.</p>
+<pre>http://&lt;host&gt;:&lt;port&gt;/moa-id-auth/pvp2/metadata
+</pre>
+<p>bzw. </p>
+<pre>
+https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/pvp2/metadata
+</pre>
+<p>Wollen Sie f&uuml;r Ihre Online-Applikation PVP 2.1 als Authentifizierungsprotokoll nutzen m&uuml;ssen f&uuml;r jede Online-Applikation Metadaten erstellt und durch den Service Provider signiert werden. Zus&auml;tzlich muss die URL auf die Metadaten und das entsprechende Signaturzertifikat zur Pr&uuml;fung der Signatur in der online-applikationsspezifischen <a href="../config/config.html#konfigurationsparameter_oa_protocol_pvp21">PVP 2.1 Konfiguration</a> von MOA-ID-Auth hinterlegt sein. Ein Beispiel f&uuml;r online-applikationsspezifische Metadaten finden Sie <a href="serviceprovider_metadata.xml">hier</a>.</p>
+<p>Die nachfolgenden Anforderungen an die online-applikationsspezifischen Metadaten .</p>
+<ul>
+ <li>Das XML Attribut <code>entityID</code> im Element <code>md:EntitiesDescriptor/md:EntityDescriptor</code> (siehe <a href="#serviceprovider_metadata.xml">Beispiel</a>) den <a href="../config/config.html#konfigurationsparameter_oa_general">eindeutigen Identifier</a> enth&auml;lt der f&uuml;r diese Online-Applikation bei MOA-ID-Auth hinterlegt ist. </li>
+ <li>Die Metadaten m&uuml;ssen ein Zertifikat zur Pr&uuml;fung der Signatur am Authentifizierungsrequest beinhalten. Hierf&uuml;r muss das XML Element <code>md:EntitiesDescriptor/md:EntityDescriptormd:SPSSODescriptor/md:KeyDescriptor</code> mit dem Attribut <code>use=&quot;signing&quot;</code> vorhanden sein (siehe <a href="#serviceprovider_metadata.xml">Beispiel</a>).</li>
+ <li>Die Metadaten m&uuml;ssen mindestens ein XML Element<br>
+<code>md:EntitiesDescriptor/md:EntityDescriptormd:SPSSODescriptor/md:AssertionConsumerService</code> enthalten welches das gew&uuml;nschte Binding und die URL zur Auslieferung der Assertion beinhaltet. </li>
+ <li>Werden zus&auml;tzlich zum bereichsspezifischen Personenkennzeichen (bPK / wbPK) weitere <a href="#allgemeines_attribute">Attribute</a> durch den Service Provider ben&ouml;tigt m&uuml;ssen diese &uuml;ber die Metadaten angefordert werden. <br>
+ Hierf&uuml;r steht das Element <code>md:EntitiesDescriptor/md:EntityDescriptormd:SPSSODescriptor/md:AttributeConsumingService</code> zur Verf&uuml;gung wobie die als Kindelemente <code>md:RequestedAttribute </code>die einzelnen ben&ouml;tigten Attribute definieren (siehe <a href="#serviceprovider_metadata.xml">Beispiel</a>).</li>
+</ul>
+<p>Zus&auml;tzlich unterst&uuml;tzt das Modul MOA-ID-Auth auch die Verschl&uuml;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=&quot;encryption&quot;</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&uuml;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&uuml;fung der Signatur des Authentifizierungsrequest als auch zur Verschl&uuml;sselung der PVP 2.1 Assertion verwendet.</p>
+<h2><a name="pvp21_binding" id="pvp21_binding"></a>2.3 Zugangspunkte</h2>
+<p>F&uuml;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&uuml;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 &Uuml;bertragung mittels http POST. Hierf&uuml;r stellt MOA-ID-Auth den folgenden Zugangspunkt zur Verf&uuml;gung.</li>
+</ul>
+<pre>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/pvp2/post</pre>
+<ul>
+ <li><strong>Redirect Binding</strong>: In diesem Fall erfolgt die &Uuml;bertragung mittels eines Redirects wobei die Daten als GET Parameter in der URL enthalten sind. Hierf&uuml;r stellt MOA-ID-Auth den folgenden Zugangspunkt zur Verf&uuml;gung.</li>
+</ul>
+<pre>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/pvp2/redirect</pre>
+<p><strong>Hinweis:</strong> Die Zugangspunkte k&ouml;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>
+<p>Der Authentifizierungsrequest wird vom Service Provider erstellt und an das Modul MOA-ID-Auth &uuml;bermittelt. Zur &Uuml;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&uuml;ssen erf&uuml;llt sein.</p>
+<ul>
+ <li>Der Request muss durch den Service Provider signiert sein (sie <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&auml;gt die Signaturpr&uuml;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>Das der Wert des XML Element <code>saml2p:AuthnRequest/saml2:Issuer</code> muss den <a href="../config/config.html#konfigurationsparameter_oa_general">eindeutigen Identifier</a> enthalten der f&uuml;r diese Online-Applikation bei MOA-ID-Auth hinterlegt ist (sie <a href="AuthRequest.xml">Beispiel</a>).</li>
+</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>
+<p>Nach erfolgreicher Authentifizierung antwortet das Modul MOA-ID-Auth mit einer PVP 2.1 Assertion. Zur &Uuml;bertragung der Assertion erfolgt an das in den Metadaten der Online-Applikation angegebene <em>AssertionConsumerService</em> (siehe <a href="#pvp21_metadata">Metadaten</a>). </p>
<h1><a name="openid"></a>3 OpenID Connect </h1>
<p>OpenID Connect ist ein Authentifizierungsprotkoll 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 Protkollen (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="" >Allgemeinen Konfiguration</a> und zur <a href="">online-applikationsspezifischen Konfiguration</a> finden Sie im jeweiligen Abschnitt des Kapitels Konfiguration. TODO!</p>
@@ -44,13 +481,40 @@
<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 Identityprovider. 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>TODO:</p>
-
+<p><img src="openIDconnect_sequenz.png" width="1138" height="705" alt="Sequenzdiagramm OpenID Connect"></p>
+<ol>
+ <li>Der Benutzer verbindet sich zu einem Web-Portal (Service Provider) &uuml;ber das die Online-Applikation erreichtbar ist. Nach der Bet&auml;tigung eines Login-Buttons wird der Anmeldevorgang ausgel&ouml;st.</li>
+ <li>Der Service Provider generiert den <a href="#openid_req_authnreq">AuchCode Request</a> und sendet diesen &uuml;ber den Browser an das Modul MOA-ID-Auth.</li>
+ <li>MOA-ID-Auth validiert den AuthCode Request.</li>
+ <li>MOA-ID-Auth leitet die BenutzerIn oder den Benutzer zur B&uuml;rgerkartenauswahl
+ <ol>
+ <li>Die BenutzerIn oder der Benutzer Authentifiziert sich mit der gew&auml;hlten Methode.</li>
+ </ol>
+ </li>
+ <li>Nach erfolgreicher Authentifizierung erzeugt MOA-ID-Auth die <a href="#openid_req_authnresp">AuthCode Response</a>.
+<ol>
+ <li>Die AuthCode Response wird mittels Redirect an den Service Provider retourniert.</li>
+ </ol>
+ </li>
+ <li>Der Service Provider validiert die AuthCode Response.</li>
+ <li>Der Service Provider generiert den <a href="#openid_req_tokenreq">AccessToken Request</a> und sendet diesen an MOA-ID-Auth zum Abholen der Benutzerdaten.</li>
+ <li>MOA-ID-Auth validiert den AccessToken Request</li>
+ <li>MOA-ID-Auth generiert die <a href="#openid_req_tokenresp">AccessToken Response</a>
+<ol>
+ <li>Retournierung der AccessToken Response an den Service Provider</li>
+ </ol>
+ </li>
+ <li>Validieren der AccessToken Response
+ <ol>
+ <li>Wird die Validierung g&uuml;ltig abgeschlossen kann die BenutzerIn oder der Benutzer am Service Provider angemeldet werden.</li>
+ </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>
<ul>
-<li><b>AuthCode-Request:</b> https://ihr-moa-server/moa-id-auth/oauth2/auth <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> https://ihr-moa-server/moa-id-auth/oauth2/token <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://&lt;host&gt;:&lt;port&gt;/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://&lt;host&gt;:&lt;port&gt;/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>
</ul>
<h2><a name="openid_requests"></a>3.3 Beschreibung der Nachrichten</h2>
@@ -58,18 +522,184 @@
<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 oder können mit dem AuthCode-Request mitgesendet werden, wobei für die Übertragung der Parameter sowohl http GET als auch http POST verwendet werden kann.</p>
-
-
+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">
+ <tr>
+ <th width="115" scope="col">Name</th>
+ <th width="262" scope="col">Beispielwert</th>
+ <th width="848" scope="col">Beschreibung</th>
+ </tr>
+ <tr>
+ <td>client_id</td>
+ <td>https://demo.egiz.gv.at/demoportal-openID_demo</td>
+ <td>Ist der eindeutige Identifikatior f&uuml;r die Online-Applikation. Dieser MUSS mit dem<a href="../config/config.html#konfigurationsparameter_oa_protocol_openIDConnect"> Identifikatior aus der Konfiguration</a> identisch sein.</td>
+ </tr>
+ <tr>
+ <td>response_type</td>
+ <td>code</td>
+ <td><p>R&uuml;ckgabewert des AuthCode Requests.</p>
+ <strong>Hinweis:</strong> Dieser Wert MUSS &quot;code&quot; sein.</td>
+ </tr>
+ <tr>
+ <td>redirect_uri</td>
+ <td>https://demo.egiz.gv.at/demoportal-openID_demo/securearea.action</td>
+ <td>Die Callback-URI der Online-Applikation zu welcher die Callbacks der OAuth 2.0 Request gesendet werden. Dieser MUSS mit der<a href="../config/config.html#konfigurationsparameter_oa_protocol_openIDConnect"> Redirct URL aus der Konfiguration</a> identisch sein.</td>
+ </tr>
+ <tr>
+ <td>state</td>
+ <td>1425782214234</td>
+ <td>Ein von der Online-Applikation generierter Wert welcher in beiden Requests (<a href="#openid_req_authnreq">AuthCode</a> und <a href="#openid_req_tokenreq">Token</a>) gleich sein muss (ein CSRF Token) </td>
+ </tr>
+ <tr>
+ <td>scope</td>
+ <td>openID profile eID</td>
+ <td><p>Definiert welche Authentifizierungsinformationen an die Online-Applikation zur&uuml;ckgeliefert werden. </p>
+ <p>M&ouml;gliche Werte sind: <em>openId, profile, eID, eID_gov, mandate, stork</em> wobei die Werte mittels Leerzeichen kombiniert werden k&ouml;nnen. Der Wert <em>openID</em> muss immer angegeben werden. Der Inhalt der einzelnen Profile, mit Ausnahme des Profiles <em>openID</em>, kann aus der <a href="#allgemeines_attribute">&Uuml;bersicht der m&ouml;glichen Attribute</a> entnommen werden. </p>
+ <ul>
+ <li>openID:
+ <ul>
+ <li>bpk --&gt; Bereichsspezifisches Kennzeichen (bPK / wbPK)</li>
+ <li>iss --&gt; Public URP Prefix der MOA-ID Instanz</li>
+ <li>exp --&gt; Zeitliche G&uuml;ltigkeit</li>
+ <li>iat --&gt; Ausstellungszeitpunkt</li>
+ <li>auth_time --&gt; Authentifizierungszeitpunkt</li>
+ </ul>
+ </li>
+ </ul></td>
+ </tr>
+</table>
+<p>&nbsp;</p>
+<p>Nachfolgend ein Beispiel f&uuml;r einen OpenID Connect Authentifizierungsrequest an das Modul MOA-ID-Auth.</p>
+<pre>&lt;form method=&quot;get&quot; action=&quot;https://demo.egiz.gv.at/demoportal_moaid-2.0/oauth2/auth&quot;&gt;
+ &lt;input type=&quot;hidden&quot; value=&quot;code&quot; name=&quot;response_type&quot;&gt;
+ &lt;input type=&quot;hidden&quot; value=&quot;https://demo.egiz.gv.at/demoportal-openID_demo&quot; name=&quot;client_id&quot;&gt;
+ &lt;input type=&quot;hidden&quot; value=&quot;https://demo.egiz.gv.at/demoportal-openID_demo/securearea.action&quot; name=&quot;redirect_uri&quot;&gt;
+ &lt;input type=&quot;hidden&quot; value=&quot;profile eID eID_gov mandate&quot; name=&quot;scope&quot;&gt;
+ &lt;input type=&quot;hidden&quot; value=&quot;1152547590&quot; name=&quot;state&quot;&gt;
+ &lt;input type=&quot;submit&quot; value=&quot;OpenID Connect login&quot;&gt;
+&lt;/form&gt;</pre>
<h3><a name="openid_req_authnresp"></a>3.2.2 AuthCode Response</h3>
-
+<p>Das Ergebnis des AuthCode Requests wird an die <em>redirect_uri</em> der Online-Applikation gesendet. Die nachfolgenden Parameter werden dabei &uuml;bergeben.</p>
+<table width="1247" border="1">
+ <tr>
+ <th width="115" scope="col">Name</th>
+ <th width="262" scope="col">Beispielwert</th>
+ <th width="848" scope="col">Beschreibung</th>
+ </tr>
+ <tr>
+ <td>state</td>
+ <td>1425782214234</td>
+ <td>Der von der Online-Applikation generierte und im AuthCode Request &uuml;bergebene CSRF Token.</td>
+ </tr>
+ <tr>
+ <td>code</td>
+ <td>4/P7q7W91a-oMsCeLvIaQm6bTrgtp7 </td>
+ <td><p>Ein vom Modul MOA-ID-Auth generierter Wert, welcher beim Abholen des AccessTokens (AccessToken Request) wieder an MOA-ID-Auth &uuml;bergeben werden muss.</p></td>
+ </tr>
+</table>
+<p>&nbsp;</p>
+<p>Nochfolgend ein Beispiel f&uuml;r eine AuthCode Response.</p>
+<pre>https://demo.egiz.gv.at/demoportal-openID_demo/securearea.action?state=1425782214234&amp;code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7 </pre>
<h3><a name="openid_req_tokenreq"></a>3.2.3 AccessToken Request</h3>
+<p>Mit dem AccessToken Request k&ouml;nnen vom Service Provider der Online-Applikation die Anmeldedaten an der MOA-ID-Auth Instanz abgeholt werden. F&uuml;r die Abholung m&uuml;ssen folgende Parameter mit dem AccessToken Request an MOA-ID-Auth &uuml;bertragen werden, wobei f&uuml;r die &Uuml;bertragung der Parameter sowohl http GET als auch http POST verwendet werden kann.</p>
+<table width="1247" border="1">
+ <tr>
+ <th width="115" scope="col">Name</th>
+ <th width="262" scope="col">Beispielwert</th>
+ <th width="848" scope="col">Beschreibung</th>
+ </tr>
+ <tr>
+ <td>grant_type</td>
+ <td>authorization_code</td>
+ <td>Dieser MUSS den Wert &bdquo;authorization_code&ldquo; besitzen.</td>
+ </tr>
+ <tr>
+ <td>code</td>
+ <td>4/P7q7W91a-oMsCeLvIaQm6bTrgtp7</td>
+ <td><p>Dieser Parameter wird in der <a href="#openid_req_authnresp">AuthCode Response</a> an die Online-Applikation (Service Provider) &uuml;bertragen und muss in diesem Request wieder &uuml;bermittelt werden.</p></td>
+ </tr>
+ <tr>
+ <td>redirect_uri</td>
+ <td>https://demo.egiz.gv.at/demoportal-openID_demo/securearea.action</td>
+ <td>Die Callback-URI der Online-Applikation zu welcher die Callbacks der OAuth 2.0 Request gesendet werden. Dieser MUSS mit der<a href="../config/config.html#konfigurationsparameter_oa_protocol_openIDConnect"> Redirct URL aus der Konfiguration</a> identisch sein.</td>
+ </tr>
+ <tr>
+ <td>client_id</td>
+ <td>https://demo.egiz.gv.at/demoportal-openID_demo</td>
+ <td>Ist der eindeutige Identifikatior f&uuml;r die Online-Applikation. Dieser MUSS mit dem<a href="../config/config.html#konfigurationsparameter_oa_protocol_openIDConnect"> Identifikatior aus der Konfiguration</a> identisch sein.</td>
+ </tr>
+ <tr>
+ <td>client_secret</td>
+ <td>0adf1ec7-c2a6-4fd3-897c-456d0fb7b5cc</td>
+ <td>Das Client Password der Online-Applikation. Dieses MUSS mit dem <a href="../config/config.html#konfigurationsparameter_oa_protocol_openIDConnect">Client Password aus der Konfiguration</a> identisch sein.</td>
+ </tr>
+</table>
+<p>&nbsp;</p>
+<p>Nachfolgend ein Beispiel f&uuml;r einen AccessToken Request</p>
+<pre>&lt;form method=&quot;POST&quot; action=&quot;https://demo.egiz.gv.at/demoportal_moaid-2.0/oauth2/token&quot;&gt;
+ &lt;input type=&quot;hidden&quot; value=&quot;authorization_code&quot; name=&quot;grant_type&quot;&gt;
+ &lt;input type=&quot;hidden&quot; value=&quot;https://demo.egiz.gv.at/demoportal-openID_demo&quot; name=&quot;client_id&quot;&gt;
+ &lt;input type=&quot;hidden&quot; value=&quot;https://demo.egiz.gv.at/demoportal-openID_demo/securearea.action&quot; name=&quot;redirect_uri&quot;&gt;
+ &lt;input type=&quot;hidden&quot; value=&quot;0adf1ec7-c2a6-4fd3-897c-456d0fb7b5cc&quot; name=&quot;client_secret&quot;&gt;
+ &lt;input type=&quot;hidden&quot; value=&quot;4/P7q7W91a-oMsCeLvIaQm6bTrgtp7&quot; name=&quot;code&quot;&gt;
+&lt;/form&gt;</pre>
<h3><a name="openid_req_tokenresp"></a>3.2.4 AccessToken Response</h3>
+<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&szlig;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">
+ <tr>
+ <th width="115" scope="col">Name</th>
+ <th width="262" scope="col">Beispielwert</th>
+ <th width="848" scope="col">Beschreibung</th>
+ </tr>
+ <tr>
+ <td>access_token</td>
+ <td>SlAV32hkKG</td>
+ <td><p>Ein AccessToken welches f&uuml;r eine anschlie&szlig;ende Kommunikation mit MOA-ID-Auth verwendet werden kann. </p>
+ <p><strong>Hinweis:</strong> Diese Funktion wird jedoch aktuell nicht unterst&uuml;tzt.</p></td>
+ </tr>
+ <tr>
+ <td>token_type</td>
+ <td>Bearer</td>
+ <td><p>OpenID Connect spezifischer Parameter (Details entnehmen Sie bitte der <a href="#referenzierte_spezifikation">OpenID Connect Spezifikation</a>)</p></td>
+ </tr>
+ <tr>
+ <td>expires_in</td>
+ <td>3600</td>
+ <td>G&uuml;ltigkeitszeitraum der Response (TODO)</td>
+ </tr>
+ <tr>
+ <td>scope</td>
+ <td>openID profile eID</td>
+ <td>Die im AuthCode Request angeforderten Profile.</td>
+ </tr>
+ <tr>
+ <td>id_token</td>
+ <td>eyJhbGciOiJSU.....</td>
+ <td>Dieses Element beinhaltet die eigentlichen Authentifizierungsdaten und ist durch eine JSON Web Signatur signiert.</td>
+ </tr>
+</table>
<p>&nbsp;</p>
+<p>Nachfolgend ein Beispiel f&uuml;r einen AccessToken Response</p>
+<pre>{
+ &quot;access_token&quot;: &quot;SlAV32hkKG&quot;,
+ &quot;token_type&quot;: &quot;Bearer&quot;,
+ &quot;expires_in&quot;: 3600,
+ &quot;scope&quot;: &quot;openid eID&quot;
+ &quot;id_token&quot;: &quot;eyJhbGciOiJSUzI1NiIsImtpZCI6IjFlOWdkazcifQ.ewogImlzc
+ yI6ICJodHRwOi8vc2VydmVyLmV4YW1wbGUuY29tIiwKICJzdWIiOiAiMjQ4Mjg5
+ NzYxMDAxIiwKICJhdWQiOiAiczZCaGRSa3F0MyIsCiAibm9uY2UiOiAibi0wUzZ
+ fV3pBMk1qIiwKICJleHAiOiAxMzExMjgxOTcwLAogImlhdCI6IDEzMTEyODA5Nz
+ AKfQ.ggW8hZ1EuVLuxNuuIJKX_V8a_OMXzR0EHR9R6jgdqrOOF4daGU96Sr_P6q
+ Jp6IcmD3HP99Obi1PRs-cwh3LO-p146waJ8IhehcwL7F09JdijmBqkvPeB2T9CJ
+ NqeGpe-gccMg4vfKjkM8FcGvnzZUN4_KSP0aAp1tOJ1zZwgjxqGByKHiOtX7Tpd
+ QyHE5lcMiKPXfEIQILVq0pc_E2DzL7emopWoaoZTF_m0_N0YzFC6g6EJbOEoRoS
+ K5hoDalrcvRYLSrQAZZKflyuVCyixEoV9GfNQC3_osjzw2PAithfubEEBLuVVk4
+ XUVrWOLrLl0nx7RkKU8NXNHq-rvKMzqg&quot;
+} </pre>
<h1><a name="saml1"></a>3 SAML 1 </h1>
diff --git a/id/server/doc/handbook/protocol/serviceprovider_metadata.xml b/id/server/doc/handbook/protocol/serviceprovider_metadata.xml
new file mode 100644
index 000000000..15e26469c
--- /dev/null
+++ b/id/server/doc/handbook/protocol/serviceprovider_metadata.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<md:EntitiesDescriptor ID="_0cbf225d6ad76137212e9ae278137c91" Name="MOA-ID 2.x Configuration Tool">
+ <ds:Signature>
+ <ds:SignedInfo>
+ <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+ <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
+ <ds:Reference URI="#_0cbf225d6ad76137212e9ae278137c91">
+ <ds:Transforms>
+ <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
+ <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+ </ds:Transforms>
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <ds:DigestValue>xLFVU7fH3+IC84vAuSZTP7+oeGk=</ds:DigestValue>
+ </ds:Reference>
+ </ds:SignedInfo>
+ <ds:SignatureValue>d1GD51DilpbwQdL9BONrhQS9zeydpWw8r/DKp/k5nLDQ6Tpw+OQgqYWvsMcnMgrltJa/4Q326fEf6HdFbLfrHSij8Nfx8i2idJ9JUwpj1R2GE0eo+8NXvJ/1H9Nf0pPjZ35MXQ9bC2fN/HnPalRaJSd9gCk/hW/KtB0r4qODkppz0hHplIKs7kqDnzd7ZT7golGI801N6DwzJ3jW8U26OOhzXtCbTsDdZE5gvA34kH5EDaa9RMx2JIPqBjzvDAE7oylKg2VcQdpJ1xLEi3zOF2kvgTLi6+CLHbQDc1JKcWJ10FC9yATT7poHJOgjoZ8Vt5QZJ12PKJ1NnopwcsvJ4g==</ds:SignatureValue>
+ </ds:Signature>
+ <md:EntityDescriptor entityID="https://demo.egiz.gv.at/moa-id-configuration/">
+ <md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
+ <md:KeyDescriptor use="signing">
+ <ds:KeyInfo>
+ <ds:X509Data>
+ <ds:X509Certificate>MIIDhTCCAm2gAwIBAgIEUflpdjANBgkqhkiG9w0BAQsFADBzMRAwDgYDVQQGEwdVbmtub3duMRAw
+DgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYDVQQKEwdVbmtub3duMRAwDgYD
+VQQLEwdVbmtub3duMRcwFQYDVQQDEw5QVlAgU2FtcGxlIElEUDAeFw0xMzA1MDIwODE5MDlaFw0x
+MzA3MzEwODE5MDlaMHMxEDAOBgNVBAYTB1Vua25vd24xEDAOBgNVBAgTB1Vua25vd24xEDAOBgNV
+BAcTB1Vua25vd24xEDAOBgNVBAoTB1Vua25vd24xEDAOBgNVBAsTB1Vua25vd24xFzAVBgNVBAMT
+DlBWUCBTYW1wbGUgSURQMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmWrWy07+hO2V
+oMeOHpizN3qU2cL2e3EkzAkowmG+OpsR3UpI0dvolRuzaxDPUeANfE913KPempsT3cOKGS5IIBmx
+PgZM1H7EcEPVS2PYimMr1HztBMJMGAdFVFeVFsgdYP4cbwPUs03/E6kVmN7/C+vMyRPMD7i83YL8
+/IHChymZ5aJTsRXUpM0TjQQPBQbnnHVWzjcUJ9z9KataS/KpUUM8iSWk73u/gWOs3vbQLoro80xj
+LsSdXyJ9dVTCTwCpdP5UJPlsNLg1F7AU+OHwem76rezI0JJZhHUMg6v1xWzh8XycI6CizpD6RmkM
+XfICbFD8TR5zcNBieH/yNQeAEwIDAQABoyEwHzAdBgNVHQ4EFgQUoLaHuWuxRrEh37oIQ0GzfDpy
+h4MwDQYJKoZIhvcNAQELBQADggEBAAaAJVSji/OMCUZtSSIYM37go1+JLSamSkkftbkKmMWGBeKj
+i9ndilpFY/Fbslt+lUueOyd5VawWPYorQBksyJH7glmQexMzEbwqPR8t+++Dq5+mj/XjXrYHlPej
+FvCMy5kElxXczIQZmsutGtamreyAMpFMa3T2pU5tuVNwSbe754dOztaX6E92IGZtApKIHm/uLU75
+JQkTWhP9I3DaNX593VYPkeAoYxzaX1ElE2HFs4ELRzMXa0joTaGLyZ6LdLcK1bR3um9OywHWeiab
+xtSAML1SoKfTcmzWCpb0yFhfOUKXyw+SikBAkiQruMK8PcboY9VFrKUSzKHBvnDC4U4=</ds:X509Certificate>
+ </ds:X509Data>
+ </ds:KeyInfo>
+ </md:KeyDescriptor>
+ <md:KeyDescriptor use="encryption">
+ <ds:KeyInfo>
+ <ds:X509Data>
+ <ds:X509Certificate>MIIELTCCAxWgAwIBAgIJALF/kMqjWCxQMA0GCSqGSIb3DQEBCwUAMGwxCzAJBgNVBAYTAkFUMRMw
+EQYDVQQIEwpTb21lLVN0YXRlMQ0wCwYDVQQHEwRHcmF6MQ0wCwYDVQQKEwRFR0laMSowKAYDVQQD
+EyFNT0EtSUQtQ29uZmlndXJhdGlvbiAoRW5jcnlwdGlvbikwHhcNMTQwMTIxMDkzMDIzWhcNMTUw
+MTIxMDkzMDIzWjBsMQswCQYDVQQGEwJBVDETMBEGA1UECBMKU29tZS1TdGF0ZTENMAsGA1UEBxME
+R3JhejENMAsGA1UEChMERUdJWjEqMCgGA1UEAxMhTU9BLUlELUNvbmZpZ3VyYXRpb24gKEVuY3J5
+cHRpb24pMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr+5eXUViI2d/KLqfej29BNeD
+DiDzhWlpAViPconGsEDHrXFNeSd3DTuJKH6x06wrpGfvtTh91ThId0R0hthS82aaKTlW1SgX/Rps
+5VlmiNXQty8/UrrnqAsIO65jbsy41EXTDVrnDbg5WmK2xsowk7d4jUE4cdk3VKu07Kzg9ZiQHz8V
+WMmGGPIXVs87+wgjq68tvo3+Nk5fcKPyV4ff2oc5/muxjavGdAIDJV2E/dDHwM3fbNFXk5OAse2V
+8/vmHCm0bzVOP+V5vNxp1r8myZ914WYFt0WJL4/oyyrerGK6gqGdkLcGfMutaJvBxV+hNIMGLWMc
+6LjCWVARIXvHyQIDAQABo4HRMIHOMB0GA1UdDgQWBBR9aJK1JouIYwcn2ycQUsPv4Q8BaDCBngYD
+VR0jBIGWMIGTgBR9aJK1JouIYwcn2ycQUsPv4Q8BaKFwpG4wbDELMAkGA1UEBhMCQVQxEzARBgNV
+BAgTClNvbWUtU3RhdGUxDTALBgNVBAcTBEdyYXoxDTALBgNVBAoTBEVHSVoxKjAoBgNVBAMTIU1P
+QS1JRC1Db25maWd1cmF0aW9uIChFbmNyeXB0aW9uKYIJALF/kMqjWCxQMAwGA1UdEwQFMAMBAf8w
+DQYJKoZIhvcNAQELBQADggEBAFSMmGNTAhDfoadFz0SrMDLjrPGIGjanbijLTOEURZYJiB4sQxa8
+3H6FNy1zvfzmPnrdbFr15w/6KgF9YP/0/JMUalrhm1JKWBY4TqJcG2BumAUcLSdsHOsezRi5E14s
+WF2sNRa8C0LkfMfCW/wBCLXPn68XhQW7MuGgpEVrRenXQ3hwSykNiKq4vfn8tg+1hKwlrM3pbQQw
+7YmXUm9TnHmkvJfZJEgSiFiLUjc1HxUFNl23PGjKJ1GxDerS7pBHG23KkVZTacuKM/MjVfFeFQJ4
+8JcRJUO0HuM6O1v/1sumtq/4wrKYo5I5LZPRuEKGNFme9hi/1BQT9bK9roZlxH0=</ds:X509Certificate>
+ </ds:X509Data>
+ </ds:KeyInfo>
+ </md:KeyDescriptor>
+ <md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>
+ <md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
+ <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
+ <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://demo.egiz.gv.at/moa-id-configuration/pvp2login.action" index="0"/>
+ <md:AttributeConsumingService index="0" isDefault="true">
+ <md:ServiceName xml:lang="de">Default Service</md:ServiceName>
+ <md:RequestedAttribute FriendlyName="PVP-VERSION" Name="urn:oid:1.2.40.0.10.2.1.1.261.10" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="true"/>
+ <md:RequestedAttribute FriendlyName="PRINCIPAL-NAME" Name="urn:oid:1.2.40.0.10.2.1.1.261.20" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="true"/>
+ <md:RequestedAttribute FriendlyName="GIVEN-NAME" Name="urn:oid:2.5.4.42" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="true"/>
+ <md:RequestedAttribute FriendlyName="BIRTHDATE" Name="urn:oid:1.2.40.0.10.2.1.1.55" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="false"/>
+ <md:RequestedAttribute FriendlyName="BPK" Name="urn:oid:1.2.40.0.10.2.1.1.149" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="true"/>
+ <md:RequestedAttribute FriendlyName="EID-CITIZEN-QAA-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.94" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="true"/>
+ <md:RequestedAttribute FriendlyName="EID-ISSUING-NATION" Name="urn:oid:1.2.40.0.10.2.1.1.261.32" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="true"/>
+ <md:RequestedAttribute FriendlyName="EID-SECTOR-FOR-IDENTIFIER" Name="urn:oid:1.2.40.0.10.2.1.1.261.34" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="true"/>
+ <md:RequestedAttribute FriendlyName="MANDATE-TYPE" Name="urn:oid:1.2.40.0.10.2.1.1.261.68" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="false"/>
+ <md:RequestedAttribute FriendlyName="MANDATOR-LEGAL-PERSON-FULL-NAME" Name="urn:oid:1.2.40.0.10.2.1.1.261.84" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="false"/>
+ <md:RequestedAttribute FriendlyName="MANDATOR-LEGAL-PERSON-SOURCE-PIN" Name="urn:oid:1.2.40.0.10.2.1.1.261.100" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="false"/>
+ <md:RequestedAttribute FriendlyName="MANDATOR-LEGAL-PERSON-SOURCE-PIN-TYPE" Name="urn:oid:1.2.40.0.10.2.1.1.261.76" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="false"/>
+ <md:RequestedAttribute FriendlyName="MANDATOR-NATURAL-PERSON-BIRTHDATE" Name="urn:oid:1.2.40.0.10.2.1.1.261.82" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="false"/>
+ <md:RequestedAttribute FriendlyName="MANDATOR-NATURAL-PERSON-BPK" Name="urn:oid:1.2.40.0.10.2.1.1.261.98" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="false"/>
+ <md:RequestedAttribute FriendlyName="MANDATOR-NATURAL-PERSON-FAMILY-NAME" Name="urn:oid:1.2.40.0.10.2.1.1.261.80" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="false"/>
+ <md:RequestedAttribute FriendlyName="MANDATOR-NATURAL-PERSON-GIVEN-NAME" Name="urn:oid:1.2.40.0.10.2.1.1.261.78" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="false"/>
+ <md:RequestedAttribute FriendlyName="MANDATE-REFERENCE-VALUE" Name="urn:oid:1.2.40.0.10.2.1.1.261.90" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="false"/>
+ <md:RequestedAttribute FriendlyName="MANDATOR-PROF-REP-OID" Name="urn:oid:1.2.40.0.10.2.1.1.261.86" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="false"/>
+ <md:RequestedAttribute FriendlyName="MANDATOR-PROF-REP-DESCRIPTION" Name="urn:oid:1.2.40.0.10.2.1.1.261.88" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="false"/>
+ </md:AttributeConsumingService>
+ </md:SPSSODescriptor>
+ </md:EntityDescriptor>
+</md:EntitiesDescriptor>
diff --git a/id/server/doc/handbook/spec/MOA-SPSS-2.0.0.wsdl b/id/server/doc/handbook/spec/MOA-SPSS-2.0.0.wsdl
new file mode 100644
index 000000000..4f9deee38
--- /dev/null
+++ b/id/server/doc/handbook/spec/MOA-SPSS-2.0.0.wsdl
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Web Service Description for MOA SP/SS 1.4
+-->
+<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:moa="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="MOA" targetNamespace="http://reference.e-government.gv.at/namespace/moa/20020822#">
+ <import namespace="http://reference.e-government.gv.at/namespace/moa/20020822#" location="../resources/schemas/MOA-SPSS-2.0.0.xsd"/>
+ <message name="CreateCMSSignatureInput">
+ <part name="body" element="moa:CreateCMSSignatureRequest"/>
+ </message>
+ <message name="CreateCMSSignatureOutput">
+ <part name="body" element="moa:CreateCMSSignatureResponse"/>
+ </message>
+ <message name="CreateXMLSignatureInput">
+ <part name="body" element="moa:CreateXMLSignatureRequest"/>
+ </message>
+ <message name="CreateXMLSignatureOutput">
+ <part name="body" element="moa:CreateXMLSignatureResponse"/>
+ </message>
+ <message name="VerifyCMSSignatureInput">
+ <part name="body" element="moa:VerifyCMSSignatureRequest"/>
+ </message>
+ <message name="VerifyCMSSignatureOutput">
+ <part name="body" element="moa:VerifyCMSSignatureResponse"/>
+ </message>
+ <message name="VerifyXMLSignatureInput">
+ <part name="body" element="moa:VerifyXMLSignatureRequest"/>
+ </message>
+ <message name="VerifyXMLSignatureOutput">
+ <part name="body" element="moa:VerifyXMLSignatureResponse"/>
+ </message>
+ <message name="MOAFault">
+ <part name="body" element="moa:ErrorResponse"/>
+ </message>
+ <portType name="SignatureCreationPortType">
+ <operation name="createXMLSignature">
+ <input message="tns:CreateXMLSignatureInput"/>
+ <output message="tns:CreateXMLSignatureOutput"/>
+ <fault name="MOAFault" message="tns:MOAFault"/>
+ </operation>
+ <operation name="createCMSSignature">
+ <input message="tns:CreateCMSSignatureInput"/>
+ <output message="tns:CreateCMSSignatureOutput"/>
+ <fault name="MOAFault" message="tns:MOAFault"/>
+ </operation>
+ </portType>
+ <portType name="SignatureVerificationPortType">
+ <operation name="verifyCMSSignature">
+ <input message="tns:VerifyCMSSignatureInput"/>
+ <output message="tns:VerifyCMSSignatureOutput"/>
+ <fault name="MOAFault" message="tns:MOAFault"/>
+ </operation>
+ <operation name="verifyXMLSignature">
+ <input message="tns:VerifyXMLSignatureInput"/>
+ <output message="tns:VerifyXMLSignatureOutput"/>
+ <fault name="MOAFault" message="tns:MOAFault"/>
+ </operation>
+ </portType>
+ <binding name="SignatureCreationBinding" type="tns:SignatureCreationPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="createXMLSignature">
+ <soap:operation soapAction="urn:CreateXMLSignatureAction"/>
+ <input>
+ <soap:body use="literal" namespace="http://reference.e-government.gv.at/namespace/moa/20020822#"/>
+ </input>
+ <output>
+ <soap:body use="literal" namespace="http://reference.e-government.gv.at/namespace/moa/20020822#"/>
+ </output>
+ <fault name="MOAFault">
+ <soap:fault name="" use="literal" namespace="http://reference.e-government.gv.at/namespace/moa/20020822#"/>
+ </fault>
+ </operation>
+ <operation name="createCMSSignature">
+ <soap:operation soapAction="urn:CreateCMSSignatureAction"/>
+ <input>
+ <soap:body use="literal" namespace="http://reference.e-government.gv.at/namespace/moa/20020822#"/>
+ </input>
+ <output>
+ <soap:body use="literal" namespace="http://reference.e-government.gv.at/namespace/moa/20020822#"/>
+ </output>
+ <fault name="MOAFault">
+ <soap:fault name="" use="literal" namespace="http://reference.e-government.gv.at/namespace/moa/20020822#"/>
+ </fault>
+ </operation>
+ </binding>
+ <binding name="SignatureVerificationBinding" type="tns:SignatureVerificationPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="verifyCMSSignature">
+ <soap:operation soapAction="urn:VerifyCMSSignatureAction"/>
+ <input>
+ <soap:body use="literal" namespace="http://reference.e-government.gv.at/namespace/moa/20020822#"/>
+ </input>
+ <output>
+ <soap:body use="literal" namespace="http://reference.e-government.gv.at/namespace/moa/20020822#"/>
+ </output>
+ <fault name="MOAFault">
+ <soap:fault name="" use="literal" namespace="http://reference.e-government.gv.at/namespace/moa/20020822#"/>
+ </fault>
+ </operation>
+ <operation name="verifyXMLSignature">
+ <soap:operation soapAction="urn:VerifyXMLSignatureAction"/>
+ <input>
+ <soap:body use="literal" namespace="http://reference.e-government.gv.at/namespace/moa/20020822#"/>
+ </input>
+ <output>
+ <soap:body use="literal" namespace="http://reference.e-government.gv.at/namespace/moa/20020822#"/>
+ </output>
+ <fault name="MOAFault">
+ <soap:fault name="" use="literal" namespace="http://reference.e-government.gv.at/namespace/moa/20020822#"/>
+ </fault>
+ </operation>
+ </binding>
+ <service name="SignatureCreationService">
+ <port name="SignatureCreationPort" binding="tns:SignatureCreationBinding">
+ <!--
+ Please note that the location URL must be adapted to the actual service URL.
+ <soap:address location="http://localhost/moa-spss/services/SignatureCreation"/>
+ -->
+ </port>
+ </service>
+ <service name="SignatureVerificationService">
+ <port name="SignatureVerificationPort" binding="tns:SignatureVerificationBinding">
+ <!--
+ Please note that the location URL must be adapted to the actual service URL.
+ <soap:address location="http://localhost/moa-spss/services/SignatureVerification"/>
+ -->
+ </port>
+ </service>
+</definitions>
diff --git a/id/server/doc/handbook/spec/MOA-SPSS-2.0.0.xsd b/id/server/doc/handbook/spec/MOA-SPSS-2.0.0.xsd
new file mode 100644
index 000000000..73d145ecf
--- /dev/null
+++ b/id/server/doc/handbook/spec/MOA-SPSS-2.0.0.xsd
@@ -0,0 +1,572 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ MOA SP/SS 2.0.0 Schema
+-->
+<xsd:schema xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" targetNamespace="http://reference.e-government.gv.at/namespace/moa/20020822#" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.2">
+ <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+ <!--########## Create CMS Signature ###-->
+ <!--### Create CMS Signature Request ###-->
+ <xsd:element name="CreateCMSSignatureRequest">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="CreateCMSSignatureRequestType"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="CreateCMSSignatureRequestType">
+ <xsd:sequence>
+ <xsd:element name="KeyIdentifier" type="KeyIdentifierType"/>
+ <xsd:element name="SingleSignatureInfo" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Ermöglichung der Stapelsignatur durch wiederholte Angabe dieses Elements</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="DataObjectInfo">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="CMSDataObjectInfoType"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="SecurityLayerConformity" type="xsd:boolean" use="optional" default="true"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!--### Create CMS Signature Response ###-->
+ <xsd:element name="CreateCMSSignatureResponse" type="CreateCMSSignatureResponseType"/>
+ <xsd:complexType name="CreateCMSSignatureResponseType">
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Kardinalität 1..oo erlaubt die Antwort auf eine Stapelsignatur-Anfrage</xsd:documentation>
+ </xsd:annotation>
+ <xsd:element name="CMSSignature" type="xsd:base64Binary">
+ <xsd:annotation>
+ <xsd:documentation>Resultat, falls die Signaturerstellung erfolgreich war</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="ErrorResponse"/>
+ </xsd:choice>
+ </xsd:complexType>
+ <!--########## Create XML Signature ###-->
+ <!--### Create XML Signature Request ###-->
+ <xsd:element name="CreateXMLSignatureRequest">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="CreateXMLSignatureRequestType"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="CreateXMLSignatureRequestType">
+ <xsd:sequence>
+ <xsd:element name="KeyIdentifier" type="KeyIdentifierType"/>
+ <xsd:element name="SingleSignatureInfo" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Ermöglichung der Stapelsignatur durch wiederholte Angabe dieses Elements</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="DataObjectInfo" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="DataObjectInfoType">
+ <xsd:attribute name="ChildOfManifest" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="CreateSignatureInfo" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="CreateSignatureEnvironment" type="ContentOptionalRefType"/>
+ <xsd:choice>
+ <xsd:annotation>
+ <xsd:documentation>Auswahl: Entweder explizite Angabe des Signaturorts sowie ggf. sinnvoller Supplements im Zshg. mit der Signaturumgebung, oder Verweis auf ein benanntes Profil</xsd:documentation>
+ </xsd:annotation>
+ <xsd:element ref="CreateSignatureEnvironmentProfile"/>
+ <xsd:element name="CreateSignatureEnvironmentProfileID" type="ProfileIdentifierType"/>
+ </xsd:choice>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="SecurityLayerConformity" type="xsd:boolean" use="optional" default="true"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!--### Create XML Signature Response ###-->
+ <xsd:complexType name="CreateXMLSignatureResponseType">
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Kardinalität 1..oo erlaubt die Antwort auf eine Stapelsignatur-Anfrage</xsd:documentation>
+ </xsd:annotation>
+ <xsd:element name="SignatureEnvironment">
+ <xsd:annotation>
+ <xsd:documentation>Resultat, falls die Signaturerstellung erfolgreich war</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:any namespace="##any" processContents="lax"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element ref="ErrorResponse"/>
+ </xsd:choice>
+ </xsd:complexType>
+ <xsd:element name="CreateXMLSignatureResponse" type="CreateXMLSignatureResponseType"/>
+ <!--########## Verify CMS Signature ###-->
+ <!--### Verifiy CMS Signature Request ###-->
+ <xsd:element name="VerifyCMSSignatureRequest">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="VerifyCMSSignatureRequestType">
+ <xsd:attribute name="Signatories" type="SignatoriesType" use="optional" default="1"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="VerifyCMSSignatureRequestType">
+ <xsd:sequence>
+ <xsd:element name="DateTime" type="xsd:dateTime" minOccurs="0"/>
+ <xsd:element name="CMSSignature" type="xsd:base64Binary"/>
+ <xsd:element name="DataObject" type="CMSDataObjectOptionalMetaType" minOccurs="0"/>
+ <xsd:element name="TrustProfileID" type="xsd:token">
+ <xsd:annotation>
+ <xsd:documentation>mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!--### Verify CMS Signature Response ###-->
+ <xsd:element name="VerifyCMSSignatureResponse" type="VerifyCMSSignatureResponseType"/>
+ <xsd:complexType name="VerifyCMSSignatureResponseType">
+ <xsd:sequence maxOccurs="unbounded">
+ <xsd:element name="SignerInfo" type="dsig:KeyInfoType">
+ <xsd:annotation>
+ <xsd:documentation>only ds:X509Data and RetrievalMethod is supported; QualifiedCertificate is included as X509Data/any;publicAuthority is included as X509Data/any; SecureSignatureCreationDevice is included as X509Data/any, IssuingCountry is included as X509Data/any</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="SignatureCheck" type="CheckResultType"/>
+ <xsd:element name="CertificateCheck" type="CheckResultType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!--########## Verify XML Signature ###-->
+ <!--### Verify XML Signature Request ###-->
+ <xsd:element name="VerifyXMLSignatureRequest" type="VerifyXMLSignatureRequestType"/>
+ <xsd:complexType name="VerifyXMLSignatureRequestType">
+ <xsd:sequence>
+ <xsd:element name="DateTime" type="xsd:dateTime" minOccurs="0"/>
+ <xsd:element name="VerifySignatureInfo">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="VerifySignatureEnvironment" type="ContentOptionalRefType"/>
+ <xsd:element name="VerifySignatureLocation" type="xsd:token"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="SupplementProfile"/>
+ <xsd:element name="SupplementProfileID" type="xsd:string"/>
+ </xsd:choice>
+ <xsd:element name="SignatureManifestCheckParams" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="ReferenceInfo" type="VerifyTransformsDataType" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Pro dsig:Reference-Element in der zu überprüfenden XML-Signatur muss hier ein ReferenceInfo-Element erscheinen. Die Reihenfolge der einzelnen ReferenceInfo Elemente entspricht jener der dsig:Reference Elemente in der XML-Signatur.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="ReturnReferenceInputData" type="xsd:boolean" use="optional" default="true"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="ReturnHashInputData" minOccurs="0"/>
+ <xsd:element name="TrustProfileID" type="xsd:token">
+ <xsd:annotation>
+ <xsd:documentation>mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!--### Verify XML Signature Response ###-->
+ <xsd:element name="VerifyXMLSignatureResponse" type="VerifyXMLSignatureResponseType"/>
+ <xsd:complexType name="VerifyXMLSignatureResponseType">
+ <xsd:sequence>
+ <xsd:element name="SignerInfo" type="dsig:KeyInfoType">
+ <xsd:annotation>
+ <xsd:documentation>only ds:X509Data and ds:RetrievalMethod is supported; QualifiedCertificate is included as X509Data/any; PublicAuthority is included as X509Data/any; SecureSignatureCreationDevice is included as X509Data/any, IssuingCountry is included as X509Data/any</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="HashInputData" type="InputDataType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="ReferenceInputData" type="InputDataType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="SignatureCheck" type="ReferencesCheckResultType"/>
+ <xsd:element name="SignatureManifestCheck" type="ReferencesCheckResultType" minOccurs="0"/>
+ <xsd:element name="XMLDSIGManifestCheck" type="ManifestRefsCheckResultType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="CertificateCheck" type="CheckResultType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:simpleType name="ProfileIdentifierType">
+ <xsd:restriction base="xsd:token"/>
+ </xsd:simpleType>
+ <xsd:complexType name="InputDataType">
+ <xsd:complexContent>
+ <xsd:extension base="ContentExLocRefBaseType">
+ <xsd:attribute name="PartOf" use="optional" default="SignedInfo">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="SignedInfo"/>
+ <xsd:enumeration value="XMLDSIGManifest"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="ReferringSigReference" type="xsd:nonNegativeInteger" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="MetaInfoType">
+ <xsd:sequence>
+ <xsd:element name="MimeType" type="MimeTypeType"/>
+ <xsd:element name="Description" type="xsd:anyURI" minOccurs="0"/>
+ <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="FinalDataMetaInfoType">
+ <xsd:complexContent>
+ <xsd:extension base="MetaInfoType">
+ <xsd:sequence>
+ <xsd:element name="Type" type="xsd:anyURI" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="DataObjectInfoType">
+ <xsd:sequence>
+ <xsd:element name="DataObject">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="ContentOptionalRefType"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:choice>
+ <xsd:annotation>
+ <xsd:documentation>Auswahl: Entweder explizite Angabe EINER Transformationskette inklusive ggf. sinnvoller Supplements oder Verweis auf ein benanntes Profil</xsd:documentation>
+ </xsd:annotation>
+ <xsd:element ref="CreateTransformsInfoProfile"/>
+ <xsd:element name="CreateTransformsInfoProfileID" type="ProfileIdentifierType"/>
+ </xsd:choice>
+ </xsd:sequence>
+ <xsd:attribute name="Structure" use="required">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="detached"/>
+ <xsd:enumeration value="enveloping"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ </xsd:complexType>
+ <xsd:complexType name="CMSDataObjectInfoType">
+ <xsd:sequence>
+ <xsd:element name="DataObject">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="CMSDataObjectRequiredMetaType"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="Structure" use="required">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="detached"/>
+ <xsd:enumeration value="enveloping"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ </xsd:complexType>
+ <xsd:complexType name="TransformsInfoType">
+ <xsd:sequence>
+ <xsd:element ref="dsig:Transforms" minOccurs="0"/>
+ <xsd:element name="FinalDataMetaInfo" type="FinalDataMetaInfoType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="XMLDataObjectAssociationType">
+ <xsd:sequence>
+ <xsd:element name="MetaInfo" type="MetaInfoType" minOccurs="0"/>
+ <xsd:element name="Content" type="ContentRequiredRefType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="CMSDataObjectOptionalMetaType">
+ <xsd:sequence>
+ <xsd:element name="MetaInfo" type="MetaInfoType" minOccurs="0"/>
+ <xsd:element name="Content" type="CMSContentBaseType"/>
+ <xsd:element name="ExcludedByteRange" type="ExcludedByteRangeType" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="CMSDataObjectRequiredMetaType">
+ <xsd:sequence>
+ <xsd:element name="MetaInfo" type="MetaInfoType"/>
+ <xsd:element name="Content" type="CMSContentBaseType"/>
+ <xsd:element name="ExcludedByteRange" type="ExcludedByteRangeType" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="ExcludedByteRangeType">
+ <xsd:sequence>
+ <xsd:element name="From" type="xsd:unsignedLong"/>
+ <xsd:element name="To" type="xsd:unsignedLong"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="CMSContentBaseType">
+ <xsd:complexContent>
+ <xsd:restriction base="ContentOptionalRefType">
+ <xsd:choice minOccurs="0">
+ <xsd:element name="Base64Content" type="xsd:base64Binary"/>
+ </xsd:choice>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="CheckResultType">
+ <xsd:sequence>
+ <xsd:element name="Code" type="xsd:nonNegativeInteger"/>
+ <xsd:element name="Info" type="AnyChildrenType" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="ReferencesCheckResultType">
+ <xsd:complexContent>
+ <xsd:restriction base="CheckResultType">
+ <xsd:sequence>
+ <xsd:element name="Code" type="xsd:nonNegativeInteger"/>
+ <xsd:element name="Info" type="ReferencesCheckResultInfoType" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="ReferencesCheckResultInfoType" mixed="true">
+ <xsd:complexContent>
+ <xsd:restriction base="AnyChildrenType">
+ <xsd:sequence>
+ <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="FailedReference" type="xsd:positiveInteger" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="ManifestRefsCheckResultType">
+ <xsd:complexContent>
+ <xsd:restriction base="CheckResultType">
+ <xsd:sequence>
+ <xsd:element name="Code" type="xsd:nonNegativeInteger"/>
+ <xsd:element name="Info" type="ManifestRefsCheckResultInfoType"/>
+ </xsd:sequence>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="ManifestRefsCheckResultInfoType" mixed="true">
+ <xsd:complexContent>
+ <xsd:restriction base="AnyChildrenType">
+ <xsd:sequence>
+ <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="FailedReference" type="xsd:positiveInteger" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="ReferringSigReference" type="xsd:positiveInteger"/>
+ </xsd:sequence>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <!--########## Error Response ###-->
+ <xsd:element name="ErrorResponse" type="ErrorResponseType">
+ <xsd:annotation>
+ <xsd:documentation>Resultat, falls die Signaturerstellung gescheitert ist</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="ErrorResponseType">
+ <xsd:sequence>
+ <xsd:element name="ErrorCode" type="xsd:integer"/>
+ <xsd:element name="Info" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!--########## Auxiliary Types ###-->
+ <xsd:simpleType name="KeyIdentifierType">
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+ <xsd:simpleType name="KeyStorageType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Software"/>
+ <xsd:enumeration value="Hardware"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="MimeTypeType">
+ <xsd:restriction base="xsd:token"/>
+ </xsd:simpleType>
+ <xsd:complexType name="AnyChildrenType" mixed="true">
+ <xsd:sequence>
+ <xsd:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="XMLContentType" mixed="true">
+ <xsd:complexContent>
+ <xsd:extension base="AnyChildrenType">
+ <xsd:attribute ref="xml:space" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="ContentBaseType">
+ <xsd:choice minOccurs="0">
+ <xsd:element name="Base64Content" type="xsd:base64Binary"/>
+ <xsd:element name="XMLContent" type="XMLContentType"/>
+ <xsd:element name="LocRefContent" type="xsd:anyURI"/>
+ </xsd:choice>
+ </xsd:complexType>
+ <xsd:complexType name="ContentExLocRefBaseType">
+ <xsd:complexContent>
+ <xsd:restriction base="ContentBaseType">
+ <xsd:choice minOccurs="0">
+ <xsd:element name="Base64Content" type="xsd:base64Binary"/>
+ <xsd:element name="XMLContent" type="XMLContentType"/>
+ </xsd:choice>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="ContentOptionalRefType">
+ <xsd:complexContent>
+ <xsd:extension base="ContentBaseType">
+ <xsd:attribute name="Reference" type="xsd:anyURI" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="ContentRequiredRefType">
+ <xsd:complexContent>
+ <xsd:restriction base="ContentOptionalRefType">
+ <xsd:choice minOccurs="0">
+ <xsd:element name="Base64Content" type="xsd:base64Binary"/>
+ <xsd:element name="XMLContent" type="XMLContentType"/>
+ <xsd:element name="LocRefContent" type="xsd:anyURI"/>
+ </xsd:choice>
+ <xsd:attribute name="Reference" type="xsd:anyURI" use="required"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="VerifyTransformsDataType">
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Ein oder mehrere Transformationswege können von der Applikation an MOA mitgeteilt werden. Die zu prüfende Signatur hat zumindest einem dieser Transformationswege zu entsprechen. Die Angabe kann explizit oder als Profilbezeichner erfolgen.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:element ref="VerifyTransformsInfoProfile"/>
+ <xsd:element name="VerifyTransformsInfoProfileID" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation>Profilbezeichner für einen Transformationsweg</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ <xsd:element name="QualifiedCertificate">
+ <xsd:complexType>
+ <xsd:attribute name="source" use="optional">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="TSL"/>
+ <xsd:enumeration value="Certificate"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="SecureSignatureCreationDevice">
+ <xsd:complexType>
+ <xsd:attribute name="source" use="optional">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="TSL"/>
+ <xsd:enumeration value="Certificate"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="IssuingCountry" type="xsd:token"/>
+ <xsd:element name="PublicAuthority" type="PublicAuthorityType"/>
+ <xsd:complexType name="PublicAuthorityType">
+ <xsd:sequence>
+ <xsd:element name="Code" type="xsd:string" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:simpleType name="SignatoriesType">
+ <xsd:union memberTypes="AllSignatoriesType">
+ <xsd:simpleType>
+ <xsd:list itemType="xsd:positiveInteger"/>
+ </xsd:simpleType>
+ </xsd:union>
+ </xsd:simpleType>
+ <xsd:simpleType name="AllSignatoriesType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="all"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:complexType name="CreateSignatureLocationType">
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:token">
+ <xsd:attribute name="Index" type="xsd:integer" use="required"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="TransformParameterType">
+ <xsd:choice minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Die Angabe des Transformationsparameters (explizit oder als Hashwert) kann unterlassen werden, wenn die Applikation von der Unveränderlichkeit des Inhalts der in "Transformationsparamter", Attribut "URI" angegebenen URI ausgehen kann.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:element name="Base64Content" type="xsd:base64Binary">
+ <xsd:annotation>
+ <xsd:documentation>Der Transformationsparameter explizit angegeben.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="Hash">
+ <xsd:annotation>
+ <xsd:documentation>Der Hashwert des Transformationsparameters.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="dsig:DigestMethod"/>
+ <xsd:element ref="dsig:DigestValue"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ <xsd:attribute name="URI" type="xsd:anyURI" use="required"/>
+ </xsd:complexType>
+ <xsd:element name="CreateSignatureEnvironmentProfile">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="CreateSignatureLocation" type="CreateSignatureLocationType"/>
+ <xsd:element name="Supplement" type="XMLDataObjectAssociationType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="VerifyTransformsInfoProfile">
+ <xsd:annotation>
+ <xsd:documentation>Explizite Angabe des Transformationswegs</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="dsig:Transforms" minOccurs="0"/>
+ <xsd:element name="TransformParameter" type="TransformParameterType" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Alle impliziten Transformationsparameter, die zum Durchlaufen der oben angeführten Transformationskette bekannt sein müssen, müssen hier angeführt werden. Das Attribut "URI" bezeichnet den Transformationsparameter in exakt jener Weise, wie er in der zu überprüfenden Signatur gebraucht wird.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="Supplement" type="XMLDataObjectAssociationType"/>
+ <xsd:element name="SupplementProfile" type="XMLDataObjectAssociationType"/>
+ <xsd:element name="CreateTransformsInfoProfile">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="CreateTransformsInfo" type="TransformsInfoType"/>
+ <xsd:element ref="Supplement" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+</xsd:schema>
diff --git a/id/server/doc/htmlTemplates/template_onlineBKU.html b/id/server/doc/htmlTemplates/template_onlineBKU.html
new file mode 100644
index 000000000..52abf83fb
--- /dev/null
+++ b/id/server/doc/htmlTemplates/template_onlineBKU.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="de">
+ <head>
+ <title></title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <script language="javascript" type="text/javascript">
+ function onAnmeldeSubmit() {
+ document.CustomizedForm.submit();
+ document.CustomizedForm.Senden.disabled=true;
+ }
+ </script>
+ </head>
+ <body onLoad="onAnmeldeSubmit()">
+ <form name="CustomizedForm" action="<BKU>" method="post" enctype="multipart/form-data<>">
+ Falls Sie nicht automatisch weitergeleitet werden klicken Sie bitte hier:
+ <input class="button" type="hidden" value="Starte Anmeldung" name="Senden">
+ <input type="hidden" name="XMLRequest" value="<XMLRequest>">
+ <input type="hidden" name="DataURL" value="<DataURL>">
+ <input type="hidden" name="PushInfobox" value="<PushInfobox>">
+
+ <!-- Angabe der Parameter fuer die Online-BKU -->
+ <input type="hidden" name="appletWidth" value="<APPLETWIDTH>">
+ <input type="hidden" name="appletHeight" value="<APPLETHEIGHT>">
+
+ <!-- [OPTIONAL] Aendern Sie hier die Hintergrundfarbe der Online-BKU -->
+ <input type="hidden" name="appletBackgroundColor" value="<COLOR>">
+ <input type="hidden" name="redirectTarget" value="<REDIRECTTARGET>">
+ </form>
+
+ <form name="CustomizedInfoForm" action="<BKU>" method="post">
+ <input type="hidden" name="XMLRequest" value="<CertInfoXMLRequest>">
+ <input type="hidden" name="DataURL" value="<CertInfoDataURL>">
+ </form>
+ <form name="DummyForm" action="<BKU>" method="post">
+ </form>
+ </body>
+</html>