I forbindelse med udarbejdelsen af bruttolisten af brugertyper på NSP, så giver det mening her at give eksempler på, hvordan disse kan understøttes med anvendelse af Security API'et. Det er den enkelte services ansvar at udarbejde og vedligeholde det konkrete design og implementation, men nedenstående eksempler kan være en måde at komme hurtigere i gang på.
Som beskrevet i Security API - Guide til anvendere så bør hver enkelt komponent have en liste af relevante brugertyper i deres dokument vedr Brugerhistorier. Som en del af dokumentet Design og arkitektur foreslås det på tabelform at dokumentere, hvordan disse relevante brugertyper bestemmes og valideres udfra datamodellen i Security API.
I bestemmelsen af brugertyperne Borger 18+, Borger 15-17 år og Borger 13-14 år opereres der med en midlertidig brugertype, som vi blot kalder borger.
En borger bestemmes udfra følgende tabel:
Brugertypen: Borger | Verifikation | Mapning til aktørmodel | ||
SecurityContext | Ticket | Audience | Skal være sat | Audience |
Validity | Skal være 'valid' | |||
Message | [3 underfelter udeladt] | Verificeres ikke - må gerne være der | ||
ActingUser | UserType | Skal være 'Citizen' | Brugertypen: Borger | |
IdentifierFormat | Skal være 'CPR' | |||
Identifier | Skal være sat | PersonIdentifier | ||
GivenName | Verificeres ikke - må gerne være der | |||
SurName | Verificeres ikke - må gerne være der | |||
Credentials | Verificeres ikke - må gerne være der | |||
PersistentUniqueKey | Verificeres ikke - må gerne være der | |||
PrincipalUser | Må ikke være der | |||
Organisation | Må ikke være der | |||
Client | Verificeres ikke - må gerne være der |
Når det er besluttet udfra ovenstående, at der er tale om en bruger at typen borger, så kan der foretages en transformation fra denne type til andre udfra følgende oplysninger:
Der laves et kald til PersonInformationService for at få alderen ud på den pågældende borger identificeret ved CPR nummer (PersonIdentifier i aktørmodellen). Resultatet anvendes som følgende:
Alder fra PersonInformation | Transformerer brugertypen fra borger til... |
---|---|
Fra 13 til og med 14 | Borger 13-14 |
Fra 15 til og med 17 | Borger 15-17 |
Fra 18 og op | Borger 18+ |
Andet resultat eller intet | Borger |
Det sidste skridt består af en validering af, om den resulterende brugertype ligger indenfor typerne Borger 18+ eller Borger 15-17 år. Typerne borger 13-14 samt den midlertidige brugertype borger skal afvises.
Der valideres yderligere på Audience og sammenlignes med det konfigurerede audience for servicen.
En borger som fulmagtshaver på vegne af borger over 18 år som fuldmagtsgiver bestemmes udfra følgende tabel:
Brugertypen: Borger som fulmagtshaver på vegne af borger over 18 år som fuldmagtsgiver | Verifikation | Mapning til aktørmodel | |||
SecurityContext | Ticket | Audience | Skal være sat | Audience | |
Validity | Skal være 'valid' | ||||
Message | [3 underfelter udeladt] | Verificeres ikke - må gerne være der | |||
ActingUser | UserType | Skal være 'Citizen' | Brugertypen: Borger på vegne af fuldmagtsgiver | ||
IdentifierFormat | Skal være 'CPR' | ||||
Identifier | Skal være sat | PersonIdentifier | |||
GivenName | Verificeres ikke - må gerne være der | ||||
SurName | Verificeres ikke - må gerne være der | ||||
Credentials | PowerOfAttorneyPrivileges | Skal være med | FuldmagtsPrivilegieListe | ||
EducationCode | Verificeres ikke - må gerne være der | ||||
NationalRole | Verificeres ikke - må gerne være der | ||||
UnverifiedRole | Verificeres ikke - må gerne være der | ||||
AuthorizationCode | Verificeres ikke - må gerne være der | ||||
PersistentUniqueKey | Verificeres ikke - må gerne være der | ||||
PrincipalUser | UserType | Skal være 'Citizen' | |||
IdentifierFormat | Skal være 'CPR' | ||||
Identifier | Skal være sat | Principal.PersonIdentifier | |||
GivenName | Verificeres ikke - må gerne være der | ||||
SurName | Verificeres ikke - må gerne være der | ||||
Credentials | Verificeres ikke - må gerne være der | ||||
PersistentUniqueKey | Verificeres ikke - må gerne være der | ||||
Organisation | Må ikke være der | ||||
Client | Verificeres ikke - må gerne være der |
Det sidste skridt består af en validering af, om Audience matcher med det konfigurerede audience for servicen.
En Sundhedsfaglig med autorisation bestemmes udfra følgende tabel:
Brugertypen: Sundhedsfaglig med autorisation | Verifikation | Mapning til aktørmodel | |||
SecurityContext | Ticket | Audience | Verificeres ikke - må gerne være der | ||
Validity | Skal være 'valid' | ||||
Message | [3 underfelter udeladt] | Verificeres ikke - må gerne være der | |||
ActingUser | UserType | Skal være 'HealthCareProfessional' | Brugertypen: Sundhedsfaglig med autorisation | ||
IdentifierFormat | Skal være 'CPR' | ||||
Identifier | Skal være sat | PersonIdentifier | |||
GivenName | Verificeres ikke - må gerne være der | ||||
SurName | Verificeres ikke - må gerne være der | ||||
Credentials | AuthorizationCode | Skal være med | AuthorisationsKode | ||
EducationCode | Skal være med | UddannelsesKode | |||
NationalRole | Verificeres ikke - må gerne være der | ||||
UnverifiedRole | Verificeres ikke - må gerne være der | ||||
PowerOfAttorneyPrivileges | Verificeres ikke - må gerne være der | ||||
PersistentUniqueKey | Verificeres ikke - må gerne være der | ||||
PrincipalUser | Må ikke være der | ||||
Organisation | Identifier | Skal være sat | OrganisationsIdentifier | ||
IdnetifierFormat | Skal være 'CVR' | OrganisationsIdentifierType = 'CVR' | |||
Client | Verificeres ikke - må gerne være der | SystemNavn |
Det sidste skridt består af en validering af om UddannelsesKode ligger indenfor de tilladte koder (konfigureret i service).