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