Denna metod är numera deprekerad i Shibboleth till förmån för Lagrad pseudonym identifierare

DataConnector

Skapa följande DataConnector i attribute-resolver.xml:

<resolver:DataConnector xsi:type="ComputedId" xmlns="urn:mace:shibboleth:2.0:resolver:dc"
                            id="ComputedId"
                            generatedAttributeID="computedId"
                            sourceAttributeID="uid"
                            salt="large random salt value">
   <resolver:Dependency ref="myLDAP" />
</resolver:DataConnector>

Om du använder AD så kan det vara lämpligt att använda sAMAccountName som källa till uid. Det är dock fortfarande helt rimligt att @id för motsvarande AttributeDefinition är uid.

Här ska myLDAP ersättas med @id-attributet från den DataConnector som används för att hämta user-information. Ersätt "large random salt value" med ett stort (mellan 16 och 48 tecken) långt slumpmässigt lösenord. Ett sätt att generera ett sådant är programmet apg eller följande kommando:

# openssl rand -base64 36 2>/dev/null

Detta lösenord är mycket viktigt att spara - om det går förlorat eller behöver ändras kommer alla pseudonymer att ändras vilket betyder att alla SPer kommer att uppfatta inloggningar som "nya".

Skapa slutligen en PrincipalConnector i attribute-resolver.xml enligt:

<resolver:PrincipalConnector xsi:type="ComputedId" xmlns="urn:mace:shibboleth:2.0:resolver:pc" id="saml2Persistent"
        nameIDFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
        storedIdDataConnectorRef="ComputedId" />

Attribut-definitioner

Börja med att se till att definitionen av attributet uid finns i attribute-resolver.xml och inte är utkommenterat. Om du använder AD så kan detta vara baserat på sAMAccountName istället men attributet kan fortfarande heta uid.

Skapa nu följande två attribut-definitioner i attribute-resolver.xml. Det första är legacy-attributet eduPersonPrincipalName och det andra den nya definitionen baserat på SAML 2.0 NameID. SWAMID rekommenderar att båda görs tillgängliga till alla SPer.

<resolver:AttributeDefinition id="eduPersonTargetedID" xsi:type="SAML2NameID"
        xmlns="urn:mace:shibboleth:2.0:resolver:ad"
        sourceAttributeID="computedId">

   <resolver:Dependency ref="ComputedId" />

   <resolver:AttributeEncoder xsi:type="SAML1XMLObject" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
             name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" />
   
   <resolver:AttributeEncoder xsi:type="SAML2XMLObject" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
             name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" friendlyName="eduPersonTargetedID" />
</resolver:AttributeDefinition>

<resolver:AttributeDefinition id="computedId" xsi:type="ad:PrincipalName"
                              xmlns="urn:mace:shibboleth:2.0:resolver:ad"
                              sourceAttributeID="computedId">

   <resolver:Dependency ref="ComputedId"/>

   <resolver:AttributeEncoder xsi:type="SAML1StringNameIdentifier"
                               xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
                               nameFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" />

   <resolver:AttributeEncoder xsi:type="SAML2StringNameID"
                               xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
                               nameFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" />
</resolver:AttributeDefinition>

Attribute-release

Detta kommer att göra pseudonymer tillgängliga för alla SP:er vilket är SWAMIDs rekommendation. Om du inte vill lämna ut pseudonyer till alla så måste du ändra PolicyRequirementRule nedan

SWAMID rekommenderar att dessa attribut releasas till alla SP:er. Detta gör man enklast genom följande entry i attribute-filter.xml:

<AttributeFilterPolicy id="releasePermanentIdToAnyone">
   <PolicyRequirementRule xsi:type="basic:ANY" />
   <AttributeRule attributeID="persistentId">
      <PermitValueRule xsi:type="basic:ANY" />
   </AttributeRule>
   <AttributeRule attributeID="eduPersonTargetedID">
      <PermitValueRule xsi:type="basic:ANY" />
   </AttributeRule>
</AttributeFilterPolicy
  • No labels