...
Fokus för detta dokument är att beskriva hur arbetet med att definiera attribut och attributprofiler bör drivas framgent för att främja interoperabilitet och för att underlätta för samhällets digitalisering avseende behörighetskontroller.
...
arbetet när man har ett behov av behörighetsgrundande information för ett behörighetsbeslut och hur man säkerställer att denna information uttrycks på ett sätt som främjar interoperabilitet och återanvändbarhet.
Uppdragets leverabler
Arbetsgruppen har i uppdrag att skapa en gemensam och hållbar grund för hantering av behörighetsattribut i federativa och sektorsgemensamma sammanhang.
Syftet är att bidra till en enhetlig, interoperabel och långsiktigt förvaltbar modell som kan användas av kommuner, regioner och nationella aktörer.
Uppdraget omfattar att:
Behörighetsattribut
Ta fram en struktur för hur behörighetattribut namnges och beskrivs
Attributprofiler
Förvaltningsstruktur
- Föreslå förvaltningsstruktur
Definiera hur behörighetsattribut och attributprofiler kan förvaltas över tid, inklusive roller, ansvar, styrande principer och beslutsprocesser. Förvaltningsmodellen ska tydliggöra ägarskap, förändringshantering och samordning mellan berörda aktörer.
- Beskriv attributlistor och hur de kan användas
Hur går man tillväga när man tar fram en attributlista som ska användas inom en domän, ett samverkanskontext eller för en specifik tillämpning.
- Anvisa hur nya behörighetsattribut definieras
Ta fram en process för hur nya behörighetattribut namnges och beskrivs
- Exemplifiera och valideraTa fram behörighetsattribut och attributprofiler för exemplifierade domäner
Identifiera och definiera ett första urval av behörighetsattribut inom några utvalda domäner. Dessa ska fungera som konkreta exempel och kunna användas för att pröva struktur, semantik och tillämpning.
...
- Verifiera även attributlistor genom att skapa sådana för specifika tillämpningar som Nationell Läkemedelslistan och elektronisk underskrift.
| draw.io Diagram |
|---|
| border | false |
|---|
| |
|---|
| diagramName | Copy of Namnlöst diagram-1773822493982 |
|---|
| simpleViewer | false |
|---|
| width | |
|---|
| links | auto |
|---|
| tbstyle | inline |
|---|
| lbox | true |
|---|
| diagramWidth | 861785 |
|---|
| height | 581631 |
|---|
| revision | 1113 |
|---|
|
Principer
...
i framtagandet
- Respektera gjorda investeringar i dagens attributanvändning
- De behörighetsattribut som används inom olika sektorer idag kommer inte sluta användas bara för att en statlig myndighet hittar på en bättre variant. Förbättringar kommer ske över tid.
- När det förankrats att användning av ett behörighetsattribut ska fasas ut ska det i attributets dokumentation kunna markeras vilket annat synonymt attribut som rekommenderas.
- De komponenter som tar behörighetsbeslut utifrån tillförda tillför behörighetsattribut bör ha vetskap om alternativa attributsdefinitioner synonymer för att kunna svara på attributbegäran
- Favorisera brett förankrade attributsdefinitioner framför att skapa nya
- Behörighetsattribut ska i första hand utgå från etablerade och registrerade standarder (exempelvis IANA, OID eller motsvarande internationella register).
Nya attribut ska endast definieras när befintliga standarder inte täcker behovetbefintligt attribut saknas.
Rekommendera selektiv användning
Attributsdefinitionskatalogen beskriver möjliga behörighetsattribut. Vid varje enskilt användningstillfälle ska endast de behörighetsattribut som är relevanta för ändamålet användas.
Avgränsningar
- Exakt hur Hur tillit till behörighetsattribut uppstår i e-legitimationer eller attributkällor skapas beskrivs inte här. Tilliten till attributen löser vi i federationen. Se Referenser för exempel på behörighetsmodeller..
- Tekniska mekanismer för informationsförsörjning av, och hantering av, behörighetsattribut beskrivs inte av detta dokument.
...
Kravställande användningsfall
Nedan listas ett antal användningsfall som vi använder som utgångspunkt i arbetet med behörighetsattribut och attributlistor. Syftet är att belysa olika organisatoriska och federativa situationer där identitet, hemvist, utfärdare och företrädd organisation kan skilja sig åt.
...
- Utfärdande organisation
- Hemorganisation/anställning
- Företrädd organisation i aktuellt uppdrag
- Roll och mandat i den specifika situationen
| Info |
|---|
| title | Organisatorisk dimension |
|---|
|
Ett viktigt attribut som kan hänföra sig till den organisatoriska dimensionen är orgAffiliation. En person kan ibland agera inom ramen för sin organisatoriska tillhörighet, ibland handlar det om uppdrag. Ett sätt att skilja på detta är att e-tjänsten kan specificera specifika attribut som till exempel userOrgAffiliation när det handlar om organisation och orgAffiliation när det handlar om uppdrag. |
...
| title | Attribut från e-legitimationen |
|---|
...
Ytterligare ett krav är att det i vissa situationer kan vara viktigt att kunna uttrycka från vilken källa ett attribut härrör sig. Till exempel vid utgivning av en mobil e-legitimation utifrån en legitimering med en fysisk e-legitimation kan det vara tvunget att säkerställa att
...
identiteten härrör från den fysiska e-legitimationen
...
och inte inte från
...
en annan attributkällan.
Behörighetsattribut
Ett behörighetsattribut inom Samordnad identitet och behörighet definieras behöver i sin definition inkludera följande metainformation:
- Identifierare: en eller flera attributidentifierare enligt #3.1 nedan.
- Kategori: en attributkategori enligt #3.2 nedan.
- Status: En indikering om attributet är aktivt, under utfasning, eller utfasat.
- Synonymt med: en eller flera attributidentifierare som kan användas synonymt med detta attribut
- ...mer
draw
Identifierare
Som identifierare av attribut eller andra semantiska objekt i en interoperabel infrastruktur används i regel formaten Object Identifier (OID), HTTP-URI, eller ett textuellt namn utan format.
| Info |
|---|
| title | Regler och rekommendationer |
|---|
|
- Attribut BÖR primärt identifieras med HTTP-URI
- Attribut BÖR INTE primärt identifieras med oformaterat textuellt namn eller OID i federativ kommunikation
- Attribut KAN identifieras med oformaterat textuellt namn eller OID
- Om man i en och samma behörighetskontroll behöver särskilja mellan instanser av "samma" behörighetsattribut, informationsförsörjda från olika attributkällor, REKOMMENDERAS att man skapar olika behörighetsattribut, men olika identifierare.
- Attribut BÖR exponeras och refereras med den identifierare som definieras i en attributprofil som erkänns av federationens medlemmar.
|
| Expand |
|---|
|
Object Identifier (OID)En OID som URN (t ex urn:oid:2.5.4.42) är en globalt unik och hierarkiskt strukturerad identifierare bestående av en numerisk sträng enligt ITU-T X.660 / ISO/IEC 9834. En OID: - SKA vara globalt unik.
- SKA entydigt identifiera ett och samma semantiska objekt.
- FÅR INTE återanvändas för att identifiera ett annat semantiskt objekt.
- BÖR betraktas som den normativa och långsiktigt stabila identifieraren.
OID definierar den semantiska identiteten oberoende av teknisk representation eller kontext. OID ägs och förvaltas i ett OID-träd. Är stabil över tid och används för: - Semantisk entydighet
- Standarder
- Långsiktig interoperabilitet
OID svarar på frågan om vad något är: ”Exakt vilket begrepp pratar vi om, oavsett kontext?”
HTTP-URIEn HTTP-URI är en kontextuell identifierare som används inom en specifik modell, profil eller implementation för att referera till ett objekt som definieras av en OID. En HTTP-URI: - KAN vara en sträng, URI, kortkod eller annan lokal identifierare.
- SKA entydigt mappa till exakt en OID inom den kontext där den används.
- FÅR INTE användas för att referera till olika OID:er inom samma kontext.
- KAN ändras över tid utan att objektets semantik förändras, förutsatt att mappningen till OID kvarstår.
En HTTP-URI är inte i sig en global semantisk identifierare. En HTTP-URI förvaltas inom ramen för en specifik specifikation, federation eller implementation. HTTP-URI svarar på frågan om hur begreppet fungerar här och nu: ”Hur refererar vi till det här begreppet i just den här modellen eller profilen?”
Relationen mellan OID och HTTP-URIFöljande princip gäller: En HTTP-URI refererar till ett objekt vars semantiska identitet definieras av en OID. En HTTP-URI utgör en kontextuell identifierare som används inom en viss modell eller implementation. Den pekar på en OID, vilken utgör den globala och långsiktigt stabila identifieraren för objektet. OID:en är i sin tur knuten till den formella semantiska definition som entydigt beskriver objektets betydelse. Relationen kan beskrivas som en semantisk identifieringskedja: HTTP-URI → OID → Semantisk definition
Den semantiska definitionen är således knuten till OID, inte till HTTP-URI. OID definierar objektets identitet. HTTP-URI är ett kontextuellt alias. InteroperabilitetsanalysOID utgör den globala semantiska identifieraren, men saknar i sig den kontextuella precisering som krävs för interoperabilitet inom en federation. Samma OID kan användas i flera federationer men ges olika kontextuell innebörd beroende på: - tillitsramverk
- källa till uppgiften
- identitetsprocess
- ansvarig part
Ett exempel OID 2.5.4.10 identifierar begreppet organizationName på en generell semantisk nivå. Dock gäller: - I Sweden Connect den organisation som har anskaffat e-legitimationen för sin medarbetare (är kopplad till utgivningsprocessen).
- I Sambi användarens hemorganisation utifrån kataloguppgifter om medarbetarens tjänstgöring (är kopplad till anställning eller uppdrag).
- I Skolfederation eller SWAMID kan motsvarande attribut ha annan källa och annan tillitsgrund.
Det är således inte OID:en i sig som definierar attributets interoperabla betydelse inom federationen, utan den federationsspecifika HTTP-URI och dess profildefinition. OID säger: Detta är attributtypen enligt ett generellt schema.
HTTP-URI i federationen säger: Detta attribut har denna specifika semantik enligt federationens regelverk.
|
Attributkategorier
...
| title | Regler och rekommendationer |
|---|
Attribut BÖR typas enligt följande:
...
Identitetsattribut
...
Representation - lokal
...
Attribut som beskriver hur arbets- eller uppdragsgivare representerar individen.
Det rör sig om identifierande egenskaper som är kopplade till individen och genom vilka denne är känd, identifierbar eller tekniskt representerad inom den egna organisationen. Dessa attribut är organisatoriskt kontextbundna och kan förändras över tid, exempelvis vid byte av roll, system eller organisatorisk tillhörighet.
...
Representation - federativ
...
Hemorganisationens tekniska identifierare som används i federationen.
Dessa attribut är säkerhetskritiska och deras stabilitet regleras av federationen. De är inte personliga egenskaper utan tekniska identifieringsartefakter.
...
Relationsattribut
...
Attribut som beskriver strukturell koppling mellan individ och en organisation.
Detta är en relation – inte en egenskap hos personen.
...
Mandatattribut
...
Attribut som beskriver att individen representerar en organisation i en viss funktion eller ett uppdrag.
Dessa attribut kan vara tidsbegränsade, transaktionsbundna och representera en funktionell roll.
Mandat är inte samma sak som affiliation.
...
Rättighetsattribut
...
Kommunikationsattribut
...
Attribut som beskriver kanaler genom vilka individen kan kontaktas eller nås.
Rekommenderas inte att användas för beslut om åtkomst.
...
Transaktionella attribut
...
Attribut utanför subjektet som beskriver händelser om autentisering och/eller intygutgivning vid en specifik tidpunkt.
Beskriver händelsen och är inte en egenskap hos individen, utan tillhör snarare ett intygs metadata.
...
Informationsattribut
...
Attribut som kan användas för att informera och visa vad saker och ting heter.
...
| Expand |
|---|
| title | Ytterligare underlag ... |
|---|
|
HypotesAlla attribut är inte av samma slag. Attribut kan exempelvis: - Avse individen som sådan,
- Uttrycka en teknisk representation av individen,
- Definiera en relation kopplad till individen
- Ange ett mandat som individen har tilldeltas
- Definiera en rättighet inom vilken individen får agera, eller
- Beskriva en händelse om autentisering och intygsutgvining.
Dessa är ontologiskt olika. Attribut ska därför kategoriseras efter vad de representerar och efter deras semantiska natur. Attribut som påverkar åtkomstbeslut får inte blandas med beskrivande eller "dekorativa" attribut. AttributmodellI federativa miljöer används attribut för att: - identifiera och tekniskt representera individer och systemaktörer,
- beskriva organisatorisk tillhörighet,
- förmedla mandat och rättigheter, samt
- dokumentera förutsättningarna för autentisering och intygsutgivning.
Trots detta behandlas attribut ofta som en enhetlig mängd egenskaper. I praktiken representerar de dock fundamentalt skilda semantiska kategorier. När dessa kategorier inte hålls isär uppstår otydliga behörighetsbeslut, bristande tillitsbedömningar, juridisk osäkerhet och försämrad interoperabilitet, vilket i sin tur försvårar standardisering. Begreppet organisation är ett tydligt exempel på denna problematik. Det används i flera olika betydelser, exempelvis som: - utfärdare av identitetsintyg vid e-legitimering,
- individens organisatoriska hemvist, eller
- uppdragsgivare i en specifik handling/situation.
När dessa betydelser sammanblandas uppstår otydlighet i ansvar, mandat och tillit, vilket leder till felaktiga behörighetsbeslut, oklara rättsliga relationer och interoperabilitetsproblem. Teknisk aktörPlaceholder för subject som kan vara api, api-klienter, etc. |
Attributprofiler
En attributprofil är uppsättning behörighetsattribut som som möjliggör för tjänsteproducenter att utvärdera anropande parts juridiska behörighet att utföra förfaranden inom tjänsten. Olika domäner styrs ofta av delvis olika lagstiftning och kan därför kräva domänspecifika behörighetsattribut för att kunna genomföra behörighetskontroller.
| Info |
|---|
| title | Regler och rekommendationer |
|---|
|
För att stödja livscykelhantering av attributprofiler utan att störa verksamheters behov av robust digital samverkan, bör man tillämpa följande rekommendationer: - Det SKA för varje domän etableras minst en attributprofil för SAML och en attributprofil för OIDC.
- Attributprofiler BÖR revideras med bakåtkompabilitet, dvs man bör i stort sett aldrig ersätta attribut eller genomföra andra icke bakåtkompatibla förändringar.
- Kompabilitetsbrytande revideringar av attributprofiler BÖR genomföras genom en övergångsperiod av bakåtkompatibla förändringar och parallellt stöd för äldre och nyare behörighetsattribut i tjänsteproducenters behörighetskontroll.
Notera att det för specifika situationer där förutsättningar finns för att driva igenom brytande revideringar av attributprofiler utan negativ verksamhetspåverkan för samverkande parter, kan det vara att föredra. |
Modell
Image Removed
Länk till editor för att editera modell...
Exempel läkare
...
| Code Block |
|---|
|
{
"subject": {
"type": "Human",
"name": "Anna Andersson",
"given_name": "Anna",
"family_name": "Andersson",
"eID": {
"prid": "SE:NO:199001011234",
"pridPersistence": "A",
"x509SubjectName": "CN=Anna Andersson,SERIALNUMBER=199001011234,C=SE",
"x509IssuerName": "CN=SITHS e-id Function CA v1,O=Inera AB,C=SE",
"credentialGivenName": "Anna",
"credentialSurname": "Andersson",
"credentialPersonalIdentityNumber": "199001011234",
"credentialCertificate": "MIIGHz...",
"credentialDisplayName": "Anna Andersson",
"credentialOrganizationName": "Region Stockholm",
"credentialCertificatePolicies": [
"1.2.752.26.11.1.15.4",
"1.2.752.26.11.1.15.14"
]
},
"credentials": {
"email": "anna.andersson@regionstockholm.se"
},
"affiliations": [
{
"type": "Employment",
"orgAffiliation": "SE2321000016-5BCD",
"employeeIdentifier": "SE2321000016-ABC123",
"telephoneNumber": "+4608123456",
"mobile": "+46701234567",
"mail": "anna.andersson@regionstockholm.se",
"cFARUnit": "12345678",
"organizationalUnitAssignment": "Akutmottagningen",
"financialResponsibilityCode": "1234",
"jobTitle": "Läkare",
"facility": "Karolinska Universitetssjukhuset",
"responsibilityArea": "Akut",
"workLocation": "Huddinge"
},
{
"type": "Commission",
"orgAffiliation": "SE2321000016-5BCD",
"commissionIdentifier": "SE2321000016-COMM01",
"commissionName": "Förskrivare",
"commissionPurpose": "Vård och behandling",
"aidCode": "000",
"aidLabel": "Läkare",
"responsibilityCode": "1",
"function": "Behandlande läkare",
"domain": "Vård",
"validFrom": "2025-01-01",
"validTo": "2026-12-31",
"principalIdentifier": "SE2321000016-VARD01",
"principalName": "Region Stockholm Vård AB",
"commissionRights": [
{
"activity": "Förskriva",
"scope": "Slutenvård",
"informationClass": "Läkemedel"
},
{
"activity": "Läsa",
"scope": "Öppenvård",
"informationClass": "Journal"
}
],
"authorizationScope": {
"facility": "Karolinska Universitetssjukhuset",
"responsibilityArea": "Akut",
"workLocation": "Huddinge"
}
}
]
}
} |
Exempel Lärare
...
| Code Block |
|---|
|
{
"subject": {
"type": "Human",
"name": "Maria Lindström",
"given_name": "Maria",
"family_name": "Lindström",
"eID": {
"prid": "SE:SE:197505152345",
"pridPersistence": "A",
"x509SubjectName": "CN=Maria Lindström,SERIALNUMBER=197505152345,C=SE",
"x509IssuerName": "CN=SITHS e-id Person CA v2,O=Inera AB,C=SE",
"credentialGivenName": "Maria",
"credentialSurname": "Lindström",
"credentialPersonalIdentityNumber": "197505152345",
"credentialCertificate": "MIIGHz...",
"credentialDisplayName": "Maria Lindström",
"credentialOrganizationName": "Värmdö kommun",
"credentialCertificatePolicies": [
"1.2.752.26.11.1.15.4"
]
},
"credentials": {
"email": "maria.lindstrom@varmdo.se"
},
"affiliations": [
{
"type": "Employment",
"orgAffiliation": "SE212000028-AB12",
"employeeIdentifier": "SE212000028-EMP456",
"telephoneNumber": "+4608570800",
"mobile": "+46709876543",
"mail": "maria.lindstrom@varmdo.se",
"cFARUnit": "87654321",
"organizationalUnitAssignment": "Gustavsbergsskolan",
"financialResponsibilityCode": "2210",
"jobTitle": "Lärare",
"facility": "Gustavsbergsskolan",
"responsibilityArea": "Grundskola år 7-9",
"workLocation": "Gustavsberg"
},
{
"type": "Commission",
"orgAffiliation": "SE212000028-AB12",
"commissionIdentifier": "SE212000028-COMM01",
"commissionName": "Klasslärare 8B",
"commissionPurpose": "Undervisning och elevvård",
"aidCode": "310",
"aidLabel": "Lärare grundskola",
"responsibilityCode": "1",
"function": "Klasslärare",
"domain": "Utbildning",
"validFrom": "2025-08-15",
"validTo": "2026-06-15",
"principalIdentifier": "SE212000028-NÄMND01",
"principalName": "Värmdö kommuns barn- och ungdomsnämnd",
"commissionRights": [
{
"activity": "Registrera",
"scope": "Elevdokumentation",
"informationClass": "Betyg"
},
{
"activity": "Läsa",
"scope": "Elevdokumentation",
"informationClass": "Åtgärdsprogram"
}
],
"authorizationScope": {
"facility": "Gustavsbergsskolan",
"responsibilityArea": "Grundskola år 7-9",
"workLocation": "Gustavsberg"
}
}
]
}
} |
Leverabler
Förvaltningsstruktur
För att säkerställa långsiktig hållbarhet, interoperabilitet och tydligt ansvar behöver attributsdefinitioner och attributlistor förvaltas i en definierad struktur med tydliga roller och mandat.
| Info |
|---|
Följande roller och ansvar BÖR etableras: - Nationell koordinator (förslagsvis ledningsaktören för Samordnad identitet och behörighet, Digg)
- Äger och förvaltar den övergripande domänstrukturen och tillser att varje domän har en utsedd domänkoordinator.
- Tar in behov av nya och förtydligade attributsdefinitioner från domänkoordinatorer
- Förvaltar en nationell katalog för attributsdefinitioner
- Förvaltar domänoberoende attribut i den nationella katalogen med attributsdefinitioner
- Förvaltar ramverk för kvalificering, kvalitetsgranskning och publicering av attributsdefinitioner.
- Domänkoordinator (exempelvis sektorsmyndigheter)
- Tar in behov av nya och förtydligade attributsdefinitioner från aktörer inom en sektor
- Förvaltar domänspecifika attribut i den nationella katalogen med attributsdefinitioner
- Lyfter behov gällande gemensamma attribut till nationell koordinator
Notera att vissa attribut alltid föds från en nationellt gemensam källa (tex Skatteverkets Navet, Socialstyrelsens HOSP-register). Attributdefinitionerna för dessa attribut hanteras också via en domänkoordinator, även om parten ansvarig för källan har mycket att säga till om. |
Exempel på domäner
| Domän | Domänkoordinator |
|---|
| Hälso- och sjukvård (Health) | E-hälsomyndigheten |
| Skola och utbildning (edu) | SIS |
| Forskning och högre utbildningar | SUNET |
| Transport | Transportstyrelsen |
| Expand |
|---|
| title | Ytterligare underlag ... |
|---|
|
Exempel på förvaltningsstruktur - Transportsektorn- Ledningsaktören för Samordnad identitet och behörighet är Digg.
- Digg utser Transportstyrelsen till domänkoordinator för Transport-domänen.
- Transportstyrelsen är således domänkoordinator
- Transportstyrelsen ansvarar även för attributkällor för vissa domänunika attribut - tex fordonsägare i Fordionsregistret.
- Trafikverket ansvarar för andra centrala attributkällor inom Transport-domänen och koordinerar tillhörande attributsdefinitioner med Transportstyrelsen - tex registreringsinformation om enskild väg.
|
Attributlistor och hur de kan användas
Inom ett verksamhetsområde så behöver parterna komma överens om vilka behörighetsattribut som som ska användas för att tjänsteproducenter att utvärdera anropande parts juridiska behörighet att utföra förfaranden inom tjänsten. Olika domäner styrs ofta av delvis olika lagstiftning och kan därför kräva domänspecifika behörighetsattribut för att kunna genomföra behörighetskontroller.
Här ger vi vägledning kring hur attributlistor bör livscykelhanteras för bibehållen interoperabilitet.
| Info |
|---|
| title | Regler och rekommendationer |
|---|
|
För att stödja livscykelhantering av attributlistor utan att störa verksamheters behov av robust digital samverkan, bör man tillämpa följande rekommendationer: - Det BÖR för varje domän tas fram attributlistor både för SAML och OIDC.
- Revideringar BÖR göras med bakåtkompabilitet, dvs man bör i stort sett aldrig ersätta attribut eller genomföra andra icke bakåtkompatibla förändringar.
- Kompabilitetsbrytande revideringar BÖR genomföras genom en övergångsperiod av bakåtkompatibla förändringar och parallellt stöd för äldre och nyare behörighetsattribut i tjänsteproducenters behörighetskontroll.
Notera att det för specifika situationer där förutsättningar finns för att driva igenom brytande revideringar utan negativ verksamhetspåverkan för samverkande parter, kan det vara att föredra. |
Val av attribut
När man har behov av ett attribut som man vill inkludera i en attributlista bör man på ett strukturerat sätt söka om det finns ett redan definierat attribut som fyller behovet innan man definierar ett nytt attribut.
| draw.io Diagram |
|---|
| border | false |
|---|
| |
|---|
| diagramName | Namnlöst diagram-1776959132577 |
|---|
| simpleViewer | false |
|---|
| width | |
|---|
| links | auto |
|---|
| tbstyle | inline |
|---|
| lbox | true |
|---|
| diagramWidth | 1071 |
|---|
| height | 331 |
|---|
| revision | 3 |
|---|
|
Hur används attributlistor
När man slutit en överenskommelse kring en attributlista som ska användas behöver samverkande parter implementera stöd för den. Legitimeringstjänster behöver kunna informationsförsörja attribut i attributlistan och e-tjänster behöver implementera dem för att styra behörigheter i e-tjänsten. Man kan utöver en överenskommelse om vilka attribut som ska användas också definiera scopes för attributbeställningar för att underlätta beställning. E-tjänster kan beställa behörighetsattribut explicit via claims eller i bulk via scope.
Exempel: En E-tjänst begär legitimering av en användare och instruerar legitimeringstjänsten om vilka scopes och claims som krävs eller önskas.
| Code Block |
|---|
|
GET https://op.example.se/authorize?
response_type=code
&client_id=rp-client-123
&redirect_uri=https%3A%2F%2Frp.example.se%2Fcallback
&scope=openid%20profile%20email
&state=af0ifjsldkj
&nonce=n-0S6_WzA2Mj
&claims=%7B
%22id_token%22%3A%7B
%22acr%22%3A%7B%22essential%22%3Atrue%7D
%7D%2C
%22userinfo%22%3A%7B
%22given_name%22%3A%7B%22essential%22%3Atrue%7D%2C
%22family_name%22%3A%7B%22essential%22%3Atrue%7D%2C
%22birthdate%22%3A%7B%22essential%22%3Afalse%7D
%7D
%7D |
I exemplet begärs scopen openid, profile och email. Utöver dessa grupperingar begär man explicit attributen id_token och given_name, family_name och birthdate från userinfo. Betydelsen av essential-märkningen för respektive attributbegäran är om det attributet är obligatoriskt ("essential": true) eller valfritt att bifoga ("essential": false).
Legitimeringstjänsten (även 'OP' i OIDC, eller 'IdP' i SAML) tillför behörighetsattributen, med värden inhämtade från e-legitimationen eller attributkällor av olika slag.
| Info |
|---|
|
Legitimeringstjänster BÖR hantera synonymer enligt attributdefinitioner, dvs att om en förlitande part begär ett attribut med någon av dess synonyma identifierare bör detta kunna hanteras utan att generera fel. Det är hjälpsamt för att kunna hantera livscykelhantering av behörighetsattribut. |
| Info |
|---|
| title | Organisatorisk dimension |
|---|
|
Ett viktigt attribut som kan hänföra sig till den organisatoriska dimensionen är orgAffiliation och andra uppdragsrelaterade behörighetsattribut. - När det finns flera möjliga uppdrag BÖR man låta användaren välja utifrån vilken roll eller uppdrag åtkomst begärs.
- Man KAN även överföra information om alla uppdrag till en e-tjänst och låta användaren välja, och växla mellan, uppdrag där.
Notera att man som princip ska minimera information som man delger om en användare, så alternativ 2 bör användas sparsamt. |
Hur nya behörighetsattribut definieras
Ett behörighetsattribut inom Samordnad identitet och behörighet definieras behöver i sin definition inkludera följande metainformation:
- Identifierare: en eller flera attributidentifierare enligt #3.1 nedan.
- Kategori: en attributkategori enligt #3.2 nedan.
- Betydelse: betydelse / tolkning av det värde som ges i detta attribut?
- Status: En indikering om attributet är aktivt, under utfasning, eller utfasat.
- Synonymer: en eller flera attributidentifierare som kan användas synonymt med detta attribut
Identifierare (attributnamn)
Som identifierare av attribut eller andra semantiska objekt i en interoperabel infrastruktur används i regel formaten Object Identifier (OID), HTTP-URI, eller ett textuellt namn utan format.
| Info |
|---|
| title | Regler och rekommendationer |
|---|
|
- Attribut BÖR primärt identifieras med HTTP-URI
- Attribut BÖR INTE primärt identifieras med oformaterat textuellt namn eller OID i federativ kommunikation
- Attribut KAN identifieras med oformaterat textuellt namn eller OID
- Om man i en och samma behörighetskontroll behöver särskilja mellan instanser av "samma" behörighetsattribut, informationsförsörjda från olika attributkällor, REKOMMENDERAS att man skapar olika behörighetsattribut, med olika identifierare.
- Attribut BÖR exponeras och refereras med den identifierare som definieras i en attributprofil som erkänns av federationens medlemmar.
|
Om man använder textuella namn eller URI:er brukar identifieraren även benämnas "attributnamn".
| Expand |
|---|
|
Object Identifier (OID)En OID som URN (t ex urn:oid:2.5.4.42) är en globalt unik och hierarkiskt strukturerad identifierare bestående av en numerisk sträng enligt ITU-T X.660 / ISO/IEC 9834. En OID: - SKA vara globalt unik.
- SKA entydigt identifiera ett och samma semantiska objekt.
- FÅR INTE återanvändas för att identifiera ett annat semantiskt objekt.
- BÖR betraktas som den normativa och långsiktigt stabila identifieraren.
OID definierar den semantiska identiteten oberoende av teknisk representation eller kontext. OID ägs och förvaltas i ett OID-träd. Är stabil över tid och används för: - Semantisk entydighet
- Standarder
- Långsiktig interoperabilitet
OID svarar på frågan om vad något är: ”Exakt vilket begrepp pratar vi om, oavsett kontext?”
HTTP-URIEn HTTP-URI är en kontextuell identifierare som används inom en specifik modell, profil eller implementation för att referera till ett objekt som definieras av en OID. En HTTP-URI: - KAN vara en sträng, URI, kortkod eller annan lokal identifierare.
- SKA entydigt mappa till exakt en OID inom den kontext där den används.
- FÅR INTE användas för att referera till olika OID:er inom samma kontext.
- KAN ändras över tid utan att objektets semantik förändras, förutsatt att mappningen till OID kvarstår.
En HTTP-URI är inte i sig en global semantisk identifierare. En HTTP-URI förvaltas inom ramen för en specifik specifikation, federation eller implementation. HTTP-URI svarar på frågan om hur begreppet fungerar här och nu: ”Hur refererar vi till det här begreppet i just den här modellen eller profilen?”
Relationen mellan OID och HTTP-URIFöljande princip gäller: En HTTP-URI refererar till ett objekt vars semantiska identitet definieras av en OID. En HTTP-URI utgör en kontextuell identifierare som används inom en viss modell eller implementation. Den pekar på en OID, vilken utgör den globala och långsiktigt stabila identifieraren för objektet. OID:en är i sin tur knuten till den formella semantiska definition som entydigt beskriver objektets betydelse. Relationen kan beskrivas som en semantisk identifieringskedja: HTTP-URI → OID → Semantisk definition
Den semantiska definitionen är således knuten till OID, inte till HTTP-URI. OID definierar objektets identitet. HTTP-URI är ett kontextuellt alias. InteroperabilitetsanalysOID utgör den globala semantiska identifieraren, men saknar i sig den kontextuella precisering som krävs för interoperabilitet inom en federation. Samma OID kan användas i flera federationer men ges olika kontextuell innebörd beroende på: - tillitsramverk
- källa till uppgiften
- identitetsprocess
- ansvarig part
Ett exempel OID 2.5.4.10 identifierar begreppet organizationName på en generell semantisk nivå. Dock gäller: - I Sweden Connect den organisation som har anskaffat e-legitimationen för sin medarbetare (är kopplad till utgivningsprocessen).
- I Sambi användarens hemorganisation utifrån kataloguppgifter om medarbetarens tjänstgöring (är kopplad till anställning eller uppdrag).
- I Skolfederation eller SWAMID kan motsvarande attribut ha annan källa och annan tillitsgrund.
Det är således inte OID:en i sig som definierar attributets interoperabla betydelse inom federationen, utan den federationsspecifika HTTP-URI och dess profildefinition. OID säger: Detta är attributtypen enligt ett generellt schema.
HTTP-URI i federationen säger: Detta attribut har denna specifika semantik enligt federationens regelverk.
|
Attributkategorier
För att möjliggöra interoperabilitet och tillförlitliga åtkomstbeslut i federativa infrastrukturer behöver attribut klassificeras. Klassificeringen tydliggör vad ett attribut representerar, i vilken kontext det är giltigt samt hur det bör tolkas och användas. Detta minskar risken för feltolkningar, särskilt vid informationsutbyte mellan organisationer eller över landsgränser, och skapar en stabil grund för både tekniska implementationer och policybeslut.
Som grund för klassificeringen görs en åtskillnad mellan attribut som beskriver subjektets identitet, hur det representeras tekniskt och organisatoriskt, samt vilka relationer, mandat och rättigheter som gäller i en viss kontext. Vidare särskiljs attribut som möjliggör kommunikation med individer från sådana som beskriver själva transaktionen, exempelvis uppgifter om autentisering eller intygsutgivning. Ur ett IAM-perspektiv är denna uppdelning central, då olika attributkategorier har skilda egenskaper avseende stabilitet, tillitsnivå och förekomst av ansvarig utfärdare, vilket i sin tur påverkar hur de bör användas som underlag för åtkomstbeslut.
| Info |
|---|
| title | Regler och rekommendationer |
|---|
|
Attribut BÖR typas enligt följande: | Kategori | Beskrivning | Typisk källa | Exempel på attribut |
|---|
Identitetsattribut | Attribut som beskriver individens juridiska eller officiella identitet. Det rör sig om egenskaper som tillhör individen oberoende av organisationstillhörighet, roll eller uppdrag. Dessa uppgifter har typiskt sin grund i officiella register och är, relativt sett, långlivade och stabila över tid. | E-legitimation | personnummer, officiellt namn, födelsedatum. | Representation - lokal | Attribut som beskriver hur arbets- eller uppdragsgivare representerar individen. Det rör sig om identifierande egenskaper som är kopplade till individen och genom vilka denne är känd, identifierbar eller tekniskt representerad inom den egna organisationen. Dessa attribut är organisatoriskt kontextbundna och kan förändras över tid, exempelvis vid byte av roll, system eller organisatorisk tillhörighet. | Katalog | uuid, användarnamn, tjänstebeteckning | Representation - federativ | Hemorganisationens tekniska identifierare som används i federationen. Dessa attribut är säkerhetskritiska och deras stabilitet regleras av federationen. De är inte personliga egenskaper utan tekniska identifieringsartefakter. | Katalog | subject-id, orgAffiliation, pairwise-id, eduPersonPrincipalName, healthCareProviderHsaId. | Relationsattribut | Attribut som beskriver strukturell koppling mellan individ och en organisation. Detta är en relation – inte en egenskap hos personen. | Katalog | organisationsnamn, organisatorisk enhet/avdelning, skolenhetskod, affiliation (t ex personal, elev) | Mandatattribut | Attribut som beskriver att individen representerar en organisation i en viss funktion eller ett uppdrag. Dessa attribut kan vara tidsbegränsade, transaktionsbundna och representera en funktionell roll. Mandat är inte samma sak som affiliation. | Katalog | allCommissionOrgAffiliations, sisSchoolCourseTeacher | Rättighetsattribut | Policybärande attribut som anger vad individen får göra – rätt att använda en resurs eller utföra en handling. | Katalog | eduPersonEntitlement | Kommunikationsattribut | Attribut som beskriver kanaler genom vilka individen kan kontaktas eller nås. Rekommenderas inte att användas för beslut om åtkomst. | Katalog | e-postadress, telefonnummer, mobilnummer | Transaktionella attribut | Attribut utanför subjektet som beskriver händelser om autentisering och/eller intygutgivning vid en specifik tidpunkt. Beskriver händelsen och är inte en egenskap hos individen, utan tillhör snarare ett intygs metadata. | Intygsutfärdare | identifieringens tillitsnivå, transaktionsid, delegeringskedja | Informationsattribut | Attribut som kan användas för att informera och visa vad saker och ting heter. | Katalog | Namn på organisation och personer |
|
| Expand |
|---|
| title | Ytterligare underlag ... |
|---|
|
HypotesAlla attribut är inte av samma slag. Attribut kan exempelvis: - Avse individen som sådan,
- Uttrycka en teknisk representation av individen,
- Definiera en relation kopplad till individen
- Ange ett mandat som individen har tilldeltas
- Definiera en rättighet inom vilken individen får agera, eller
- Beskriva en händelse om autentisering och intygsutgvining.
Dessa är ontologiskt olika. Attribut ska därför kategoriseras efter vad de representerar och efter deras semantiska natur. Attribut som påverkar åtkomstbeslut får inte blandas med beskrivande eller "dekorativa" attribut. AttributmodellI federativa miljöer används attribut för att: - identifiera och tekniskt representera individer och systemaktörer,
- beskriva organisatorisk tillhörighet,
- förmedla mandat och rättigheter, samt
- dokumentera förutsättningarna för autentisering och intygsutgivning.
Trots detta behandlas attribut ofta som en enhetlig mängd egenskaper. I praktiken representerar de dock fundamentalt skilda semantiska kategorier. När dessa kategorier inte hålls isär uppstår otydliga behörighetsbeslut, bristande tillitsbedömningar, juridisk osäkerhet och försämrad interoperabilitet, vilket i sin tur försvårar standardisering. Begreppet organisation är ett tydligt exempel på denna problematik. Det används i flera olika betydelser, exempelvis som: - utfärdare av identitetsintyg vid e-legitimering,
- individens organisatoriska hemvist, eller
- uppdragsgivare i en specifik handling/situation.
När dessa betydelser sammanblandas uppstår otydlighet i ansvar, mandat och tillit, vilket leder till felaktiga behörighetsbeslut, oklara rättsliga relationer och interoperabilitetsproblem. Teknisk aktörPlaceholder för subject som kan vara api, api-klienter, etc. |
Exemplifiering och validering
- Modellera för hur en attributprofil kan ha multipla attributinstanser, tex beroende på källa (attribut på e-leg, från en katalog), relaterad till ett eller flera uppdrag.
- Beskriv en modell för attributprofiler med personrelaterade attribut, e-leg-relaterade attribut, N x anställningsrelaterade attribut, M x uppdragsrelaterade uppdrag
- Beskriv skillnaden mellan en IdP per organisation och en Idp som representerar flera organisationer
Frågor
- Personalidentity - både pnr och snr eller separata attribut?
- Ska vi lägga in synonymer från andra federationer, t ex Sambi? JA, se lista
- Kan vi lösa de olika synsätten på att peka ut e-legitimationen som källa i namnet genom att göra denna typ av attribut domänspecifika? (https://id.ena-infrastructure.se/attributes/surName jfr med https://id.ena-infrastructure.se/attributes/eid/health/surName). Ska källan i det första fallet vara okänd? Beroende på vilken IdP man använder?
- Attribut som saknas i nuvarande Sambi, t ex Middlename, vad gör vi med dom?
- Enhet som generellt attribut, andra är domänspecifika t ex vårdenhet, skolenhet?
Val av attribut
Namnen är hämtade från OIDC Core, OIDC Sweden och inspirerade av Sambis attributprofil. Domänen health kommer mycket från Ineras IdP då de också är överenskomna med Ehälsomyndigheten. Sweden Connect har gett eIDAS-namnen. Se referenser.
För att avgöra vad ett attribut eller claim ska heta och vilket scope ett claim eventuellt ska tillhöra, behövs en beslutsordning med hänvisning till befintliga standarder. Här har vi valt att illustrera denna beslutsordning i form av beslutsträd.
- Att göra: beslutsträd för SAML-namn
För att bestämma vilket namn ett claim ska ha, se nedan för beslutsträd.
| draw.io Board Diagram |
|---|
| border | false |
|---|
| |
|---|
| diagramName | Ena claims std |
|---|
| simpleViewer | false |
|---|
| width | |
|---|
| links | auto |
|---|
| tbstyle | inline |
|---|
| lbox | true |
|---|
| diagramWidth | 1073 |
|---|
| height | 1331 |
|---|
| revision | 5 |
|---|
|
För att bestämma vilket scope ett claim eventuellt ska tillhöra, se beslutsträd nedan. Observera att domänansvarig kan bestämma en ökad granularitet, se attributlistan för exempel. Det kan också vara så att ett claim kan sakna scope.
| draw.io Board Diagram |
|---|
| border | false |
|---|
| |
|---|
| diagramName | Bestämm Scopenamn Drawio |
|---|
| simpleViewer | false |
|---|
| width | |
|---|
| links | auto |
|---|
| tbstyle | inline |
|---|
| lbox | true |
|---|
| diagramWidth | 989 |
|---|
| height | 1225 |
|---|
| revision | 7 |
|---|
|
Attribut / attributlista
| Info |
|---|
Nedan första utkastet på attributlistan, den ska i detta läge ses främst som ett försök till att bestämma formatet då det är önskvärt att hålla ihop beskrivningen men ändå kunna filtrera på olika sätt. |
| Table Filter |
|---|
| fixedCols | |
|---|
| totalrow | ,,,,,,,,,,,,,,, |
|---|
| hidelabels | false |
|---|
| ddSeparator | ‚‚‚‚‚‚ |
|---|
| sparkName | Sparkline |
|---|
| hidePane | Filtration panel |
|---|
| customNoTableMsgText | |
|---|
| limitHeight | |
|---|
| sparkline | false |
|---|
| default | ,,,,,, |
|---|
| isFirstTimeEnter | true |
|---|
| cell-width | 250,250,250,250,250,250,250 |
|---|
| hideColumns | false |
|---|
| totalRowName | |
|---|
| totalColName | |
|---|
| customNoTableMsg | false |
|---|
| disabled | false |
|---|
| enabledInEditor | false |
|---|
| globalFilter | false |
|---|
| id | 1776699475527_-1836505391 |
|---|
| iconfilter | |
|---|
| order | 0,1,2,3,4,5,6 |
|---|
| hideControls | false |
|---|
| inverse | false,false,false,false,false,false,false |
|---|
| numbering | |
|---|
| datefilter | |
|---|
| column | Domän,Kategori,Källa,Sambi synonym,Sweden Connect synonym,Standard,OIDC scope |
|---|
| sort | |
|---|
| totalcol | |
|---|
| disableSave | false |
|---|
| rowsPerPage | |
|---|
| separator | Point (.) |
|---|
| labels | Domän‚Kategori‚Källa‚Sambi synonym‚Sweden Connect synonym‚Standard‚OIDC scope |
|---|
| thousandSeparator | |
|---|
| ignoreFirstNrows | |
|---|
| ddOperator | OR,OR,OR,OR,OR,OR,OR |
|---|
| userfilter | |
|---|
| datepattern | dd M yy |
|---|
| numberfilter | |
|---|
| heightValue | |
|---|
| hideFilters | |
|---|
| updateSelectOptions | false |
|---|
| worklog | 365|5|8|y w d h m|y w d h m |
|---|
| isOR | AND |
|---|
| showNRowsifNotFiltered | |
|---|
|
| Beskrivning | Namn (SAML) | Namn (OIDC claim) | OIDC scope | Referens (format) | FriendlyName | Sambi synonym | Sweden Connect synonym | Exempelvärden | Standard | Källa | Kategori | Domän | Multivärde J/N | Scoped J/N | Kommentar |
|---|
| Vald IdP | https://id.ena-infrastructure.se/attributes/identityProvider | https://id.oidc.se/claim/authnProvider | | urn:oid:1.2.752.201.3.15 | identityProvider | | |
| OIDC Sverige | Intygsutfärdare | Transaktionella attribut | general | N |
|
| | Autentiseringsmetodsid | https://id.ena-infrastructure.se/attributes/authenticationMethod | https://id.ena-infrastructure.se/attributes/authenticationMethod |
| | authenticationMethod | | |
|
| Intygsutfärdare | Transaktionella attribut | general | N |
|
| | Autentiseringsmetod | https://id.ena-infrastructure.se/attributes/authnMethod | amr | openid | | authnMethod | urn:sambi:names:attribute:authnMethod | |
| OIDC Core | Intygsutfärdare | Transaktionella attribut | general | N |
|
| | Transaktionsid | https://id.ena-infrastructure.se/attributes/transactionIdentifier | https://id.ena-infrastructure.se/attributes/transactionIdentifier | | urn:oid:1.2.752.201.3.2 | transactionIdentifier | | urn:oid:1.2.752.201.3.2 |
|
| Intygsutfärdare | Transaktionella attribut | general | N |
|
| | Certifikat | https://id.ena-infrastructure.se/attributes/eid/certificate | https://id.oidc.se/claim/userCertificate | | urn:oid:1.2.752.201.3.10 | certificate | | urn:oid:1.2.752.201.3.10 |
| OIDC Sverige | Elegitimation | Identitetsattribut | general | N |
|
| | Certifikatpolicies | https://id.ena-infrastructure.se/attributes/eid/certificatePolicies | https://id.ena-infrastructure.se/attributes/eid/certificatePolicies | | urn:oid:1.2.752.29.4.xxx | certificatePolicies | | |
|
| Elegitimation | Identitetsattribut | general | N |
|
| | Tillitsnivå | saml2:AuthnContextClassRef | acr | openid | urn:oid:1.2.752.201.3.3 | AuthnContextClassRef | urn:sambi:names:attribute:levelOfAssurance | urn:oid:1.2.752.201.3.3 |
| OIDC Core | Intygsutfärdare | Mandatattribut | general | N |
|
| | Visningsnamn | https://id.ena-infrastructure.se/attributes/displayName | name | https://id.oidc.se/scope/naturalPersonInfo https://id.oidc.se/scope/naturalPersonOrgId
| urn:oid:2.16.840.1.113730.3.1.241 | displayName | | urn:oid:2.16.840.1. 113730.3.1.241 |
| OIDC Core | Elegitimation | Informationsattribut | general | N |
|
| | Förnamn | https://id.ena-infrastructure.se/attributes/givenName | given_name | https://id.oidc.se/scope/naturalPersonInfo | urn:oid:2.5.4.42 | givenName | http://sambi.se/attributes/1/givenName | urn:oid:2.5.4.42 |
| OIDC Core | Katalog | Informationsattribut | general | N |
|
| | Förnamn | https://id.ena-infrastructure.se/attributes/eid/health/givenName | https://id.ena-infrastructure.se/attributes/eid/health/givenName | https://id.ena.se/scopes/health/eid | urn:oid:2.5.4.42 | givenName | | |
|
| Elegitimation | Informationsattribut | health | N |
|
| | Efternamn | https://id.ena-infrastructure.se/attributes/surName | family_name | https://id.oidc.se/scope/naturalPersonInfo | urn:oid:2.5.4.4 | surName | http://sambi.se/attributes/1/surname | urn:oid:2.5.4.4 |
| OIDC Core | Katalog | Informationsattribut | general | N |
|
| | Efternamn | https://id.ena-infrastructure.se/attributes/eid/health/surName | https://id.ena-infrastructure.se/attributes/eid/health/surName | https://id.ena.se/scopes/health/eid | urn:oid:2.5.4.4 | surName | | |
| OIDC Sverige | Elegitimation | Informationsattribut | health | N |
|
| | Personnummer | https://id.ena-infrastructure.se/attributes/personalIdentityNumber | https://id.oidc.se/claim/ personalIdentityNumber | https://id.oidc.se/scope/naturalPersonNumber | urn:oid:1.2.752.29.4.13 | personalIdentityNumber | http://sambi.se/attributes/1/personalIdentityNumber | urn:oid:1.2.752.29.4.13 |
| OIDC Sverige | Katalog | Identitetsattribut | general | N |
|
| | Personnummer | https://id.ena-infrastructure.se/attributes/eid/health/personalIdentityNumber | https://id.ena-infrastructure.se/attributes/eid/health/personalIdentityNumber | https://id.ena.se/scopes/health/eid | urn:oid:1.2.752.29.4.13 | personalIdentityNumber | | |
|
| Elegitimation | Identitetsattribut | health | N |
| I många implementationer innehåller detta attribut även samordningsnummer | | Samordningsnummer | https://id.ena-infrastructure.se/attributes/coordinationNumber | https://id.oidc.se/claim/ coordinationNumber | https://id.oidc.se/scope/naturalPersonNumber | urn:oid:1.2.752.29.4.13 | coordinationNumber | | |
| OIDC Sverige | Katalog | Identitetsattribut | general | N |
| Återfinns ofta i personaldentityNumber | | Samordningsnummer | https://id.ena-infrastructure.se/attributes/eid/health/coordinationNumber | https://id.ena-infrastructure.se/attributes/eid/health/coordinationNumber | https://id.ena.se/scopes/health/eid | urn:oid:1.2.752.29.4.13 | coordinationNumber | | |
|
| Elegitimation | Identitetsattribut | health | N |
|
| | HSA-id för anställd | https://id.ena-infrastructure.se/attributes/health/employeeHsaId | https://id.ena-infrastructure.se/attributes/health/employeeHsaId | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.29.6.2.1 | employeeHsaId | http://sambi.se/attributes/1/employeeHsaId | urn:oid:1.2.752.29.6.2.1 |
|
| Katalog | Identitetsattribut | health | N |
|
| | HSA-id för anställd | https://id.ena-infrastructure.se/attributes/eid/health/employeeHsaId | https://id.ena-infrastructure.se/attributes/eid/health/employeeHsaId | | urn:oid:1.2.752.29.6.2.1 | employeeHsaId | | urn:oid:1.2.752.29.6.2.1 |
|
| Elegitimation | Identitetsattribut | health | N |
|
| | Anställds organisationstillhörighet, id | https://id.ena-infrastructure.se/attributes/organizationIdentifier | https://id.oidc.se/claim/orgNumber | https://id.oidc.se/scope/naturalPersonOrgId | urn:oid:2.5.4.97 | orgNumber | http://sambi.se/attributes/1/organizationIdentifier | urn:oid:2.5.4.97 | 8024050190 | OIDC Sverige | Katalog | Relationsattribut | general | N |
|
| | Anställds organisationstillhörighet, namn | https://id.ena-infrastructure.se/attributes/organizationName | https://id.oidc.se/claim/ orgName | https://id.oidc.se/scope/naturalPersonOrgId | urn:oid:2.5.4.10 | OrganizationName | http://sambi.se/attributes/1/organizationName | urn:oid:2.5.4.10 |
| OIDC Sverige | Katalog | Relationsattribut | general | N |
|
| | Anställds relation till avdelning eller förvaltning inom organisationen | https://id.ena-infrastructure.se/attributes/orgUnit | https://id.oidc.se/claim/orgUnit | | urn:oid:2.5.4.11 | ou |
| urn:oid:2.5.4.11 | Barn- och ungdomsförvaltningen | OIDC Sverige | Katalog | Relationsattribut | general | J | N |
| | Anställds organisationstillhörighet knutet till uppdraget eller aktuell organisation, id | https://id.ena-infrastructure.se/attributes/health/OrganizationIdentifier | https://id.ena-infrastructure.se/attributes/health/OrganizationIdentifier | | urn:oid:2.5.4.97 | organizationIdentifier | http://sambi.se/attributes/1/organizationIdentifier | urn:oid:2.5.4.97 |
|
| Katalog | Relationsattribut | health | N |
|
| | Anställds organisationstillhörighet knutet till uppdraget eller aktuell organisation, namn | https://id.ena-infrastructure.se/attributes/health/OrganizationName | https://id.ena-infrastructure.se/attributes/health/OrganizationName | | urn:oid:2.5.4.10 | OrganizationName o | http://sambi.se/attributes/1/organizationName | urn:oid:2.5.4.10 |
|
| Katalog | Relationsattribut | health | N |
|
| | OrgAffiliation, knutet till uppdraget eller aktuell organisation | https://id.ena-infrastructure.se/attributes/OrgAffiliation | https://id.oidc.se/claim/ orgAffiliation | https://id.oidc.se/scope/naturalPersonOrgId | urn:oid:1.2.752.201.3.1 | OrgAffiliation |
| urn:oid:1.2.752.201.3.1 |
| OIDC Sverige | Katalog | Identitetsattribut | general | N |
|
| | OrgAffiliation, knutet till E-legitimationen | https://id.ena-infrastructure.se/attributes/eid/health/OrgAffiliation | https://id.ena-infrastructure.se/attributes/eid/health/OrgAffiliation | https://id.ena.se/scopes/health/eid | urn:oid:1.2.752.201.3.1 | OrgAffiliation |
|
|
|
| Elegitimation | Identitetsattribut | health | N |
|
| | E-post | https://id.ena-infrastructure.se/attributes/mail | email | email | urn:oid:0.9.2342.19200300.100.1.3 | email | http://sambi.se/attributes/1/mail | urn:oid:0.9.2342.19200300.100.1.3 | | OIDC Core | Katalog | Kommunikationsattribut | general | J |
|
| | Telefon | https://id.ena-infrastructure.se/attributes/phonenumber | phone_number | | urn:oid:2.5.4.20 | phone_Number | http://sambi.se/attributes/1/telephoneNumber | urn:oid:2.5.4.20 |
| OIDC Core | Katalog | Kommunikationsattribut | general | J |
|
| | Mobil | https://id.ena-infrastructure.se/attributes/mobile | https://id.ena-infrastructure.se/attributes/mobile | | urn:oid:0.9.2342.19200300.100.1.41 | mobile | http://sambi.se/attributes/1/mobileTelephoneNumber | urn:oid:0.9.2342.19200300.100.1.41 |
|
| Katalog | Kommunikationsattribut | general | J |
|
| | Förskrivarkod | https://id.ena-infrastructure.se/attributes/health/personalPrescriptionCode | https://id.ena-infrastructure.se/attributes/health/personalPrescriptionCode | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.116.3.1.2 | personalPrescriptionCode | http://sambi.se/attributes/1/personalPrescriptionCode | |
|
| Katalog | Mandatattribut | health | N |
|
| | Gruppförskrivarkod | https://id.ena-infrastructure.se/attributes/health/groupPrescriptionCode | https://id.ena-infrastructure.se/attributes/health/groupPrescriptionCode | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.29.4.132 | groupPrescriptionCode | http://sambi.se/attributes/1/groupPrescriptionCode | |
|
| Katalog | Mandatattribut | health |
|
|
| | Yrkesgrupp | https://id.ena-infrastructure.se/attributes/health/healthcareProfessionalLicense | https://id.ena-infrastructure.se/attributes/health/healthcareProfessionalLicense | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.116.3.1.3 | healthcareProfessionalLicense | http://sambi.se/attributes/1/healthcareProfessionalLicense | |
|
| Katalog | Mandatattribut | health | J |
|
| | Yrkeskategorier för personal inom vård och omsorg, komplement till healthcareProfessionalLicense | https://id.ena-infrastructure.se/attributes/health/occupationalCode | https://id.ena-infrastructure.se/attributes/health/occupationalCode | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.221.100.1.1 | occupationalCode | http://sambi.se/attributes/1/occupationalCode | |
|
| Katalog | Mandatattribut | health | J |
|
| | Identitet öppenvårdsapotek | https://id.ena-infrastructure.se/attributes/health/pharmacyIdentifier | https://id.ena-infrastructure.se/attributes/health/pharmacyIdentifier | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.221.100.1.2 | pharmacyIdentifier | http://sambi.se/attributes/1/pharmacyIdentifier | |
|
| Katalog | Mandatattribut | health | N |
|
| | Organisationsnummer för vårdgivare | https://id.ena-infrastructure.se/attributes/health/healthcareProviderId | https://id.ena-infrastructure.se/attributes/health/healthcareProviderId | https://id.ena.se/scopes/health/commission | urn:oid:2.5.4.97 | healthcareProviderId | http://sambi.se/attributes/1/healthcareProviderId | |
|
| Katalog | Relationsattribut | health | N |
|
| | HSA-id för vårdgivare | https://id.ena-infrastructure.se/attributes/health/healthcareProviderHsaId | https://id.ena-infrastructure.se/attributes/health/healthcareProviderHsaId | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.29.6.10.1 | healthcareProviderHsaId | http://sambi.se/attributes/1/healthCareProviderHsaId | |
|
| Katalog | Relationsattribut | health | N |
|
| | HSA-id för vårdgivare, namn | https://id.ena-infrastructure.se/attributes/health/healthcareProviderName | https://id.ena-infrastructure.se/attributes/health/healthcareProviderName | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.29.6.10.2 | healthCareProviderName | http://sambi.se/attributes/1/healthCareProviderName | |
|
| Katalog | Informationsattribut | health | N |
|
| | HSA-id för vårdenhet | https://id.ena-infrastructure.se/attributes/health/healthcareUnitHsaId | https://id.ena-infrastructure.se/attributes/health/healthcareUnitHsaId | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.29.6.13.1 | healthcareUnitHsaId | http://sambi.se/attributes/1/healthCareUnitHsaId | |
|
| Katalog | Relationsattribut | health | N |
|
| | Vårdenhetsnamn | https://id.ena-infrastructure.se/attributes/health/healthcareUnitName | https://id.ena-infrastructure.se/attributes/health/healthcareUnitName | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.29.6.13.2 | healthCareUnitName | http://sambi.se/attributes/1/healthCareUnitName | |
|
| Katalog | Informationsattribut | health | N |
|
| | Befattningskoder | https://id.ena-infrastructure.se/attributes/health/paTitleCode | https://id.ena-infrastructure.se/attributes/health/paTitleCode | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.129.2.2.1.4 | paTitleCode | http://sambi.se/attributes/1/paTitleCode | |
|
| Katalog | Mandatattribut | health | J |
|
| | HSA-id för uppdrag | https://id.ena-infrastructure.se/attributes/health/commissionHsaId | https://id.ena-infrastructure.se/attributes/health/commissionHsaId | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.29.6.12.1 | commissionHsaId | http://sambi.se/attributes/1/commissionHsaId | |
|
| Katalog | Informationsattribut | health | N |
|
| | Uppdragsnamn | https://id.ena-infrastructure.se/attributes/health/commissionName | https://id.ena-infrastructure.se/attributes/health/commissionName
| https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.29.6.12.2 | commissionName | http://sambi.se/attributes/1/commissionName | |
|
| Katalog | Informationsattribut | health | N |
|
| | Uppdragets ändamål | https://id.ena-infrastructure.se/attributes/health/commissionPurpose | https://id.ena-infrastructure.se/attributes/health/commissionPurpose | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.29.4.125 | commissionPurpose | http://sambi.se/attributes/1/commissionPurpose | |
|
| Katalog | Mandatattribut | health | N |
|
| | Uppdragets rättigheter | https://id.ena-infrastructure.se/attributes/health/commissionRight | https://id.ena-infrastructure.se/attributes/health/commissionRight | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.29.4.124 | commissionRight | http://sambi.se/attributes/1/commissionRight | |
|
| Katalog | Mandatattribut | health | J |
|
| | Systemrättigheter | https://id.ena-infrastructure.se/attributes/health/systemRole | https://id.ena-infrastructure.se/attributes/health/systemRole | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.29.4.95 | systemRole | http://sambi.se/attributes/1/systemRole | |
|
| Katalog | Mandatattribut | health | J |
|
| | Specialistkoder för legitimerad yrkesgrupp | https://id.ena-infrastructure.se/attributes/health/healthcareProfessionalLicenceSpeciality | https://id.ena-infrastructure.se/attributes/health/healthcareProfessionalLicenceSpeciality | https://id.ena.se/scopes/health/commission | Legitimerad yrkesgrupp urn:oid:1.2.752.116.3.1.3 Specialistkoder urn:oid:1.2.752.116.3.1.6 urn:oid:1.2.752.116.3.1.7 urn:oid:1.2.752.116.3.1.8 urn:oid:1.2.752.116.3.1.9 urn:oid:1.2.752.116.3.1.10 urn:oid:1.2.752.116.3.1.15 | healthcareProfessionalLicenceSpeciality | http://sambi.se/attributes/1/healthCareProfessionalLicenceSpeciality | | healthCareProfessionalLicenseCode":" LK","specialityCode":"30014","specialityName":"Barn-ochungdomshematologi och onkologi" |
| Katalog | Mandatattribut | health | J |
|
| | Unik identitet(löpnummer) för enperson i HOSP | https://id.ena-infrastructure.se/attributes/health/healthcareProfessionalLicenseIdentityNumber | https://id.ena-infrastructure.se/attributes/health/healthcareProfessionalLicenseIdentityNumber | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.116.3.1.1 | healthcareProfessionalLicenseIdentityNumber | http://sambi.se/attributes/1/healthcareProfessionalLicenseIdentityNumber | |
|
| Katalog | Identitetsattribut | health | N |
|
| | Yrkeskategorier för personal inom vård- ochomsorg som inte finnsreglerat i annat ellermer formellt register.Exempelvisyrkeskategorier som intehar yrkeslegitimation irelation tillsocialstyrelsen | https://id.ena-infrastructure.se/attributes/health/veterinaryIdentificationNumber | https://id.ena-infrastructure.se/attributes/health/veterinaryIdentificationNumber | https://id.ena.se/scopes/health/commission | urn:oid:1.2.752.221.100.1.3 | veterinaryIdentificationNumber | http://sambi.se/attributes/1/veterinaryIdentificationNumber | |
|
| Katalog | Identitetsattribut | health | N |
|
| | Samtliga uppdrag för en användare | https://id.ena-infrastructure.se/attributes/health/allCommissions | https://id.ena-infrastructure.se/attributes/health/allCommissions | https://id.ena.se/scopes/health/allCommissions | | allCommissions | | |
|
| Katalog | Mandatattribut | health | N |
|
| | Samtliga administrativa uppdrag för en användare | https://id.ena-infrastructure.se/attributes/health/authorizationScope | https://id.ena-infrastructure.se/attributes/health/authorizationScope | https://id.ena.se/scopes/health/authorizationScope | urn:oid:1.2.752.221.100.1.4 | authorizationScope | http://sambi.se/attributes/1/administrationTask | |
|
| Katalog | Mandatattribut | health | N |
|
| | Global federationsanvändarnamn | https://id.ena-infrastructure.se/attributes/edu/eduPersonPrincipalName | Använd istället subject-id | | urn:oid:1.3.6.1.4.1.5923.1.1.1.6 | eduPersonPrincipalName | subject-id | | ee755715-f486-4808-a82b-99a7a66da7d3@edu.goteborg.se |
| Katalog |
| edu | N | J |
| | Personnummer, samordningsnummer, TF-nummer, reserv-ID eller utländska identitetsbeteckning (t ex eIDAS) | https://id.ena-infrastructure.se/attributes/edu/norEduPersonNIN | https://id.ena-infrastructure.se/attributes/edu/norEduPersonNIN | https://id.ena.se/scopes/edu | urn:oid:1.3.6.1.4.1.2428.90.1.5 | norEduPersonNIN |
| | 200112240123 (personnumer) 200112845862 (samordningsnummer) 22950606FH20 (reserv-id) 20011284TF01 (TF-nummer) |
| Katalog |
| edu | N | N |
| | Skolenhetskod | https://id.ena-infrastructure.se/attributes/edu/sisSchoolUnitCode | https://id.ena-infrastructure.se/attributes/edu/sisSchoolUnitCode | https://id.ena.se/scopes/edu | urn:oid:1.2.752.194.10.2.4 | sisSchoolUnitCode |
| | 14801860 |
| Katalog |
| edu | J | N |
| | Alternativ kod för utbildningsenhet | https://id.ena-infrastructure.se/attributes/edu/sisUnitCodeOther | https://id.ena-infrastructure.se/attributes/edu/sisUnitCodeOther | https://id.ena.se/scopes/edu | urn:oid:1.2.752.194.10.2.11 | sisUnitCodeOther | | | 5117@edu.goteborg.se |
| Katalog |
| edu | N | J |
| | Elev i elevgrupp | https://id.ena-infrastructure.se/attributes/edu/sisSchoolCourseStudent | https://id.ena-infrastructure.se/attributes/edu/sisSchoolCourseStudent | https://id.ena.se/scopes/edu | urn:oid:1.2.752.194.10.2.5 | sisSchoolCourseStudent | | | http://goteborg.se/61701709/IDHIDH01-2015%2F16/Undervisning |
| Katalog |
| edu | J | N |
| | Lärare för elevgrupp | https://id.ena-infrastructure.se/attributes/edu/sisSchoolCourseTeacher | https://id.ena-infrastructure.se/attributes/edu/sisSchoolCourseTeacher | https://id.ena.se/scopes/edu | urn:oid:1.2.752.194.10.2.6 | sisSchoolCourseTeacher | | | http://goteborg.se/61701709/IDHIDH01-2015%2F16/Undervisning |
| Katalog |
| edu | J | N |
| | Tilldelning av resurser | https://id.ena-infrastructure.se/attributes/edu/eduPersonEntitlement | https://id.ena-infrastructure.se/attributes/edu/eduPersonEntitlement | https://id.ena.se/scopes/edu | urn:oid:1.3.6.1.4.1.5923.1.1.1.7 | eduPersonEntitlement | | |
|
| Katalog |
| edu | J | N |
| | Förvaltning | https://id.ena-infrastructure.se/attributes/edu/sisOrgDepartment | https://id.ena-infrastructure.se/attributes/edu/sisOrgDepartment | https://id.ena.se/scopes/edu | urn:oid:1.2.752.194.10.2.3 | sisOrgDepartment | | | Barn- och ungdomsförvaltningen |
| Katalog |
| edu | J | N |
| | Årskurs | https://id.ena-infrastructure.se/attributes/edu/sisSchoolGrade | https://id.ena-infrastructure.se/attributes/edu/sisSchoolGrade | https://id.ena.se/scopes/edu | urn:oid:1.2.752.194.10.2.2 | sisSchoolGrade | | | 7 |
| Katalog |
| edu | N | N | kodas med F för förskolan, 0-10 för grundskolan, 11-14 för gymnasiet och V för vuxenutbildning | | Vårdnadshavarens barn | https://id.ena-infrastructure.se/attributes/edu/sisLegalGuardianFor | https://id.ena-infrastructure.se/attributes/edu/sisLegalGuardianFor | https://id.ena.se/scopes/edu | urn:oid:1.2.752.194.10.2.1 | sisLegalGuardianFor | | | 201412240123 |
| Katalog |
| edu | J | N | Kommer att utgå | | Provisorisk identifierare | urn:oid:1.2.752.201.3.4 | https://id.swedenconnect.se/claim/prid | https://id.swedenconnect.se/scope/eidasNaturalPersonIdentity | urn:oid:1.2.752.201.3.4 | prid | | |
| Sweden Connect |
|
| eIDAS | N | N |
|
|
Utestående frågeställningar
Här finns ett antal frågor att besvara innan vi kan detaljera attributramverket.
- Vem har givit ut e-legitimationen?
- Vem är personens huvudsakliga arbetsgivare?
- Vem är personens uppdragsgivare för den rolll personen agerar i just nu?
Ska namnet på attributet spegla källan, till exempel /eid för e-legitimation och /idp för IdP?
I den överenskommelse som finns mellan regionerna och E-hälsomyndigheten när det gäller den SAML-propageringslösning för åtkomst till NLL har man etablerat en namnstandard för attribut som härrör sig från IdP:n. Ett exempel på detta är https://idp.inera.se/attributes/identityProviderForSign Som man kan se så innehåller attributnamnet referens till en organisation. En mera neutral namngivning på detta attribut kunde vara https://federationer.se/attribute/idp/1.0/identityProviderForSign
I vissa användningsfall är det viktigt för e-tjänsten som begär attributen att skilja på om attributen kommer från själva e-legitimationen eller från attributkällan. För Ineras IdP så går det att peka ut certifikatets givenName med attributet urn:credential:givenName. Motsvarande attribut som hämtas från katalogen är http://sambi.se/attributes/1/givenName eller urn:oid:2.5.4.42 (enligt Sweden Connects namnsättning), beroende på vilken IdP man ansluter till. I det senare fallet finns det ingen metod att peka ut attributet som är e-legitimationsspecifikt.
Det spännande attributet orgAffiliation som heter urn:oid:1.2.752.201.3.1 enligt Sweden Connect och som i Ineras fall betyder att källan är katalogen, knutet till uppdraget, att jämföra med https://idp.inera.se/attributes/userOrgAffiliation som är knutet till en personpost i katalogen, oberoende av uppdrag men beroende på vilken organisation som användaren tillhör.
Vi skulle kunna tänka oss följande motsvarande attribut i ramverket
https://id.ena-infrastructure.se/attributes/health/1.0/orgAffiliation
https://id.ena-infrastructure.se/attributes/health/1.0/userOrgAffiliation
Övrig semantik i attributnamnet
Vissa attribut kan relatera till en anställds organisationstillhörighet eller uppdrag/roll, hur ska e-tjänsten kunna skilja på detta? I Ineras fall när det gäller den anställdes HSAid beror det på vilka andra attribut som e-tjänsten begär. Observera skillnaden mellan ett HSAid som är knutet till e-legitimationen och HSA-id som finns i katalogen. I den senare kategorin finns ingen namnsättning som skiljer på organisationstillhörighet och uppdragssituation.
När det gäller domänspecifika attribut inom vård och omsorg finns "health" med i attributnamnet https://id.ena-infrastructure.se/attributes/health/healthcareProfessionalLicenseIdentityNumber bland de attribut som används för åtkomst till NLL och är överenskommet med E-hälsomyndigheten och regionerna.
Versionshantering av attribut
Ska attributnamnen ha en namnstandard som medger versionshantering enligt mönster från Sambi?
Exempel från Sambi: http://sambi.se/attributes/1/givenName
Om vi använder det i ramverket: https://federationer.se/attribute/1.0/givenName
Fördelar: om ett attribut får en annan betydelse, till exempel en annan värdemängd, behöver vi inte hitta på ett helt nytt namn utan bara byta som i detta fall 1.0 till 2.0. Den praktiska konsekvensen är att det är ett helt nytt attribut som kan leva parallellt med det gamla. Fråga: har detta någonsin använts i Sambi?
| Info |
|---|
En semantisk eller redaktionell uppdatering i profil → tekniskt breaking change Och det är ofta oproportionerligt dyrt. Konsekvens: Versionsnumret i attributnamnet fryser på “1” för alltid. Det beror på att man undviker kostnaden för att byta – vilket gör versionen semantiskt meningslös. Designprinciper som brukar fungera bättre: Attributidentifieraren ska vara stabil Versionering ska ske i profilen, inte i attributet Om något förändras – använd kompatibilitetsprincipen Om du kan uppdatera profilen utan att bryta existerande implementationer → behåll attributets URI. Om det bryter → skapa nytt attribut och deprecera det gamla. Slutsats: inget versionsnummer i attributnamnet, regel för detta arbete. |
Referenser
| Anchor |
|---|
| Vägledning attribut SKR |
|---|
| Vägledning attribut SKR |
|---|
|
Vägledning för hantering av behörighetsattribut (SKR)
| Anchor |
|---|
| Upphandling e-underskrift SKR |
|---|
| Upphandling e-underskrift SKR |
|---|
|
Stöd för upphandling av e-underskrifter (SKR)
| Anchor |
|---|
| Behörighetsmodell Inera |
|---|
| Behörighetsmodell Inera |
|---|
|
Behörighetsmodell för vård och omsorg (Inera)
| Anchor |
|---|
| Vägledning elektronisk underskrift SKR |
|---|
| Vägledning elektronisk underskrift SKR |
|---|
|
Vägledning elektronisk underskrift (SKR)
OIDC Core
OIDC Sweden| Anchor |
|---|
| Sweden Connect attributprofil |
|---|
| Sweden Connect attributprofil |
|---|
|
Sweden Connect attributprofil| Anchor |
|---|
| Sambis attributprofil |
|---|
| Sambis attributprofil |
|---|
|
Sambis attributprofilI
| Anchor |
|---|
| Inera IdP plus attribut |
|---|
| Inera IdP plus attribut |
|---|
|
nera IdP plus attributlistaOID repositoryRFC LDAP
Appendix A - exempel från verkligheten
SAML
För SAML finns det exempel på metadata, inloggningsbegäran (request) och svar (assertion). Det kan vara värt att studera dessa exempel för att förstå hur SAML fungerar.
IdP Bas från Inera SAML-profil
OIDC
För OIDC finns motsvarande här
IdP Bas från Inera OIDC-profil
Appendix B - utforskande material kring informationsmodell för behörighetsgrundande information
DISCLAIMER: Inom detta arbete ska vi inte modellera hur behörighetsstyrande attribut är strukturerade i attributkällor, men vi tänkte lite kring detta i tidigt skede av arbetet och har sparat vårt arbetsmaterial i detta appendix.
Image Added
Länk till editor för att editera modell...
Exempel läkare
| Expand |
|---|
| Code Block |
|---|
| {
"subject": {
"type": "Human",
"name": "Anna Andersson",
"given_name": "Anna",
"family_name": "Andersson",
"eID": {
"prid": "SE:NO:199001011234",
"pridPersistence": "A",
"x509SubjectName": "CN=Anna Andersson,SERIALNUMBER=199001011234,C=SE",
"x509IssuerName": "CN=SITHS e-id Function CA v1,O=Inera AB,C=SE",
"credentialGivenName": "Anna",
"credentialSurname": "Andersson",
"credentialPersonalIdentityNumber": "199001011234",
"credentialCertificate": "MIIGHz...",
"credentialDisplayName": "Anna Andersson",
"credentialOrganizationName": "Region Stockholm",
"credentialCertificatePolicies": [
"1.2.752.26.11.1.15.4",
"1.2.752.26.11.1.15.14"
]
},
"credentials": {
"email": "anna.andersson@regionstockholm.se"
},
"affiliations": [
{
"type": "Employment",
"orgAffiliation": "SE2321000016-5BCD",
"employeeIdentifier": "SE2321000016-ABC123",
"telephoneNumber": "+4608123456",
"mobile": "+46701234567",
"mail": "anna.andersson@regionstockholm.se",
"cFARUnit": "12345678",
"organizationalUnitAssignment": "Akutmottagningen",
"financialResponsibilityCode": "1234",
"jobTitle": "Läkare",
"facility": "Karolinska Universitetssjukhuset",
"responsibilityArea": "Akut",
"workLocation": "Huddinge"
},
{
"type": "Commission",
"orgAffiliation": "SE2321000016-5BCD",
"commissionIdentifier": "SE2321000016-COMM01",
"commissionName": "Förskrivare",
"commissionPurpose": "Vård och behandling",
"aidCode": "000",
"aidLabel": "Läkare",
"responsibilityCode": "1",
"function": "Behandlande läkare",
"domain": "Vård",
"validFrom": "2025-01-01",
"validTo": "2026-12-31",
"principalIdentifier": "SE2321000016-VARD01",
"principalName": "Region Stockholm Vård AB",
"commissionRights": [
{
"activity": "Förskriva",
"scope": "Slutenvård",
"informationClass": "Läkemedel"
},
{
"activity": "Läsa",
"scope": "Öppenvård",
"informationClass": "Journal"
}
],
"authorizationScope": {
"facility": "Karolinska Universitetssjukhuset",
"responsibilityArea": "Akut",
"workLocation": "Huddinge"
}
}
]
}
} |
|
Exempel Lärare
| Expand |
|---|
| Code Block |
|---|
| {
"subject": {
"type": "Human",
"name": "Maria Lindström",
"given_name": "Maria",
"family_name": "Lindström",
"eID": {
"prid": "SE:SE:197505152345",
"pridPersistence": "A",
"x509SubjectName": "CN=Maria Lindström,SERIALNUMBER=197505152345,C=SE",
"x509IssuerName": "CN=SITHS e-id Person CA v2,O=Inera AB,C=SE",
"credentialGivenName": "Maria",
"credentialSurname": "Lindström",
"credentialPersonalIdentityNumber": "197505152345",
"credentialCertificate": "MIIGHz...",
"credentialDisplayName": "Maria Lindström",
"credentialOrganizationName": "Värmdö kommun",
"credentialCertificatePolicies": [
"1.2.752.26.11.1.15.4"
]
},
"credentials": {
"email": "maria.lindstrom@varmdo.se"
},
"affiliations": [
{
"type": "Employment",
"orgAffiliation": "SE212000028-AB12",
"employeeIdentifier": "SE212000028-EMP456",
"telephoneNumber": "+4608570800",
"mobile": "+46709876543",
"mail": "maria.lindstrom@varmdo.se",
"cFARUnit": "87654321",
"organizationalUnitAssignment": "Gustavsbergsskolan",
"financialResponsibilityCode": "2210",
"jobTitle": "Lärare",
"facility": "Gustavsbergsskolan",
"responsibilityArea": "Grundskola år 7-9",
"workLocation": "Gustavsberg"
},
{
"type": "Commission",
"orgAffiliation": "SE212000028-AB12",
"commissionIdentifier": "SE212000028-COMM01",
"commissionName": "Klasslärare 8B",
"commissionPurpose": "Undervisning och elevvård",
"aidCode": "310",
"aidLabel": "Lärare grundskola",
"responsibilityCode": "1",
"function": "Klasslärare",
"domain": "Utbildning",
"validFrom": "2025-08-15",
"validTo": "2026-06-15",
"principalIdentifier": "SE212000028-NÄMND01",
"principalName": "Värmdö kommuns barn- och ungdomsnämnd",
"commissionRights": [
{
"activity": "Registrera",
"scope": "Elevdokumentation",
"informationClass": "Betyg"
},
{
"activity": "Läsa",
"scope": "Elevdokumentation",
"informationClass": "Åtgärdsprogram"
}
],
"authorizationScope": {
"facility": "Gustavsbergsskolan",
"responsibilityArea": "Grundskola år 7-9",
"workLocation": "Gustavsberg"
}
}
]
}
} |
|
Exempel student
| Expand |
|---|
| Code Block |
|---|
| {
"subject": {
"type": "Human",
"name": "Erik Johansson",
"given_name": "Erik",
"family_name": "Johansson",
"credentials": {
"email": "erik.johansson@elev.skola.se"
},
"affiliations": [
{
"type": "Student",
"orgAffiliation": "SE212000028-AB12",
"eduPersonPrincipalName": "erik.johansson@skola.se",
"eduPersonScopedAffiliation": "student@skola.se",
"organizationName": "Värmdö kommuns skolor",
"organizationNumber": "212000-0028",
"sisSchoolUnitCode": "53513510",
"sisSchoolUnitName": "Gustavsbergsskolan",
"schoolType": "Grundskola",
"schoolYear": "8",
"studentGroup": "8B",
"educationRole": "student"
}
]
}
} |
|
Bakgrundmaterial
| Expand |
|---|
|
Inom hälsosektorn används en attributprofil, i vilken man kan uttrycka att en användare kan ha ett antal olika systemspecifika rolltilldelningar (SystemRole), vårdspecifika uppdrag (Commission), samt så kallade administrativa uppdrag (AdminCommission) inom ett visst organisatoriskt omfång (AuthorizationScope). Notera att Ineras IdP låter användaren välja vilken av uppdragen som ska representeras som "aktivt" och då få sina claims kopierade till rotnivån i intyget. Alla uppdrag kan även bifogas (allCommissions) och då kan eTjänsten låta användaren välja vilket uppdrag som ska användas för åtkomstbeslut, loggning, m.m. i e-tjänsten. | Code Block |
|---|
| {
"commissionPurpose": "Administration",
"at_hash": "qEj37dgo2bQEyePuzqDyNQ",
"pharmacyIdentifier": "731.1337.1337:Apotek",
"sub": "1a400571-a2d0-4b28-b9da-11400ba496e1",
"healthCareUnitName": "Admin",
"credentialCertificatePolicies": [
"2.23.140.1.2.3",
"1.2.752.74.8.506"
],
"amr": [
"urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient"
],
"iss": "https://idp.dev.inera.test:8443/oidc",
"credentialGivenName": "Olof",
"healthcareProviderId": "2321000214",
"commissionHsaId": "SE111-UPPDRAG-JLL-TEKSYSADMIN",
"acr": "http://id.sambi.se/loa/loa3",
"systemRole": [
{
"systemId": "BIF",
"role": "Loggadministratör"
},
{
"systemId": "BIF",
"role": "Administrator"
},
{
"systemId": "PU",
"role": "Administratör"
}
],
"organizationIdentifier": "2321000214",
"credentialSurname": "Olsson",
"auth_time": 1610616929,
"healthCareProviderName": "SE111-JLL",
"exp": 1610618196,
"healthCareProviderHsaId": "SE111-JLL",
"iat": 1610617896,
"commissionRight": [
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "dia"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "fun"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "lkf"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "lkm"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "lko"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "pad"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "pat"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "und"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "upp"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "vbe"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "vko"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "voo"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "vot"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "vpo"
}
],
"organizationName": "SE111-JLL",
"healthCareUnitHsaId": "SE111-ADMIN",
"authorizationScope": [
{
"authorizationScopePropertyName": "Tjänstesupport",
"authorizationScopeName": "Hitta och jämför vård",
"authorizationScopeCode": "HJV",
"authorizationScopePropertyCode": "HJV;003",
"authorizationScopeDescription": "Hitta och jämför vård är den del på 1177.se som presenterar kontaktinformation till landets vårdmottagningar, deras vårdutbud och vårdkvalitet.Varje enskild mottagning har ett eget ”kontaktkort” där kontaktuppgifter, e-tjänster och övrigt utbud presenteras.",
"authorizationScopePropertyDescription": "Tjänstesupport Beskrivning",
"adminCommissions": [
{
"adminCommissionHsaId": "TNT4477663322-1021",
"sector": [
{
"sectorFlag": true,
"feignedUnit": null,
"name": "CGI Östersund",
"unitHsaId": "TNT4477663322-101Q"
}
],
"adminCommissionResponsibleOrganisation": "447766-3323",
"feignedAdminCommission": null
}
]
},
{
"authorizationScopePropertyName": "Redaktör kontaktkort",
"authorizationScopeName": "Hitta och jämför vård",
"authorizationScopeCode": "HJV",
"authorizationScopePropertyCode": "HJV;001",
"authorizationScopeDescription": "Hitta och jämför vård är den del på 1177.se som presenterar kontaktinformation till landets vårdmottagningar, deras vårdutbud och vårdkvalitet.Varje enskild mottagning har ett eget ”kontaktkort” där kontaktuppgifter, e-tjänster och övrigt utbud presenteras.",
"authorizationScopePropertyDescription": "Redaktör kontaktkort får administrera information på kontaktkorten förutom kontaktkorten.",
"adminCommissions": [
{
"adminCommissionHsaId": "TNT4477663322-1021",
"sector": [
{
"sectorFlag": true,
"feignedUnit": null,
"name": "CGI Östersund",
"unitHsaId": "TNT4477663322-101Q"
}
],
"adminCommissionResponsibleOrganisation": "447766-3323",
"feignedAdminCommission": null
}
]
}
],
"x509SubjectName": "EMAILADDRESS=olof.olsson@inera.test, SERIALNUMBER=TNT4477663322-1046, GIVENNAME=Olof, SURNAME=Olsson, CN=Olof Olsson, O=Inera AB, L=SITHS, C=SE",
"given_name": "Olof",
"x509IssuerName": "CN=TEST SITHS e-id Person HSA-id 3 CA v1,O=Inera AB,C=SE",
"aud": "https://sp.dev.inera.test:8881",
"commissionName": "Teknisk Systemadministratör JLL",
"credentialPersonalIdentityNumber": "TNT4477663322-1046",
"credentialCertificate": "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",
"employeeHsaId": "TNT4477663322-1046",
"name": "Olof Olsson",
"credentialDisplayName": "Olof Olsson",
"credentialOrganizationName": "Inera AB",
"family_name": "Olsson",
"authenticationMethod": "SITHS_EID_SAME_DEVICE",
"allEmployeeHsaIds": [
"TSTNMT2321000156-10NG",
"TSTNMT2321000156-10NX"
],
"allCommissions": "[{\"employeeHsaId\":\"TSTNMT2321000156-10NG\",\"commissionName\":\"Teknisk Systemadministratör JLL\",\"commissionHsaId\":\"SE111-UPPDRAG-JLL-TEKSYSADMIN\",\"commissionPurpose\":\"Administration\",\"healthCareUnitHsaId\":\"SE111-ADMIN\",\"healthCareUnitName\":\"Admin\",\"healthCareProviderHsaId\":\"SE111-JLL\",\"healthCareProviderName\":\"SE111-JLL\",\"healthCareProviderOrgNo\":\"2321000214\",\"commissionRights\":[{\"activity\":\"Läsa\",\"informationClass\":\"dia\",\"scope\":\"VG\"},{\"activity\":\"Läsa\",\"informationClass\":\"fun\",\"scope\":\"VG\"}]},{\"employeeHsaId\":\"TSTNMT2321000156-10NX\",\"commissionName\":\"Teknisk Systemadministratör SLL\",\"commissionHsaId\":\"SE222-UPPDRAG-SLL-TEKSYSADMIN\",\"commissionPurpose\":\"Administration\",\"healthCareUnitHsaId\":\"SE222-ADMIN\",\"healthCareUnitName\":\"Admin\",\"healthCareProviderHsaId\":\"SE222-SLL\",\"healthCareProviderName\":\"SE222-SLL\",\"healthCareProviderOrgNo\":\"2321000214\",\"commissionRights\":[{\"activity\":\"Läsa\",\"informationClass\":\"dia\",\"scope\":\"VG\"},{\"activity\":\"Läsa\",\"informationClass\":\"fun\",\"scope\":\"VG\"}]}]",
"allCommissionOrgAffiliations": [
"TSTNMT2321000156-10NG@123456-7890",
"TSTNMT2321000156-10NX@654321-0987"
],
"userOrganizationHsaId": "SE2321000156-0001",
"sithsEidChallenge": "b90fc25314de41ffaf88c03677e2caac"
} |
Image AddedAttributprofil skapad utifrån exempel från Inera Idp (inklippt nedan). Bilden länkar till en online-editor (OBS - uppdaterar ej bilden med automatik utan man behöver uppdatera både bild och länk när man uppdaterar))
|
Exempel student
...
| Code Block |
|---|
|
{
"subject": {
"type": "Human",
"name": "Erik Johansson",
"given_name": "Erik",
"family_name": "Johansson",
"credentials": {
"email": "erik.johansson@elev.skola.se"
},
"affiliations": [
{
"type": "Student",
"orgAffiliation": "SE212000028-AB12",
"eduPersonPrincipalName": "erik.johansson@skola.se",
"eduPersonScopedAffiliation": "student@skola.se",
"organizationName": "Värmdö kommuns skolor",
"organizationNumber": "212000-0028",
"sisSchoolUnitCode": "53513510",
"sisSchoolUnitName": "Gustavsbergsskolan",
"schoolType": "Grundskola",
"schoolYear": "8",
"studentGroup": "8B",
"educationRole": "student"
}
]
}
} |
Bakgrundmaterial
| Expand |
|---|
|
Inom hälsosektorn används en attributprofil, i vilken man kan uttrycka att en användare kan ha ett antal olika systemspecifika rolltilldelningar (SystemRole), vårdspecifika uppdrag (Commission), samt så kallade administrativa uppdrag (AdminCommission) inom ett visst organisatoriskt omfång (AuthorizationScope). Notera att Ineras IdP låter användaren välja vilken av uppdragen som ska representeras som "aktivt" och då få sina claims kopierade till rotnivån i intyget. Alla uppdrag kan även bifogas (allCommissions) och då kan eTjänsten låta användaren välja vilket uppdrag som ska användas för åtkomstbeslut, loggning, m.m. i e-tjänsten. | Code Block |
|---|
| {
"commissionPurpose": "Administration",
"at_hash": "qEj37dgo2bQEyePuzqDyNQ",
"pharmacyIdentifier": "731.1337.1337:Apotek",
"sub": "1a400571-a2d0-4b28-b9da-11400ba496e1",
"healthCareUnitName": "Admin",
"credentialCertificatePolicies": [
"2.23.140.1.2.3",
"1.2.752.74.8.506"
],
"amr": [
"urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient"
],
"iss": "https://idp.dev.inera.test:8443/oidc",
"credentialGivenName": "Olof",
"healthcareProviderId": "2321000214",
"commissionHsaId": "SE111-UPPDRAG-JLL-TEKSYSADMIN",
"acr": "http://id.sambi.se/loa/loa3",
"systemRole": [
{
"systemId": "BIF",
"role": "Loggadministratör"
},
{
"systemId": "BIF",
"role": "Administrator"
},
{
"systemId": "PU",
"role": "Administratör"
}
],
"organizationIdentifier": "2321000214",
"credentialSurname": "Olsson",
"auth_time": 1610616929,
"healthCareProviderName": "SE111-JLL",
"exp": 1610618196,
"healthCareProviderHsaId": "SE111-JLL",
"iat": 1610617896,
"commissionRight": [
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "dia"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "fun"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "lkf"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "lkm"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "lko"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "pad"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "pat"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "und"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "upp"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "vbe"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "vko"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "voo"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "vot"
},
{
"activity": "Läsa",
"scope": "VG",
"informationClass": "vpo"
}
],
"organizationName": "SE111-JLL",
"healthCareUnitHsaId": "SE111-ADMIN",
"authorizationScope": [
{
"authorizationScopePropertyName": "Tjänstesupport",
"authorizationScopeName": "Hitta och jämför vård",
"authorizationScopeCode": "HJV",
"authorizationScopePropertyCode": "HJV;003",
"authorizationScopeDescription": "Hitta och jämför vård är den del på 1177.se som presenterar kontaktinformation till landets vårdmottagningar, deras vårdutbud och vårdkvalitet.Varje enskild mottagning har ett eget ”kontaktkort” där kontaktuppgifter, e-tjänster och övrigt utbud presenteras.",
"authorizationScopePropertyDescription": "Tjänstesupport Beskrivning",
"adminCommissions": [
{
"adminCommissionHsaId": "TNT4477663322-1021",
"sector": [
{
"sectorFlag": true,
"feignedUnit": null,
"name": "CGI Östersund",
"unitHsaId": "TNT4477663322-101Q"
}
],
"adminCommissionResponsibleOrganisation": "447766-3323",
"feignedAdminCommission": null
}
]
},
{
"authorizationScopePropertyName": "Redaktör kontaktkort",
"authorizationScopeName": "Hitta och jämför vård",
"authorizationScopeCode": "HJV",
"authorizationScopePropertyCode": "HJV;001",
"authorizationScopeDescription": "Hitta och jämför vård är den del på 1177.se som presenterar kontaktinformation till landets vårdmottagningar, deras vårdutbud och vårdkvalitet.Varje enskild mottagning har ett eget ”kontaktkort” där kontaktuppgifter, e-tjänster och övrigt utbud presenteras.",
"authorizationScopePropertyDescription": "Redaktör kontaktkort får administrera information på kontaktkorten förutom kontaktkorten.",
"adminCommissions": [
{
"adminCommissionHsaId": "TNT4477663322-1021",
"sector": [
{
"sectorFlag": true,
"feignedUnit": null,
"name": "CGI Östersund",
"unitHsaId": "TNT4477663322-101Q"
}
],
"adminCommissionResponsibleOrganisation": "447766-3323",
"feignedAdminCommission": null
}
]
}
],
"x509SubjectName": "EMAILADDRESS=olof.olsson@inera.test, SERIALNUMBER=TNT4477663322-1046, GIVENNAME=Olof, SURNAME=Olsson, CN=Olof Olsson, O=Inera AB, L=SITHS, C=SE",
"given_name": "Olof",
"x509IssuerName": "CN=TEST SITHS e-id Person HSA-id 3 CA v1,O=Inera AB,C=SE",
"aud": "https://sp.dev.inera.test:8881",
"commissionName": "Teknisk Systemadministratör JLL",
"credentialPersonalIdentityNumber": "TNT4477663322-1046",
"credentialCertificate": "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",
"employeeHsaId": "TNT4477663322-1046",
"name": "Olof Olsson",
"credentialDisplayName": "Olof Olsson",
"credentialOrganizationName": "Inera AB",
"family_name": "Olsson",
"authenticationMethod": "SITHS_EID_SAME_DEVICE",
"allEmployeeHsaIds": [
"TSTNMT2321000156-10NG",
"TSTNMT2321000156-10NX"
],
"allCommissions": "[{\"employeeHsaId\":\"TSTNMT2321000156-10NG\",\"commissionName\":\"Teknisk Systemadministratör JLL\",\"commissionHsaId\":\"SE111-UPPDRAG-JLL-TEKSYSADMIN\",\"commissionPurpose\":\"Administration\",\"healthCareUnitHsaId\":\"SE111-ADMIN\",\"healthCareUnitName\":\"Admin\",\"healthCareProviderHsaId\":\"SE111-JLL\",\"healthCareProviderName\":\"SE111-JLL\",\"healthCareProviderOrgNo\":\"2321000214\",\"commissionRights\":[{\"activity\":\"Läsa\",\"informationClass\":\"dia\",\"scope\":\"VG\"},{\"activity\":\"Läsa\",\"informationClass\":\"fun\",\"scope\":\"VG\"}]},{\"employeeHsaId\":\"TSTNMT2321000156-10NX\",\"commissionName\":\"Teknisk Systemadministratör SLL\",\"commissionHsaId\":\"SE222-UPPDRAG-SLL-TEKSYSADMIN\",\"commissionPurpose\":\"Administration\",\"healthCareUnitHsaId\":\"SE222-ADMIN\",\"healthCareUnitName\":\"Admin\",\"healthCareProviderHsaId\":\"SE222-SLL\",\"healthCareProviderName\":\"SE222-SLL\",\"healthCareProviderOrgNo\":\"2321000214\",\"commissionRights\":[{\"activity\":\"Läsa\",\"informationClass\":\"dia\",\"scope\":\"VG\"},{\"activity\":\"Läsa\",\"informationClass\":\"fun\",\"scope\":\"VG\"}]}]",
"allCommissionOrgAffiliations": [
"TSTNMT2321000156-10NG@123456-7890",
"TSTNMT2321000156-10NX@654321-0987"
],
"userOrganizationHsaId": "SE2321000156-0001",
"sithsEidChallenge": "b90fc25314de41ffaf88c03677e2caac"
} |
Image RemovedAttributprofil skapad utifrån exempel från Inera Idp (inklippt nedan). Bilden länkar till en online-editor (OBS - uppdaterar ej bilden med automatik utan man behöver uppdatera både bild och länk när man uppdaterar))
|
Förvaltningsstruktur
För att säkerställa långsiktig hållbarhet, interoperabilitet och tydligt ansvar behöver attributsdefinitioner och attributprofiler förvaltas i en definierad struktur med tydliga roller och mandat.
...
Följande roller och ansvar BÖR etableras:
...
- Tar in behov av nya och förtydligade attributsdefinitioner från aktörer inom en sektor
- Förvaltar domänspecifika attribut i den nationella katalogen med attributsdefinitioner
- Lyfter behov gällande gemensamma attribut till nationell koordinator
Notera att vissa attribut alltid föds från en nationellt gemensam källa (tex Skatteverkets Navet, Socialstyrelsens HOSP-register). Attributdefinitionerna för dessa attribut hanteras också via en domänkoordinator, även om parten ansvarig för källan har mycket att säga till om.
Exempel på domäner
| Domän | Domänkoordinator |
|---|
| Health | E-hälsomyndigheten |
| Skola | SIS |
| Forskning och högre utbildningar | SUNET |
| Transport | Transportstyrelsen |
| Expand |
|---|
| title | Ytterligare underlag ... |
|---|
|
Exempel på förvaltningsstruktur - Transportsektorn- Ledningsaktören (Digg) utser Transportstyrelsen till domänkoordinator för Transport-domänen.
- Transportstyrelsen är domänkoordinator
- Transportstyrelsen ansvarar även för attributkällor för vissa domänunika attribut - tex fordonsägare i Fordionsregistret.
- Trafikverket ansvarar för andra centrala attributkällor inom Transport-domänen och koordinerar tillhörande attributsdefinitioner med Transportstyrelsen - tex registreringsinformation om enskild väg.
|
Exemplifierade domäner
Generiska attribut
Frågeställningar
Här finns ett antal frågor att besvara innan vi kan detaljera attributramverket.
- Vem har givit ut e-legitimationen?
- Vem är personens huvudsakliga arbetsgivare?
- Vem är personens uppdragsgivare för den rolll personen agerar i just nu?
Ska namnet på attributet spegla källan, till exempel /eid för e-legitimation och /idp för IdP?
I den överenskommelse som finns mellan regionerna och E-hälsomyndigheten när det gäller den SAML-propageringslösning för åtkomst till NLL har man etablerat en namnstandard för attribut som härrör sig från IdP:n. Ett exempel på detta är https://idp.inera.se/attributes/identityProviderForSign Som man kan se så innehåller attributnamnet referens till en organisation. En mera neutral namngivning på detta attribut kunde vara https://federationer.se/attribute/idp/1.0/identityProviderForSign
I vissa användningsfall är det viktigt för e-tjänsten som begär attributen att skilja på om attributen kommer från själva e-legitimationen eller från attributkällan. För Ineras IdP så går det att peka ut certifikatets givenName med attributet urn:credential:givenName. Motsvarande attribut som hämtas från katalogen är http://sambi.se/attributes/1/givenName eller urn:oid:2.5.4.42 (enligt Sweden Connects namnsättning), beroende på vilken IdP man ansluter till. I det senare fallet finns det ingen metod att peka ut attributet som är e-legitimationsspecifikt.
Det spännande attributet orgAffiliation som heter urn:oid:1.2.752.201.3.1 enligt Sweden Connect och som i Ineras fall betyder att källan är katalogen, knutet till uppdraget, att jämföra med https://idp.inera.se/attributes/userOrgAffiliation som är knutet till en personpost i katalogen, oberoende av uppdrag men beroende på vilken organisation som användaren tillhör.
Vi skulle kunna tänka oss följande motsvarande attribut i ramverket
https://id.ena-infrastructure.se/attributes/health/1.0/orgAffiliation
https://id.ena-infrastructure.se/attributes/health/1.0/userOrgAffiliation
OID som attributnamn
Ska vi använda Sweden Connects namn på vissa av attributen vilket i praktiken innebär OID:ar? Ska vi då förutsätta att attributen härrör från e-legitimationen? Det stämmer inte med nuvarande realiseringar som t ex Inera har.
Så här är Sweden Connects namn på ett attribut givenName: urn:oid:2.5.4.42
Övrig semantik i attributnamnet
Vissa attribut kan relatera till en anställds organisationstillhörighet eller uppdrag/roll, hur ska e-tjänsten kunna skilja på detta? I Ineras fall när det gäller den anställdes HSAid beror det på vilka andra attribut som e-tjänsten begär. Observera skillnaden mellan ett HSAid som är knutet till e-legitimationen och HSA-id som finns i katalogen. I den senare kategorin finns ingen namnsättning som skiljer på organisationstillhörighet och uppdragssituation.
När det gäller domänspecifika attribut inom vård och omsorg finns "health" med i attributnamnet https://id.ena-infrastructure.se/attributes/health/healthcareProfessionalLicenseIdentityNumber bland de attribut som används för åtkomst till NLL och är överenskommet med E-hälsomyndigheten och regionerna.
Versionshantering av attribut
Ska attributnamnen ha en namnstandard som medger versionshantering enligt mönster från Sambi?
Exempel från Sambi: http://sambi.se/attributes/1/givenName
Om vi använder det i ramverket: https://federationer.se/attribute/1.0/givenName
Fördelar: om ett attribut får en annan betydelse, till exempel en annan värdemängd, behöver vi inte hitta på ett helt nytt namn utan bara byta som i detta fall 1.0 till 2.0. Den praktiska konsekvensen är att det är ett helt nytt attribut som kan leva parallellt med det gamla. Fråga: har detta någonsin använts i Sambi?
| Info |
|---|
En semantisk eller redaktionell uppdatering i profil → tekniskt breaking change Och det är ofta oproportionerligt dyrt. Konsekvens: Versionsnumret i attributnamnet fryser på “1” för alltid. Det beror på att man undviker kostnaden för att byta – vilket gör versionen semantiskt meningslös. Designprinciper som brukar fungera bättre: Attributidentifieraren ska vara stabil Versionering ska ske i profilen, inte i attributet Om något förändras – använd kompatibilitetsprincipen Om du kan uppdatera profilen utan att bryta existerande implementationer → behåll attributets URI. Om det bryter → skapa nytt attribut och deprecera det gamla. Slutsats: inget versionsnummer i attributnamnet |
Attributlista
- Modellera för hur en attributprofil kan ha multipla attributinstanser, tex beroende på källa (attribut på e-leg, från en katalog), relaterad till ett eller flera uppdrag.
- Beskriv en modell för attributprofiler med personrelaterade attribut, e-leg-relaterade attribut, N x anställningsrelaterade attribut, M x uppdragsrelaterade uppdrag
- Beskriv skillnaden mellan en IdP per organisation och en Idp som representerar flera organisationer
| Info |
|---|
| Nedan första utkastet på attributlistan, den ska i detta läge ses främst som ett försök till att bestämma formatet då det är önskvärt att hålla ihop beskrivningen men ändå kunna filtrera på olika sätt. |
...
Multivärde J/N
...
Scoped J/N
...
8024050190
...
...
Legitimerad yrkesgrupp
urn:oid:1.2.752.116.3.1.3
Specialistkoder
urn:oid:1.2.752.116.3.1.6
urn:oid:1.2.752.116.3.1.7
urn:oid:1.2.752.116.3.1.8
urn:oid:1.2.752.116.3.1.9
urn:oid:1.2.752.116.3.1.10
urn:oid:1.2.752.116.3.1.15
...
healthCareProfessionalLicenseCode":"
LK","specialityCode":"30014","specialityName":"Barn-ochungdomshematologi och onkologi"
...
Referenser
...
Exempel
Tomas Fransson referenser till nuvarnde och exempel för ny struktur.
SAML
För SAML finns det exempel på metadata, inloggningsbegäran (request) och svar (assertion). Det kan vara värt att studera dessa exempel för att förstå hur SAML fungerar.
IdP Bas från Inera SAML-profil
OIDC
För OIDC finns motsvarande här
...