...
Info |
---|
Konfigurationerna under detta avsnitt fungerar endast för Shibboleth 2 3.4 eller senare. För simpleSAMLphp och ADFS kan konfigurationsexemplen endast användas som inspiration. |
...
Personnummer hämtas via attributet mittPersonnummer från källan myLDAP.
Code Block <resolver:AttributeDefinition id="norEduPersonNIN" <AttributeDefinition xsi:type="Simple" sourceAttributeIDid="mittPersonnummernorEduPersonNIN"> <resolver:Dependency <InputDataConnector ref="myLDAP" /> <resolver:AttributeEncoder xsi:typeattributeNames="SAML1StringnorEduPersonNIN"/> xmlns="urn:mace:shibboleth:2.0:attribute:encoder" <AttributeEncoder xsi:type="SAML1String" name="urn:mace:dir:attribute-def:norEduPersonNIN" encodeType="false" /> <resolver:AttributeEncoder<AttributeEncoder xsi:type="SAML2String" xmlns name="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:1oid:1.3.6.1.4.1.2428.90.1.5" friendlyName="norEduPersonNIN" encodeType="false" /> </resolver:AttributeDefinition>
Hur gör man om man har personnumret i 10 tecken och inte i LDAP-attributet norEduPersonNIN?
...
- Personnummer hämtas via attributet employeeNumber från källan myLDAP, anpassa efter behov.
- Personnumret kan vara både 10 och 12 siffror.
- Använder "sliding windows" utan offset för att dynamiskt hantera 2000-problemet.
Code Block |
---|
<resolver:AttributeDefinition id="norEduPersonNIN"<AttributeDefinition xsi:type="ScriptScriptedAttribute" xmlnsid="urn:mace:shibboleth:2.0:resolver:adnorEduPersonNIN"> <resolver:Dependency ref="myLDAP" /> <resolver:AttributeEncoder xsi:type="enc:SAML1String" name="urn:mace:dir:attribute-def:norEduPersonNIN" /> <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:1.3.6.1.4.1.2428.90.1.5" friendlyName="norEduPersonNIN<InputDataConnector ref="myLDAP" attributeNames="employeeNumber" /> <Script> <![CDATA[ // Script to handle 10 position wide national identity numbers // Create 12 position wide norEduPersonNIN from the attribute mittPersonnummeremployeeNumber // Change employeeNumber to your NIN attribute name employeeNumber to your NIN attribute name try { // Get a ref to the NIN received from ldap // Change mittPersonnummeremployeeNumber to your NIN attribute name nin=employeeNumber.getValues().get(0); // Only do decoration of NINs which are on the format YYMMDDxxxx if(nin.length() == 10) { { // Create the two alternative return strings we have to choose between pnr19 = "19" + nin; pnr20 = "20" + nin; // Extract year/month/day from the NIN string m_y = nin.substring(0,2); m_m = nin.substring(2,4); m_d = nin.substring(4,6); // Create a Date object for the 20xx case datePnr = new Date("20" + m_y, m_m-1, m_d); // Create a Date object for the current date dateCur = new Date(); // Verify the value of datePnr before proceeding if(isNaN(datePnr.valueOf())) { throw("Failed to parse the NIN into a Date object"); } // If the 20xx case is in the future we assume 19xx for the NIN attribute if(datePnr>dateCur) { norEduPersonNIN.getValues().add(pnr19); } else { norEduPersonNIN.getValues().add(pnr20); } } } else if(nin.length() == 12) { 12) { norEduPersonNIN.getValues().add(nin); } else { throw("Not setting any norEduPersonNIN since it is bogus (length=" + nin.length() + "): " + nin); } } } } catch(err) { throw("Not setting any norEduPersonNIN due to exception: " + err); } } ]]> ]]> </Script> </resolver:AttributeDefinition> |
personalIdentityNumber
...