Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Swedish

Denna sida beskriver best-practices kring värdet för subject-id för IdP:er inom SWAMID.

Table of Contents

Bakgrund

Sedan SWAMID bildades 2010 har eduPersonPrincipalName (eppn) rekommenderats som 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. SWAMID kräver 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 andra federationer inom eduGAIN tillåter att attributet återanvänds till andra individer. Det gör att attributet fungerar sämre som identifierare utanför SWAMID.

För att hantera detta har en ny identifierare arbetats fram, subject-id.

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

  • Den har ett scope (@org.se)
  • Den får aldrig kopplas till en annan individ (någonsin)
  • Den liknar en e-postadress (men bör inte vara en e-postadress)
  • Ska behandlas case-insensitive, dvs AnvandarNamn@ORG.SE ska räknas som samma värde som anvandarnamn@org.se

Kravet för subject-id finns definierat i 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).

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

  • eppn: A-Z, a-z, 0-9, punkt (.), bindestreck (-), underscore (_)
  • subject-id: A-Z, a-z, 0-9, bindestreck (-), likhetstecken (=)

Rekommendation

Utifrån detta är SWAMIDs rekommendation:

Det finns främst två lösningar på detta:

  • Alternativ 1: Översätt eppn till subject-id på ett deterministiskt sätt
  • Alternativ 2: Hitta på ett nytt värde till subject-id

Båda alternativen har för- och nackdelar.

Alternativ 1 - översätt eppn till subject-id

  • Använd eppn som bas för värde på subject-id
    • Ersätt understreck (_) med =5F
    • Ersätt punkt (.) med =2E
    • Exempel:
      • anna_b@org.seranna%5Fb@org.se
      • fornamn.efternamn1-efternamn2@org.sefornamn=2Eefternamn1=5Fefternamn2@org.se
  • Säkerställ att eppn (och subject-id) aldrig återanvänds (speciellt viktigt om e-postadress används i eppn idag)
    • Detta följer av tillitsprofilen, teknologiprofilen samt GDPR (och av med direkt säkerhetsskäl för risk vid tillgång )E-postadress riskerar återanvändas till annan individ (har förekommit efter rektorsbeslut) och skall därför inte användasav obehörig tillgång till annans data
    • Om e-postadress används idag, se till att de aldrig återanvänds och skapa en annan identifierare än e-postadress för nya användare I (utan punkt och understreck)
    • Det förekommer idag att e-postadress återanvänds, ibland efter direkt rektorsbeslut

Fördelar:

  • Tjänster kan ersätta eppn med subject-id får inte . användas, därför ska det inte användas i eppn heller
  • Använd eppn som bas för subject-id

  • Ersätt underscore (_) med =5F

  • Ersätt punkt (.) med =2E

  • Exempel: fornamn.efter-namn@org.sefornamn=2Eefter=5Fnamn@org.se
  • utan förändring, förutom för just de användare där understreck eller punkt förekommer i eppn, och då antingen göra en översättning med =5F/=2E eller kräva nya användaridentiteter i tjänsten för endast dessa användare
  • Användarnamnen är väl inarbetade och känns igen av användarna

Nackdelar

  • De eppn som innehåller understreck eller punkt får förvirrande nytt värde som subject-id
  • Väl inarbetade användarnamn känns inte längre igen i systemet och skiljer sig från vad som används vid inloggning i IdP:erna

Implementering i Shibboleth

Implementering i ADFS

Alternativ 2 - Hitta på nya värden för subject-id

  • Välj ett nytt värde på subject-id som saknar direkt koppling till subject-id
  • Använd inte punkt eller understreck i nya subject-id-värden
  • Välj något som är förhållandesvis enkelt att hantera av människor
    • Dåligt exempel: 488d2f98-b670-4c13-aedf-c5b4d0783efb@org.se
    • Bra exempel: andber01@org.se (för Anders Bertilsson)
    • Bra exempel: lusab-babad@org.se (Proquints, används av eduID och Antagning.se)

Fördelar:

  • Chans att börja om med unika identifierare som inte riskerar att återanvändas (till skillnad från e-postadresser som används för eppn av många organisationer inom SWAMID idag)

Nackdelar

    • Användare behöver hantera nya användarnamn (vid inloggning eller som visas i gränssnitt)
    • Tjänster behöver hantera användarnamnbyte via exempelvis någon av dessa metoder:
      • Använda eppn men spara undan subject-id under en övergångsperiod för att sedan gå över till bara subject-id-värden
      • Byta alla användarnamn i systemet samtidigt
      • Skapa upp nya användare och tappa information


English

Background

As some applications do not support special characters in identifiers, eduPersonPrincipalName MUST only contain the following characters: alpanumeric characters, dot ('.'), hyphen ('-') and underscore ('_'). 

...