diff options
author | Alexander Marsalek <amarsalek@iaik.tugraz.at> | 2021-02-09 21:09:48 +0100 |
---|---|---|
committer | Alexander Marsalek <amarsalek@iaik.tugraz.at> | 2021-02-09 21:20:25 +0100 |
commit | cfb4a314b65e4c0af5cb1be297e131155a2571c9 (patch) | |
tree | defae891cb1434086a29b7c06f099158a97e47dd | |
parent | effa0dc13b11d18ef917dcd1f8be3a21d686b735 (diff) | |
download | National_eIDAS_Gateway-cfb4a314b65e4c0af5cb1be297e131155a2571c9.tar.gz National_eIDAS_Gateway-cfb4a314b65e4c0af5cb1be297e131155a2571c9.tar.bz2 National_eIDAS_Gateway-cfb4a314b65e4c0af5cb1be297e131155a2571c9.zip |
extract qaa & IssueInstant
10 files changed, 60 insertions, 102 deletions
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/idaustriaclient/IdAustriaClientAuthConstants.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/idaustriaclient/IdAustriaClientAuthConstants.java index 38b50a0a..186deaee 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/idaustriaclient/IdAustriaClientAuthConstants.java +++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/idaustriaclient/IdAustriaClientAuthConstants.java @@ -99,12 +99,12 @@ public class IdAustriaClientAuthConstants { // entity eID information // add(Triple.newInstance(ExtendedPvpAttributeDefinitions.EID_EIDBIND_NAME, // ExtendedPvpAttributeDefinitions.EID_EIDBIND_FRIENDLY_NAME, true)); - add(Triple.newInstance(ExtendedPvpAttributeDefinitions.EID_AUTHBLOCK_SIGNED_NAME, - ExtendedPvpAttributeDefinitions.EID_AUTHBLOCK_SIGNED_FRIENDLY_NAME, true)); +// add(Triple.newInstance(ExtendedPvpAttributeDefinitions.EID_AUTHBLOCK_SIGNED_NAME, +// ExtendedPvpAttributeDefinitions.EID_AUTHBLOCK_SIGNED_FRIENDLY_NAME, true)); //request pII transactionId from MS-Connector - add(Triple.newInstance(ExtendedPvpAttributeDefinitions.EID_PII_TRANSACTION_ID_NAME, - ExtendedPvpAttributeDefinitions.EID_PII_TRANSACTION_ID_FRIENDLY_NAME, false)); +// add(Triple.newInstance(ExtendedPvpAttributeDefinitions.EID_PII_TRANSACTION_ID_NAME, +// ExtendedPvpAttributeDefinitions.EID_PII_TRANSACTION_ID_FRIENDLY_NAME, false)); } }); diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTask.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTask.java index 8b58f2e1..d919d229 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTask.java +++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTask.java @@ -188,11 +188,12 @@ public class ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTask extends } + // initialize Attribute extractor final AssertionAttributeExtractor extractor = new AssertionAttributeExtractor(processedMsg.getFirst().getResponse()); - String bpkzp = getAuthDataFromInterfederation(extractor); + String bpkzp = getAuthDataFromInterfederation(extractor, authProcessData); MergedRegisterSearchResult result = searchInZmrAndErnp(bpkzp); if (result.getResultCount() == 0) { @@ -240,6 +241,7 @@ public class ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTask extends new Object[]{IdAustriaClientAuthConstants.MODULE_NAME_FOR_LOGGING}, e)); } catch (final Exception e) { + e.printStackTrace(); log.debug("PVP response validation FAILED. Msg:" + e.getMessage(), e); throw new TaskExecutionException(pendingReq, ERROR_MSG_03, new AuthnResponseValidationException(ERROR_PVP_12, @@ -305,16 +307,15 @@ public class ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTask extends return null; } - private String getAuthDataFromInterfederation(AssertionAttributeExtractor extractor) + private String getAuthDataFromInterfederation(AssertionAttributeExtractor extractor, + AuthProcessDataWrapper authProcessData) throws EaafBuilderException { - List<String> requiredEidasNodeAttributes = IdAustriaClientAuthConstants.DEFAULT_REQUIRED_PVP_ATTRIBUTE_NAMES; + List<String> requiredAttributes = IdAustriaClientAuthConstants.DEFAULT_REQUIRED_PVP_ATTRIBUTE_NAMES; String bpk = null; try { // check if all attributes are include - if (!extractor.containsAllRequiredAttributes() - || !extractor.containsAllRequiredAttributes( - requiredEidasNodeAttributes)) { + if (!extractor.containsAllRequiredAttributes(requiredAttributes)) { log.warn("PVP Response from 'ID Austria node' contains not all requested attributes."); throw new AssertionValidationExeption(ERROR_PVP_06, new Object[]{ IdAustriaClientAuthConstants.MODULE_NAME_FOR_LOGGING}); @@ -329,6 +330,9 @@ public class ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTask extends if (PvpAttributeDefinitions.BPK_NAME.equals(attrName)) { bpk = extractor.getSingleAttributeValue(attrName); } + if (PvpAttributeDefinitions.EID_CITIZEN_EIDAS_QAA_LEVEL_NAME.equals(attrName)) { + authProcessData.setQaaLevel(extractor.getSingleAttributeValue(attrName)); + } //injectAuthInfosIntoSession(session, attrName, // extractor.getSingleAttributeValue(attrName)); @@ -350,7 +354,7 @@ public class ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTask extends // session.setForeigner(true); // set IssuerInstant from Assertion - // session.setIssueInstant(extractor.getAssertionIssuingDate()); + authProcessData.setIssueInstant(extractor.getAssertionIssuingDate()); // set CCE URL //if (extractor.getFullAssertion().getIssuer() != null diff --git a/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTaskTest.java b/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTaskTest.java index a07343f9..2e3da7bc 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTaskTest.java +++ b/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTaskTest.java @@ -325,7 +325,7 @@ public class ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTaskTest { METADATA_PATH, null, "jUnit IDP", null)); final Response response = initializeResponse( - "classpath:/data/idp_metadata_classpath_entity.xml", + "classpath:/data/idp_metadata_classpath_entity.xml1", "/data/Response_without_sig_classpath_entityid.xml", credentialProvider.getMessageSigningCredential(), true); @@ -518,41 +518,6 @@ public class ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTaskTest { } @Test - public void responseWrongEidasBind() throws IOException, SamlSigningException, - Pvp2MetadataException, CredentialsNotAvailableException, XMLParserException, UnmarshallingException, - MarshallingException, TransformerException { - - oaParam.putGenericConfigurationKey( - IdAustriaClientAuthConstants.CONFIG_PROPS_APPSPECIFIC_EIDAS_NODE_URL, METADATA_PATH); - - metadataProvider.addMetadataResolverIntoChain(metadataFactory.createMetadataProvider( - METADATA_PATH, null, "jUnit IDP", null)); - - final Response response = initializeResponse( - "classpath:/data/idp_metadata_classpath_entity.xml", - "/data/Response_with_EID_wrong_data.xml", - credentialProvider.getMessageSigningCredential(), - true); - httpReq.addParameter("SAMLResponse", Base64.getEncoder().encodeToString( - DomUtils.serializeNode(XMLObjectSupport.getMarshaller(response).marshall(response)).getBytes("UTF-8"))); - - try { - task.execute(pendingReq, executionContext); - Assert.fail("Invalid response not detected"); - - } catch (final TaskExecutionException e) { - Assert.assertNotNull(e.getPendingRequestID()); - Assert.assertEquals(pendingReq.getPendingRequestId(), e.getPendingRequestID()); - Assert.assertNotNull(e.getOriginalException()); - org.springframework.util.Assert.isInstanceOf(AuthnResponseValidationException.class, - e.getOriginalException()); - Assert.assertEquals("sp.pvp2.12", - ((EaafException) e.getOriginalException()).getErrorId()); - - } - } - - @Test public void httpPostValidSignedAssertionEidValid() throws IOException, SamlSigningException, Pvp2MetadataException, CredentialsNotAvailableException, XMLParserException, UnmarshallingException, MarshallingException, TransformerException, TaskExecutionException { @@ -580,12 +545,12 @@ public class ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTaskTest { // Assert.assertFalse("Wrong Mandate flag", // (boolean) executionContext.get(AuthHandlerConstants.HTTP_PARAM_USE_MANDATES)); - Assert.assertEquals("piiTransactionId", "piiId_112233445566", pendingReq.getUniquePiiTransactionIdentifier()); +// Assert.assertEquals("piiTransactionId", "piiId_112233445566", pendingReq.getUniquePiiTransactionIdentifier()); final AuthProcessDataWrapper session = pendingReq.getSessionData(AuthProcessDataWrapper.class); - Assert.assertTrue("E-ID flag", session.isEidProcess()); - Assert.assertTrue("Foreign flag", session.isForeigner()); +// Assert.assertTrue("E-ID flag", session.isEidProcess()); +// Assert.assertTrue("Foreign flag", session.isForeigner()); // Assert.assertEquals("eidasBind", EIDAS_BIND, session.getQcBind()); // Assert.assertEquals("vsz", // "OD/kCGIFbjLTW0po6IZSmoaz3uhPYlO3S5bs9JnK0A5DHtufM3APLuDc3Llp4PeNdEa4NrCmgHr1YUiHT5irT8eDAfGpIbQHJg==", @@ -595,8 +560,8 @@ public class ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTaskTest { // Assert.assertEquals("AuthBlockType", AuthHandlerConstants.AuthBlockType.JWS, session.getSignedAuthBlockType()); Assert.assertEquals("LoA", "http://eidas.europa.eu/LoA/low", session.getQaaLevel()); - Assert.assertEquals("CountryCode", "IT", session.getGenericDataFromSession( - ExtendedPvpAttributeDefinitions.EID_ISSUING_NATION_NAME, String.class)); +// Assert.assertEquals("CountryCode", "IT", session.getGenericDataFromSession( +// ExtendedPvpAttributeDefinitions.EID_ISSUING_NATION_NAME, String.class)); Assert.assertEquals("IssueInstant", "2014-03-05T06:39:51Z", session.getIssueInstantString()); // Assert.assertNull("SigCert", session.getEncodedSignerCertificate()); @@ -649,25 +614,25 @@ public class ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTaskTest { final AuthProcessDataWrapper session = pendingReq.getSessionData(AuthProcessDataWrapper.class); Assert.assertFalse("E-ID flag", session.isEidProcess()); - Assert.assertTrue("Foreign flag", session.isForeigner()); +// Assert.assertTrue("Foreign flag", session.isForeigner()); Assert.assertEquals("LoA", "http://eidas.europa.eu/LoA/test", session.getQaaLevel()); - Assert.assertEquals("CountryCode", "AB", session.getGenericDataFromSession( - ExtendedPvpAttributeDefinitions.EID_ISSUING_NATION_NAME, String.class)); +// Assert.assertEquals("CountryCode", "AB", session.getGenericDataFromSession( +// ExtendedPvpAttributeDefinitions.EID_ISSUING_NATION_NAME, String.class)); Assert.assertEquals("IssueInstant", "2014-03-05T06:39:51Z", session.getIssueInstantString()); - Assert.assertEquals("FamilyName", "Mustermann", session.getGenericDataFromSession( - ExtendedPvpAttributeDefinitions.PRINCIPAL_NAME_NAME, String.class)); - Assert.assertEquals("Givenname", "Max", session.getGenericDataFromSession( - ExtendedPvpAttributeDefinitions.GIVEN_NAME_NAME, String.class)); - Assert.assertEquals("DateOfBirth", "1940-01-01", session.getGenericDataFromSession( - ExtendedPvpAttributeDefinitions.BIRTHDATE_NAME, String.class)); - - Assert.assertEquals("bPK", "BF:QVGm48cqcM4UcyhDTNGYmVdrIoY=", session.getGenericDataFromSession( - ExtendedPvpAttributeDefinitions.BPK_NAME, String.class)); - Assert.assertEquals("bPK-Target", "urn:publicid:gv.at:cdid+BF", session.getGenericDataFromSession( - ExtendedPvpAttributeDefinitions.EID_SECTOR_FOR_IDENTIFIER_NAME, String.class)); - Assert.assertEquals("AuthBlock", TEST_SIGNED_AUTHBLOCK, session.getGenericDataFromSession( - ExtendedPvpAttributeDefinitions.EID_IDENTITY_LINK_NAME, String.class)); +// Assert.assertEquals("FamilyName", "Mustermann", session.getGenericDataFromSession( +// ExtendedPvpAttributeDefinitions.PRINCIPAL_NAME_NAME, String.class)); +// Assert.assertEquals("Givenname", "Max", session.getGenericDataFromSession( +// ExtendedPvpAttributeDefinitions.GIVEN_NAME_NAME, String.class)); +// Assert.assertEquals("DateOfBirth", "1940-01-01", session.getGenericDataFromSession( +// ExtendedPvpAttributeDefinitions.BIRTHDATE_NAME, String.class)); +// +// Assert.assertEquals("bPK", "BF:QVGm48cqcM4UcyhDTNGYmVdrIoY=", session.getGenericDataFromSession( +// ExtendedPvpAttributeDefinitions.BPK_NAME, String.class)); +// Assert.assertEquals("bPK-Target", "urn:publicid:gv.at:cdid+BF", session.getGenericDataFromSession( +// ExtendedPvpAttributeDefinitions.EID_SECTOR_FOR_IDENTIFIER_NAME, String.class)); +// Assert.assertEquals("AuthBlock", TEST_SIGNED_AUTHBLOCK, session.getGenericDataFromSession( +// ExtendedPvpAttributeDefinitions.EID_IDENTITY_LINK_NAME, String.class)); // Assert.assertNull("SigCert", session.getEncodedSignerCertificate()); // Assert.assertNull("eidasBind", session.getQcBind()); @@ -711,27 +676,27 @@ public class ReceiveMobilePhoneSignatureResponseAndSearchInRegistersTaskTest { // Assert.assertTrue("E-ID flag", session.isEidProcess()); // Assert.assertTrue("Foreign flag", session.isForeigner()); Assert.assertEquals("LoA", "http://eidas.europa.eu/LoA/test", session.getQaaLevel()); - Assert.assertEquals("CountryCode", "AB", session.getGenericDataFromSession( - ExtendedPvpAttributeDefinitions.EID_ISSUING_NATION_NAME, String.class)); +// Assert.assertEquals("CountryCode", "AB", session.getGenericDataFromSession( +// ExtendedPvpAttributeDefinitions.EID_ISSUING_NATION_NAME, String.class)); Assert.assertEquals("IssueInstant", "2014-03-05T06:39:51Z", session.getIssueInstantString()); // Assert.assertEquals("eidasBind", EIDAS_BIND, session.getQcBind()); // Assert.assertArrayEquals("signedConsent", // Base64.getDecoder().decode(TEST_SIGNED_AUTHBLOCK), session.getSignedAuthBlock()); - Assert.assertEquals("FamilyName", "Mustermann", session.getGenericDataFromSession( - ExtendedPvpAttributeDefinitions.PRINCIPAL_NAME_NAME, String.class)); - Assert.assertEquals("Givenname", "Max", session.getGenericDataFromSession( - ExtendedPvpAttributeDefinitions.GIVEN_NAME_NAME, String.class)); - Assert.assertEquals("DateOfBirth", "1940-01-01", session.getGenericDataFromSession( - ExtendedPvpAttributeDefinitions.BIRTHDATE_NAME, String.class)); - - Assert.assertEquals("FamilyName", "BF:QVGm48cqcM4UcyhDTNGYmVdrIoY=", session.getGenericDataFromSession( - ExtendedPvpAttributeDefinitions.BPK_NAME, String.class)); - Assert.assertEquals("FamilyName", "urn:publicid:gv.at:cdid+BF", session.getGenericDataFromSession( - ExtendedPvpAttributeDefinitions.EID_SECTOR_FOR_IDENTIFIER_NAME, String.class)); - Assert.assertEquals("FamilyName", TEST_SIGNED_AUTHBLOCK, session.getGenericDataFromSession( - ExtendedPvpAttributeDefinitions.EID_IDENTITY_LINK_NAME, String.class)); +// Assert.assertEquals("FamilyName", "Mustermann", session.getGenericDataFromSession( +// ExtendedPvpAttributeDefinitions.PRINCIPAL_NAME_NAME, String.class)); +// Assert.assertEquals("Givenname", "Max", session.getGenericDataFromSession( +// ExtendedPvpAttributeDefinitions.GIVEN_NAME_NAME, String.class)); +// Assert.assertEquals("DateOfBirth", "1940-01-01", session.getGenericDataFromSession( +// ExtendedPvpAttributeDefinitions.BIRTHDATE_NAME, String.class)); +// +// Assert.assertEquals("FamilyName", "BF:QVGm48cqcM4UcyhDTNGYmVdrIoY=", session.getGenericDataFromSession( +// ExtendedPvpAttributeDefinitions.BPK_NAME, String.class)); +// Assert.assertEquals("FamilyName", "urn:publicid:gv.at:cdid+BF", session.getGenericDataFromSession( +// ExtendedPvpAttributeDefinitions.EID_SECTOR_FOR_IDENTIFIER_NAME, String.class)); +// Assert.assertEquals("FamilyName", TEST_SIGNED_AUTHBLOCK, session.getGenericDataFromSession( +// ExtendedPvpAttributeDefinitions.EID_IDENTITY_LINK_NAME, String.class)); // Assert.assertNull("SigCert", session.getEncodedSignerCertificate()); diff --git a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_with_EID.xml b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_with_EID.xml index cd2cceb5..327209ef 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_with_EID.xml +++ b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_with_EID.xml @@ -23,21 +23,16 @@ </saml2:AuthnContext> </saml2:AuthnStatement> <saml2:AttributeStatement> - <saml2:Attribute FriendlyName="piiTransactionId" Name="urn:eidgvat:attributes.piiTransactionId" 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">piiId_112233445566</saml2:AttributeValue> - </saml2:Attribute> <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="EID-CITIZEN-QAA- EIDAS-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.108" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> + <saml2:Attribute FriendlyName="EID-CITIZEN-QAA-EIDAS-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.108" 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">http://eidas.europa.eu/LoA/low</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">IT</saml2:AttributeValue> </saml2:Attribute> - <saml2:Attribute FriendlyName="eidBind" Name="urn:eidgvat:attributes.eidbind" 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">eyJhbGciOiJQUzI1NiIsInVybjphdC5ndi5laWQ6YmluZHR5cGUiOiJ1cm46YXQuZ3YuZWlkOmJjQmluZCIsIng1dCNTMjU2IjoidmZDUTQ1eE9ndEhqWGFTQ0FDbVpPRzFVem9kSFpLaFVDZ1pxek50SU45SSJ9.ewogICJ1cm46ZWlkZ3ZhdDphdHRyaWJ1dGVzLnZzei52YWx1ZSI6ICJPRC9rQ0dJRmJqTFRXMHBvNklaU21vYXozdWhQWWxPM1M1YnM5Sm5LMEE1REh0dWZNM0FQTHVEYzNMbHA0UGVOZEVhNE5yQ21nSHIxWVVpSFQ1aXJUOGVEQWZHcEliUUhKZz09IiwKICAidXJuOmVpZGd2YXQ6YXR0cmlidXRlcy51c2VyLnB1YmtleXMiOiBbCiAgICAiTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUE3UCtIclFwYVBXU1VpT0R1dkxackUzejlhTHMyc3NjR3pzd3NaazZsc0lQNjYyZVkwbnZkME04Vy9STG1ZTUV2ejZIaWNGNEEvZjA1WHBlSjROODlRWEtWaWJkUkdDTUNObGhEUW1LZ0xaVitIajdmQmZrcmdaWXpHUitlSTZkclU5Y1JRSHQ2NE9EL2lJRTFxTzhHbXF2a2EzUnhsOXV3V05GMUJMTDFORTVQenNDUzNuQUs3c1hSM2lVS0RDbVJ2RGx5WjQvTFJDMjRLbFhOc2doTkVSVlRnY2lvdzhGLzJSaHcwM0dUdllaU0c4dmxlTmRoaUVYR2grQlBqUW91cmlPRmg2TFVEY0djSnFJbFdacEZXUzYwNlRreG5BNEtacld2VkFBSjMwcGpBTkorUENVem11Z2lhcWxoaHRWQ1FwQjVwb0ZIR2UzRXJaUy8yME1oQ3dJREFRQUIiCiAgXSwKICAidXJuOmVpZGd2YXQ6YXR0cmlidXRlcy5laWQuc3RhdHVzIjogInVybjplaWRndmF0OmVpZC5zdGF0dXMubGlnaHQiLAogICJ1cm46ZWlkZ3ZhdDphdHRyaWJ1dGVzLmJpbmRpbmcuYXV0aGJsb2NrIjogewogICAgImhhc2hBbGciOiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhNTEyIiwKICAgICJ2YWx1ZSI6ICJhYWFiYmJjY2NkZGRlZWVmZmZnZ2ciCiAgfSwKICAidXJuOm9pZDoxLjIuNDAuMC4xMC4yLjEuMS4yNjEuMzIiOiJDWiIsCiAgInVybjplaWRndmF0Om1kcyI6ewogICAgICAidXJuOm9pZDoyLjUuNC40MiI6IlhYWENsYXVzIC0gTWFyaWEiLAogICAgICAidXJuOm9pZDoxLjIuNDAuMC4xMC4yLjEuMS4yNjEuMjAiOiJYWFh2b24gQnJhbmRlbmJ1cmciLAogICAgICAidXJuOm9pZDoxLjIuNDAuMC4xMC4yLjEuMS41NSI6IjE5ODQtMTItMzEiCiAgIH0sCiAgICAidXJuOmVpZGd2YXQ6YXR0cmlidXRlcy5hcHBsaWNhdGlvbi5yZXN0cmljdGlvbiI6IFsKICAgICJhcHBJZDEiLAogICAgImFwcElkMiIKICBdCn0.M83-8edNj64SBXV7BEZUTAgqFULZTmvFFmIdJ-GKCdJIWw-AXlfOCzCdvFYg1Y9_yfjWHuPWFJmh8RXzXN6yRqv8LjtxsK8qBmT3Xsg3puMrpTSiImoM1iSHTaVXZlSV74vj9Fdr9EXrTIZFA7Uj-JBFRQ_mkYdCdWnrIwwm3ojxnq_wrSepO_uYOOQ0w7lTveTyn_iXKVAk3f8N0gibODXXUiTnCuOr6CqZwKwiwuwgDNZEItkpR7r_qpZSwwim1OOc7JTQFi05ANRe8lP4YRLfGatp6FX-Tu4krT0xsgrd0bTKSYOaP11mOhftLAp-wOB-04zkfs0b7yYw6CGVHg</saml2:AttributeValue> - </saml2:Attribute> + <saml2:Attribute FriendlyName="userAuthBlock" Name="urn:eidgvat:attributes.authblock.signed" 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">MIIBbjCCARSgAwIBAgIEXh7TNzAKBggqhkjOPQQDAjA/MQswCQYDVQQGEwJBVDENMAsGA1UECgwERUdJWjEOMAwGA1UECwwFalVuaXQxETAPBgNVBAMMCG1ldGFkYXRhMB4XDTIwMDExNTA4NTQxNVoXDTMwMDExNDA4NTQxNVowPzELMAkGA1UEBhMCQVQxDTALBgNVBAoMBEVHSVoxDjAMBgNVBAsMBWpVbml0MREwDwYDVQQDDAhtZXRhZGF0YTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBdBkaxt31p++aZeP3SmlWITj9SYO4McV2ccXFsH4X4QMHuKAMUvjxPm1kdU01eTOWdiQX0GpDIBspYMZh8ZKcwwCgYIKoZIzj0EAwIDSAAwRQIhAJ3QKlk9cd90s+i8y62fvmGF6LtfNO+JvkWqDUBeQImnAiA2KwFtzO7STAp9MEwQGe0vt0F8mO1ttrLE+rr6YxdwGA==</saml2:AttributeValue> </saml2:Attribute> diff --git a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_with_legacy.xml b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_with_legacy.xml index 357b873d..1bc93fae 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_with_legacy.xml +++ b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_with_legacy.xml @@ -26,7 +26,7 @@ <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="EID-CITIZEN-QAA- EIDAS-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.108" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> + <saml2:Attribute FriendlyName="EID-CITIZEN-QAA-EIDAS-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.108" 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">http://eidas.europa.eu/LoA/test</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"> diff --git a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_with_legacy_and_EID.xml b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_with_legacy_and_EID.xml index a2aec0d0..0d465c81 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_with_legacy_and_EID.xml +++ b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_with_legacy_and_EID.xml @@ -26,7 +26,7 @@ <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="EID-CITIZEN-QAA- EIDAS-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.108" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> + <saml2:Attribute FriendlyName="EID-CITIZEN-QAA-EIDAS-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.108" 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">http://eidas.europa.eu/LoA/test</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"> @@ -50,15 +50,9 @@ <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:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">MIIBbjCCARSgAwIBAgIEXh7TNzAKBggqhkjOPQQDAjA/MQswCQYDVQQGEwJBVDENMAsGA1UECgwERUdJWjEOMAwGA1UECwwFalVuaXQxETAPBgNVBAMMCG1ldGFkYXRhMB4XDTIwMDExNTA4NTQxNVoXDTMwMDExNDA4NTQxNVowPzELMAkGA1UEBhMCQVQxDTALBgNVBAoMBEVHSVoxDjAMBgNVBAsMBWpVbml0MREwDwYDVQQDDAhtZXRhZGF0YTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBdBkaxt31p++aZeP3SmlWITj9SYO4McV2ccXFsH4X4QMHuKAMUvjxPm1kdU01eTOWdiQX0GpDIBspYMZh8ZKcwwCgYIKoZIzj0EAwIDSAAwRQIhAJ3QKlk9cd90s+i8y62fvmGF6LtfNO+JvkWqDUBeQImnAiA2KwFtzO7STAp9MEwQGe0vt0F8mO1ttrLE+rr6YxdwGA==</saml2:AttributeValue> </saml2:Attribute> - <saml2:Attribute FriendlyName="eidBind" Name="urn:eidgvat:attributes.eidbind" 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">eyJhbGciOiJQUzI1NiIsInVybjphdC5ndi5laWQ6YmluZHR5cGUiOiJ1cm46YXQuZ3YuZWlkOmJjQmluZCIsIng1dCNTMjU2IjoidmZDUTQ1eE9ndEhqWGFTQ0FDbVpPRzFVem9kSFpLaFVDZ1pxek50SU45SSJ9.ewogICJ1cm46ZWlkZ3ZhdDphdHRyaWJ1dGVzLnZzei52YWx1ZSI6ICJPRC9rQ0dJRmJqTFRXMHBvNklaU21vYXozdWhQWWxPM1M1YnM5Sm5LMEE1REh0dWZNM0FQTHVEYzNMbHA0UGVOZEVhNE5yQ21nSHIxWVVpSFQ1aXJUOGVEQWZHcEliUUhKZz09IiwKICAidXJuOmVpZGd2YXQ6YXR0cmlidXRlcy51c2VyLnB1YmtleXMiOiBbCiAgICAiTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUE3UCtIclFwYVBXU1VpT0R1dkxackUzejlhTHMyc3NjR3pzd3NaazZsc0lQNjYyZVkwbnZkME04Vy9STG1ZTUV2ejZIaWNGNEEvZjA1WHBlSjROODlRWEtWaWJkUkdDTUNObGhEUW1LZ0xaVitIajdmQmZrcmdaWXpHUitlSTZkclU5Y1JRSHQ2NE9EL2lJRTFxTzhHbXF2a2EzUnhsOXV3V05GMUJMTDFORTVQenNDUzNuQUs3c1hSM2lVS0RDbVJ2RGx5WjQvTFJDMjRLbFhOc2doTkVSVlRnY2lvdzhGLzJSaHcwM0dUdllaU0c4dmxlTmRoaUVYR2grQlBqUW91cmlPRmg2TFVEY0djSnFJbFdacEZXUzYwNlRreG5BNEtacld2VkFBSjMwcGpBTkorUENVem11Z2lhcWxoaHRWQ1FwQjVwb0ZIR2UzRXJaUy8yME1oQ3dJREFRQUIiCiAgXSwKICAidXJuOmVpZGd2YXQ6YXR0cmlidXRlcy5laWQuc3RhdHVzIjogInVybjplaWRndmF0OmVpZC5zdGF0dXMubGlnaHQiLAogICJ1cm46ZWlkZ3ZhdDphdHRyaWJ1dGVzLmJpbmRpbmcuYXV0aGJsb2NrIjogewogICAgImhhc2hBbGciOiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhNTEyIiwKICAgICJ2YWx1ZSI6ICJhYWFiYmJjY2NkZGRlZWVmZmZnZ2ciCiAgfSwKICAidXJuOm9pZDoxLjIuNDAuMC4xMC4yLjEuMS4yNjEuMzIiOiJDWiIsCiAgInVybjplaWRndmF0Om1kcyI6ewogICAgICAidXJuOm9pZDoyLjUuNC40MiI6IlhYWENsYXVzIC0gTWFyaWEiLAogICAgICAidXJuOm9pZDoxLjIuNDAuMC4xMC4yLjEuMS4yNjEuMjAiOiJYWFh2b24gQnJhbmRlbmJ1cmciLAogICAgICAidXJuOm9pZDoxLjIuNDAuMC4xMC4yLjEuMS41NSI6IjE5ODQtMTItMzEiCiAgIH0sCiAgICAidXJuOmVpZGd2YXQ6YXR0cmlidXRlcy5hcHBsaWNhdGlvbi5yZXN0cmljdGlvbiI6IFsKICAgICJhcHBJZDEiLAogICAgImFwcElkMiIKICBdCn0.M83-8edNj64SBXV7BEZUTAgqFULZTmvFFmIdJ-GKCdJIWw-AXlfOCzCdvFYg1Y9_yfjWHuPWFJmh8RXzXN6yRqv8LjtxsK8qBmT3Xsg3puMrpTSiImoM1iSHTaVXZlSV74vj9Fdr9EXrTIZFA7Uj-JBFRQ_mkYdCdWnrIwwm3ojxnq_wrSepO_uYOOQ0w7lTveTyn_iXKVAk3f8N0gibODXXUiTnCuOr6CqZwKwiwuwgDNZEItkpR7r_qpZSwwim1OOc7JTQFi05ANRe8lP4YRLfGatp6FX-Tu4krT0xsgrd0bTKSYOaP11mOhftLAp-wOB-04zkfs0b7yYw6CGVHg</saml2:AttributeValue> - </saml2:Attribute> <saml2:Attribute FriendlyName="userAuthBlock" Name="urn:eidgvat:attributes.authblock.signed" 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">MIIBbjCCARSgAwIBAgIEXh7TNzAKBggqhkjOPQQDAjA/MQswCQYDVQQGEwJBVDENMAsGA1UECgwERUdJWjEOMAwGA1UECwwFalVuaXQxETAPBgNVBAMMCG1ldGFkYXRhMB4XDTIwMDExNTA4NTQxNVoXDTMwMDExNDA4NTQxNVowPzELMAkGA1UEBhMCQVQxDTALBgNVBAoMBEVHSVoxDjAMBgNVBAsMBWpVbml0MREwDwYDVQQDDAhtZXRhZGF0YTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBdBkaxt31p++aZeP3SmlWITj9SYO4McV2ccXFsH4X4QMHuKAMUvjxPm1kdU01eTOWdiQX0GpDIBspYMZh8ZKcwwCgYIKoZIzj0EAwIDSAAwRQIhAJ3QKlk9cd90s+i8y62fvmGF6LtfNO+JvkWqDUBeQImnAiA2KwFtzO7STAp9MEwQGe0vt0F8mO1ttrLE+rr6YxdwGA==</saml2:AttributeValue> </saml2:Attribute> - <saml2:Attribute FriendlyName="piiTransactionId" Name="urn:eidgvat:attributes.piiTransactionId" 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">piiTrans_11223344556677</saml2:AttributeValue> - </saml2:Attribute> </saml2:AttributeStatement> </saml2:Assertion> </saml2p:Response> diff --git a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_without_sig_with_error.xml b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_without_sig_with_error.xml index 28dd9d92..56b06534 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_without_sig_with_error.xml +++ b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_without_sig_with_error.xml @@ -29,7 +29,7 @@ <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="EID-CITIZEN-QAA- EIDAS-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.108" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> + <saml2:Attribute FriendlyName="EID-CITIZEN-QAA-EIDAS-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.108" 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">http://eidas.europa.eu/LoA/low</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"> diff --git a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_without_sig_with_error_empty_subcode.xml b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_without_sig_with_error_empty_subcode.xml index 4a4566df..973491d8 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_without_sig_with_error_empty_subcode.xml +++ b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_without_sig_with_error_empty_subcode.xml @@ -29,7 +29,7 @@ <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="EID-CITIZEN-QAA- EIDAS-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.108" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> + <saml2:Attribute FriendlyName="EID-CITIZEN-QAA-EIDAS-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.108" 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">http://eidas.europa.eu/LoA/low</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"> diff --git a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_without_sig_with_error_userstop.xml b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_without_sig_with_error_userstop.xml index 7ca0f134..087bcb1f 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_without_sig_with_error_userstop.xml +++ b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_without_sig_with_error_userstop.xml @@ -29,7 +29,7 @@ <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="EID-CITIZEN-QAA- EIDAS-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.108" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> + <saml2:Attribute FriendlyName="EID-CITIZEN-QAA-EIDAS-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.108" 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">http://eidas.europa.eu/LoA/low</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"> diff --git a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_without_sig_with_error_without_subcode.xml b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_without_sig_with_error_without_subcode.xml index 2a068dbe..e449327a 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_without_sig_with_error_without_subcode.xml +++ b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/data/Response_without_sig_with_error_without_subcode.xml @@ -28,7 +28,7 @@ <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="EID-CITIZEN-QAA- EIDAS-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.108" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> + <saml2:Attribute FriendlyName="EID-CITIZEN-QAA-EIDAS-LEVEL" Name="urn:oid:1.2.40.0.10.2.1.1.261.108" 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">http://eidas.europa.eu/LoA/low</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"> |