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.

Eksempel: Borger 18+, Borger 15-17 år og Borger 13-14 år 

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: BorgerVerifikationMapning til aktørmodel
SecurityContextTicketAudienceSkal være satAudience


ValiditySkal være 'valid'

Message[3 underfelter udeladt]Verificeres ikke - må gerne være der

ActingUserUserTypeSkal være 'Citizen'Brugertypen: Borger


IdentifierFormatSkal være 'CPR'


IdentifierSkal være satPersonIdentifier


GivenNameVerificeres ikke - må gerne være der


SurNameVerificeres ikke - må gerne være der


CredentialsVerificeres ikke - må gerne være der


PersistentUniqueKeyVerificeres 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 PersonInformationTransformerer brugertypen fra borger til...
Fra 13 til og med 14Borger 13-14
Fra 15 til og med 17Borger 15-17
Fra 18 og opBorger 18+
Andet resultat eller intetBorger

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. 

Eksempel: Borger som fulmagtshaver på vegne af borger over 18 år som fuldmagtsgiver

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 fuldmagtsgiverVerifikationMapning til aktørmodel
SecurityContextTicketAudience
Skal være satAudience


Validity
Skal være 'valid'

Message[3 underfelter udeladt]
Verificeres ikke - må gerne være der

ActingUserUserType
Skal være 'Citizen'Brugertypen: Borger på vegne af fuldmagtsgiver


IdentifierFormat
Skal være 'CPR'


Identifier
Skal være satPersonIdentifier


GivenName
Verificeres ikke - må gerne være der


SurName
Verificeres ikke - må gerne være der


CredentialsPowerOfAttorneyPrivilegesSkal være medFuldmagtsPrivilegieListe



EducationCodeVerificeres ikke - må gerne være der



NationalRoleVerificeres ikke - må gerne være der



UnverifiedRoleVerificeres ikke - må gerne være der



AuthorizationCodeVerificeres ikke - må gerne være der


PersistentUniqueKey
Verificeres ikke - må gerne være der

PrincipalUserUserType
Skal være 'Citizen'


IdentifierFormat
Skal være 'CPR'


Identifier
Skal være satPrincipal.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. 

Eksempel: Sundhedsfaglig med autorisation

En Sundhedsfaglig med autorisation bestemmes udfra følgende tabel:

Brugertypen: Sundhedsfaglig med autorisationVerifikationMapning til aktørmodel
SecurityContextTicketAudience
Verificeres ikke - må gerne være der


Validity
Skal være 'valid'

Message[3 underfelter udeladt]
Verificeres ikke - må gerne være der

ActingUserUserType
Skal være 'HealthCareProfessional'Brugertypen: Sundhedsfaglig med autorisation


IdentifierFormat
Skal være 'CPR'


Identifier
Skal være satPersonIdentifier


GivenName
Verificeres ikke - må gerne være der


SurName
Verificeres ikke - må gerne være der


CredentialsAuthorizationCodeSkal være medAuthorisationsKode



EducationCodeSkal være medUddannelsesKode



NationalRoleVerificeres ikke - må gerne være der



UnverifiedRoleVerificeres ikke - må gerne være der



PowerOfAttorneyPrivilegesVerificeres ikke - må gerne være der


PersistentUniqueKey
Verificeres ikke - må gerne være der

PrincipalUser

Må ikke være der

OrganisationIdentifier
Skal være satOrganisationsIdentifier


IdnetifierFormat
Skal være 'CVR'OrganisationsIdentifierType = 'CVR'

Client

Verificeres ikke - må gerne være derSystemNavn

Det sidste skridt består af en validering af om UddannelsesKode ligger indenfor de tilladte koder (konfigureret i service).