Dal 2019 con la pubblicazione del documento [SAML-SubjectID-v1.0] "SAML V2.0 Subject Identifier Attributes Profile Version 1.0" sono stati standardizzati due nuovi attributi SAML per l'identificazione dei soggetti di sicurezza, per risolvere molti dei problemi legati ai precedenti Subject Identifier.
I nuovi standard sono:
urn:oasis:names:tc:SAML:attribute:subject-id
urn:oasis:names:tc:SAML:attribute:pairwise-id
Quelli che finora sono stati impiegati nella nostra Federazione sono i seguenti (provenienti dallo schema eduPerson):
Configurazione per supportare i nuovi standard in Shibboleth Idp e Sp
Identity Provider (>=4.0.0)
Per abilitare il supporto ed il rilascio di subject-id e pairwise-id è necessario:
Modificare attribute-resolver.xml
Modificare, se necessario, attribute-filter.xml (la versione di default già contiene le regole di rilascio opportune)
Modificare, se necessario, services.xml
Attribute Resolver
Nel file "attribute-resolver.xml" si deve aggiungere la definizione dei 2 nuovi attributi con:
<!-- Schema: SAML Subject ID attributes --><AttributeDefinitionid="samlPairwiseID"xsi:type="Scoped"scope="%{idp.scope}"><InputDataConnectorref="computed"attributeNames="computedId"/></AttributeDefinition><AttributeDefinitionid="samlSubjectID"xsi:type="Scoped"scope="%{idp.scope}"><InputDataConnectorref="myLDAP"attributeNames="%{idp.persistentId.sourceAttribute}"/></AttributeDefinition>
Attribute Filter
Nel file "attribute-filter.xml", all'interno dell'elemento <AttributeFilterPolicyGroup> deve essere presente la seguente regola:
<!-- Example rule for honoring Subject ID requirement tag in metadata. The example supplies pairwise-id if subject-id isn't explicitly required. --><AttributeFilterPolicyid="subject-identifiers"><PolicyRequirementRulexsi:type="ANY"/><AttributeRuleattributeID="samlPairwiseID"><PermitValueRulexsi:type="OR"><Rulexsi:type="EntityAttributeExactMatch"attributeName="urn:oasis:names:tc:SAML:profiles:subject-id:req"attributeNameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"attributeValue="pairwise-id"/><Rulexsi:type="EntityAttributeExactMatch"attributeName="urn:oasis:names:tc:SAML:profiles:subject-id:req"attributeNameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"attributeValue="any"/></PermitValueRule></AttributeRule><AttributeRuleattributeID="samlSubjectID"><PermitValueRulexsi:type="EntityAttributeExactMatch"attributeName="urn:oasis:names:tc:SAML:profiles:subject-id:req"attributeNameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"attributeValue="subject-id"/></AttributeRule></AttributeFilterPolicy>
Services
Nel file services.xml va abilitato l'attribute-filter.xml contenente le regole per il rilascio di subject-id e pairwise-id
<!-- New standard identifier attributes for SAML. --><Attributename="urn:oasis:names:tc:SAML:attribute:subject-id"id="subject-id"><AttributeDecoderxsi:type="ScopedAttributeDecoder"caseSensitive="false"/></Attribute><Attributename="urn:oasis:names:tc:SAML:attribute:pairwise-id"id="pairwise-id"><AttributeDecoderxsi:type="ScopedAttributeDecoder"caseSensitive="false"/></Attribute>
IDEM Entity Registry
Configurare il valore del Subject-ID richiesto dalla scheda EntityAttribute di IDEM Entity Registry tenendo in considerazione che selezionando "Any" si riceverà prevalentemente il valore di pairwise-id in quanto più safe di subject-id.
Configurazione per per supportare i nuovi standard in SimpleSAMLphp Idp e Sp
Il supporto ufficiale alla generazione e al rilascio di subject-id e pairwise-id in SimpleSAMLphp arriva ufficialmente dalla v2.0.0.
Nella nuova versione di SimpleSAMLphp sono stati sviluppati 2 nuovi moduli per il loro supporto: