Table of Contents | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
I STAR har vi valgt en sikkerhedsmodel, STARs sikkerhedsmodel, som som beskriver en sikkerhedsmodel er fælles for alle forretningsdomænerne i STAR. Sikkerhedsmodellen for jobannonceuniverset tager udgangspunkt i denne . For at kunne forstå følgende tanker om sikkerhedsmodellen forslåes det, at man kigger STARs sikkerhedsmodel igennemIAM model. For få et bedre overblik over STARs valg af sikkerhedsmodel, kan man orientere sig i nedenstående.
I forbindelse med de meget specifikke request headers, som skal angives ved et servicekald for at overholde STARs sikkerhedsmodel, er der udviklet en guide (JobannonceService version 1 - Guide ) til vores STARs aftagere, hvor der gives er eksempel på udfyldelsen heraf for samtlige de forskellige typer af vores aftagere.
Dokumentation af sikkerhedsmodel pba. af sikkerhedsmodellen på baggrund af IAM og JWT tokens kan findes her:
...
De forskellige endpoints i Jobannonceuniverset vil være lagt bag et AuthorizationScope. Det vil sige, at før man overhovedet får lov til at kalde ind på nogle af vores STARs endpoints, så skal det certifikat eller den identitet, man kalder ind med, være tildelt det specifikke scope, som endpointet kræver.
Hvis ikke certifikatet er blevet tildelt det scope, vil man blive mødt med en fejlbesked.
...
Der bliver udstillet nogle forretningsroller, som sættes op i AmpAdmin2.
Den der er relevant, er den der , og den relevante hedder Jobannonce-Portal. Den bliver tildelt virksomheder, der agerer jobannonceportaler, som f.eks. http://Ofir.dk
Her har virksomheden et behov for at kunne læse, oprette og opdatere jobannoncer i Jobannonceuniverset på vegne af dets egne brugere.
...
Forskellige brugere kan f.eks. have adgang til at oprette jobannoncer, hvor : Hvor en almindelig virksomhed ikke må ikke oprette jobannoncer på vegne af andre virksomheder, mens må et jobcenter gerne må.
For et givent kald til vores STARs services, kan vi hente organisationstypen, organisationskoden og den dertilhørende forretningsrolle ud fra SecurityContext
, som stammer fra Star.Foundation.Framework.Security
(se alle mapninger i /wiki/spaces/ISB/pages/4006872885):
...
På baggrund af disse tre værdier fra kaldet, vil kalderen blive klassificeret, og på baggrund af klassificeringen , opnå visse rettigheder, der efterfølgende vil blive brugt til adgangstyring.
OrganisationsType | OrganisationCode | Forretningsrolle | Klassificering | |
---|---|---|---|---|
|
| ➡️ |
| |
|
| ➡️ |
| |
| 27 | ➡️ |
| |
| 34 | ➡️ |
| |
|
|
| ➡️ |
|
|
| ➡️ |
|
Request Headers Guide
For at foretage kald til vores STARs service skal man udfylde request headers korrekt, hvilket er baseret på de rettigheder og roller, som man har fået tildelt i IAM. De skal følge følgende format:
...
Nedenstående to tabeller giver et overblik over, hvordan de forskellige aftagere af Virksomhedsindsats skal udfylde disse request headers, for at få adgang til vores STARs services (primært rettet mod kald til JobannonceService og dens dertilhørende jobannonce roller).
...
KSS, Jobcenter | KSS, A-Kasse | Virksomhed | HR-system | Portal | |||
---|---|---|---|---|---|---|---|
RequestUserStructure.UserFullName | Sagsbehandlers navn | Sagsbehandlers navn | Virksomhedens kontaktpersons navn | Systemets kontaktpersons navn | Portalbrugerens navn | ||
RequestUserStructure.RequestUserType | 2 (Sagsbehandler) | 2 (Sagsbehandler) | 4 (Medarbejder) | 3 (System) | 4 (Medarbejder) | ||
RequestUserStructure.UserEmail | Sagsbehandlers email | Sagsbehandlers email | Virksomhedens kontaktpersons email | Systemets kontaktpersons email | Portalbrugerens email | ||
RequestUserStructure.UserIdentifier | Skal angives på denne form, hvor alle x skal erstattes af tal eller bogstaver: CVR:xxxxxxxx-UUID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx CVR værdien skal være CVR angivet på certifikatet, UUID skal være certifikatets UUID. Hvis OCES2 certifikat er formen, hvor FID skal være certifikatets FID: CVR:xxxxxxxx-FID:xxxxxxxx | Skal angives på denne form, hvor alle x skal erstattes af tal eller bogstaver: CVR:xxxxxxxx-UUID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx CVR værdien skal være CVR angivet på certifikatet, UUID skal være certifikatets UUID. Hvis OCES2 certifikat er formen, hvor FID skal være certifikatets FID: CVR:xxxxxxxx-FID:xxxxxxxx | Udfyld med selvvalgt identifier som I skal kunne identificere brugeren ud fra | Udfyld med selvvalgt identifier som I skal kunne identificere brugeren ud fra | Udfyld med selvvalgt identifier som I skal kunne identificere brugeren ud fra | Udfyld med selvvalgt identifier som I skal kunne identificere brugeren ud fra | Udfyld med selvvalgt identifier som I skal kunne identificere brugeren ud fra |
RequestOrganisationStructure.OrganisationType | Hvis,
| Hvis,
| 24 (Virksomhed) | 24 (Virksomhed) | 24 (Virksomhed) | ||
RequestOrganisationStructure.OrganisationCode | Hvis,
| Hvis,
| CVR | CVR for systemet | CVR for portalen |
...
Rettighederne til en jobannonce har nogle mere specifikke, nødvendige valideringer, som hverken kan dækkes af AllowAccess-attributen eller AuthorizeScope-attributten. Dette beskrives i dette afsnit.Bemærk: ‘Jobannonce opretter’ er blot en måde at klassificere kombinationen af certifikat, organisationstype og organisationskode, der har oprettet jobannoncen
Info |
---|
Jobannonce opretter er en ekstra klassificering, som opretteren af jobannoncen får, når opretteren kalder ind. |
Læserettigheder
Baseret på den tildelte klassificering, får man følgende læserettigheder:
Jobannonce opretter | JGM | A-kasse | (UnemploymentFund)Jobcenter | JobCenter | WIDK | Portal | Virksomhed | |
---|---|---|---|---|---|---|---|---|
Hent jobannonce [udgivet] URL: /v2/Jobannonce/{id} | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
Hent jobannonce [ikke udgivet] URL: /v2/Jobannonce/{id} | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
Hent jobannonce historik URL: /v2/Jobannonce/{id}/historik | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
Jobannonce logo [udgivet] URL: /v2/Jobannonce/{id}/logo | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
Jobannonce logo [ikke udgivet] URL: /v2/Jobannonce/{id}/logo | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | |
Jobannoncevisninger URL: /v2/Jobannonce/visninger | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
Søg på jobannoncer URL: /v2/Jobannonce/soeg | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
Forhåndvisning af jobannonce URL: /v2/Jobannonce/billet/{billetId} | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
...
Jobannonce opretter | JGM | A-kasse (UnemploymentFund) | JobCenterJobcenter | WIDK | Portal | Virksomhed | |
---|---|---|---|---|---|---|---|
Opret jobannonce URL: /v2/Jobannonce | - | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Opret jobannonce på vegne af andre URL: /v2/Jobannonce | - | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
Luk jobannonce URL: /v2/Jobannonce/{id}/luk | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Slet jobannonce URL: /v2/Jobannonce/{id} | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Opdater jobannonce URL: /v2/Jobannonce/{id} | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Opret billet til jobannonce URL: /v2/Jobannonce/billet | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Inkrementer visninger på jobannonce URL: /v2/Jobannonce/{id}/inkrementer-visninger | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
...
Med udgangspunkt i STARs sikkerhedsmodel (STARs sikkerhedsmodel ), som benyttes af alle nuværende forretningsområder, har vi lavet følgende opklarende mapping mellem de parametre, som skal gives med i et request (se eksempel fra StarDebugger i udklip herover), og de parametre, som vi STAR arbejder med i koden gennem SecurityContext objektet.
...
Herunder følger en række eksempler på, hvordan securityContext objektet ville se ud for de givne aftagere af vores STRAs service. Dette sker ved samme mapning som herover til elementerne i selve requestet. En mere udtømmende liste af eksempler kan findes i STARs sikkerhedsmodel (STARs sikkerhedsmodel)
...
ImpersonatedAuthority | ActiveOrganisation | Værdi |
ImpersonatedAuthority.OrganisationCode | ActiveOrganisation.OrganisationCode | Brugerens CVR-nummer |
ImpersonatedAuthority.OrganisationType | ActiveOrganisation.OrganisationType | Virksomhed (24) |
CallingAuthority | RequestOrganisationStructure | |
CallingAuthority.OrganisationCode | RequestUserMetadata.RequestOrganisationStructure.OrganisationCode | Systemets CVR-nummer |
CallingAuthority.OrganisationType | RequestUserMetadata.RequestOrganisationStructure.OrganisationType | Virksomhed (24) |
...