SWAMID och alla andra akademiska identitetsfederationer inom eduGAIN inför en ny långsiktigt unik identifierare, subject-id, som på sikt ersätter eduPersonPrincipalName (ePPN). Denna wikisida beskriver både varför en ny långsiktigt unik identifierare behövs och hur vi under ordnade former byter.

Bakgrund

Sedan SWAMID bildades 2007 har eduPersonPrincipalName (ePPN) rekommenderats som identifierande attribut för att förmedla användarnamn från identitetsutfärdare (IdP) till tjänster (SP). En majoritet av tjänsterna i SWAMID använder ePPN som identifierare av användare. För att säkerställa att organisationen följer svensk lagstiftning avseende åtkomst och hantering av personuppgifter samt känsliga uppgifter, t.ex. Dataskyddsförordningen, kräver SWAMID i sina tillitsprofiler och i teknologiprofilen för SAML att ePPN är globalt unik och aldrig återanvänds till en annan individ:

SWAMID Identity Assurance profiles:

5.2.3 Each Subject MUST be represented by one or more globally unique identifiers.

Subject identifiers MUST NOT be re-assigned.

SWAMID SAML WebSSO Technology Profile:

5.5.3 An Identity Provider MUST support release of the attribute eduPersonPrincipalName. The value of the attribute for a Subject MUST NOT be reassigned to another Subject.

Guidance: The e-mail address of a Subject is not suitable as value for the attribute eduPersonPrincipalName due to name changes and later reassignments to other Subjects.

Ett problem med ePPN är att vissa identitetsfederationer inom eduGAIN tillåter att attributet återanvänds till andra individer. Det gör att attributet fungerar sämre som identifierare internationellt. När en individ slutar vid en organisation så är det högst sannolikt att individens behörigheter finns kvar i federerade tjänster, kopplade till individens användarnamn (ePPN). Om då en ny individ vid samma organisation får samma användarnamn kommer den nya individen med automatik ha samma behörigheter och tillgång till samma data som den föregående innehavaren av användarnamnet. Av denna anledning är det ett absolut krav att användarnamn ej återanvänds till andra individer.

För att hantera detta har en ny identifierare, subject-id, arbetats fram, definerad som General Purpose Subject Identifier (avsnitt 3.3) i SAML V2.0 Subject Identifier Attributes Profile Version 1.0.

Från SWAMID SAML WebSSO Technology Profile:

5.5.4 An Identity Provider MUST support the release of the attribute subject-id. The value of the attribute for a Subject MUST NOT be reassigned to another Subject.

Guidance: The subject-id is a globally unique identifier identical for all Relying Parties for a given Subject. SWAMID recommends that the value of eduPersonPrincipalName is used for subject-id since it is already defined for all Subjects, widely used as identifier in Relying Parties in SWAMID, unique and non-reassigned for all Identity Providers in SWAMID. The subject-id should not be changed as a result of a change to any other data associated with the Subject (e.g., name, email address, organisational role).

Skillnader mellan ePPN och subject-id

subject-id har samma egenskaper som ePPN har i SWAMID:

Det finns dock en viktig skillnad mellan ePPN och subject-id, dess tillåtna tecken:

Övrigt att ta hänsyn till

Planera och genomföra bytet i en identitetsutfärdare (IdP)

Det finns tre uppenbara lösningar på detta:

Alternativen har både för- och nackdelar.

Alternativ 1 - Använd ePPN som subject-id om alla krav uppfylls

Om ePPN är valt på ett sätt som säkerställer att de aldrig återanvänds för annan individ och understreck (_) eller punkt (.) inte förekommer går det bra att använda samma värde för subject-id.

Fördelar:

Nackdelar

Alternativ 2 - Byt värde på ePPN (om krav på återanvändning ej uppfylls)

För organisationer som idag använder användarens e-postadress, eller något som baseras på e-postadressen, för ePPN kan det vara lämpligt att passa på att välja ett nytt värde för ePPN som sedan används även för subject-id.

Fördelar:

Nackdelar

Alternativ 3.1 - Översätt ePPN till subject-id genom att ta bort oönskade tecken

Om ePPN är valt på ett sätt som säkerställer att de aldrig återanvänds för annan individ men understreck (_) eller punkt (.) förekommer går det att ta bort oönskade tecken från ePPN för att bilda subject-id.

Fördelar:

Nackdelar

Implementering i Shibboleth

Ersättning av punkt och understreck i Shibboleth Identity Provider finns beskrivet i Example of a standard attribute resolver for Shibboleth IdP v4 and above. Med mindre justeringar kan i stället tecken plockas bort. Innan dess behöver det säkerställas att två individer inte kan få samma subject-id.

Implementering i ADFS

Stöd för ändring av värde från ePPN till subject-id planeras till version 2.3 av ADFSToolkit.

Alternativ 3.2 - Översätt ePPN till subject-id med ersättningstecken

Om ePPN är valt på ett sätt som säkerställer att de aldrig återanvänds för annan individ men understreck (_) eller punkt (.) förekommer går det att ersätta oönskade tecken i ePPN för att bilda subject-id.

Fördelar:

Nackdelar

Implementering i Shibboleth

Ersättning av punkt och understreck i Shibboleth Identity Provider finns beskrivet i Example of a standard attribute resolver for Shibboleth IdP v4 and above.

Implementering i ADFS

Stöd för ändring av värde från ePPN till subject-id planeras till version 2.3 av ADFSToolkit.

Alternativ 4 - Välj nya värden för subject-id

Om ePPN är valt på ett sätt som säkerställer att de aldrig återanvänds för annan individ men understreck (_) eller punkt (.) förekommer finns chans att välja nya värden för dessa eller alla användare för att bilda subject-id.

Fördelar:

Nackdelar

Planera och genomföra bytet i en tjänst (SP)

Tänk på att alltid jämföra användaridentifierarna ePPN och subject-id case-insensitive, dvs AnvandarNamn@ORG.SE ska räknas som samma värde som anvandarnamn@org.se.

Förslag på process för att byta från ePPN som användaridentifierare till subject-id

Tjänster med få användare eller utan möjlighet att automatisera byte av användarnamn

  1. Samla in nya användarnamn för användare (subject-id)
    1. Ändra manuellt i systemet
    2. Byt till subject-id som identifierare

Tjänster med många användare och möjlighet att automatisera byte användarnamn

  1. Inventera vilka användare som använder tjänsten samt värden för ePPN och subject-id för dessa.
    1. Markera tjänsten med entitetskategorin Personalized för att ta emot subject-id från IdP:er
  2. Jämför ePPN med subject-id
    1. Om de är lika för alla användare
      1. Byt till subject-id som identifierare
    2. Om de skiljer sig på ett deterministiskt sätt (om exempelvis alla punkter och understreck är bortplockade)
      1. Utarbeta regler i tjänsten för översättning
      2. Uppdatera användardatabasen till subject-id-värdena
      3. Byt till subject-id som identifierare
    3. Om de skiljer sig på ett icke deterministiskt sätt (om exempelvis många användare har helt andra värden på subject-id än ePPN)
      1. Spara undan subject-id för användare under en övergångsperiod (exempelvis via en extra kolumn i användartabellen i databasen eller loggning)
      2. Upplys användare via en säker kanal om att de behöver logga in senast ett visst datum för att behålla tillgång till systemet
      3. Byt till subject-id som identifierare