RAR-typer i Ansattporten
Ansattporten bruker standarden Rich Authorization Requests (RAR) til å strukturere informasjon om representasjonsforhold, både i forespørsler og tokens.
RAR er en ny Oauth2-utvidelse for transaksjonsspesifikke autorisasjoner. Der “basic” Oauth2 kun gir tilgang til et såkalt “scope” (tekst-streng), åpner RAR for tilgang til mer utvidede datamodeller i form av autorisasjonstyper. Autorisasjonstypen(e) blir utlevert i token som et nytt hierarkisk claim kalla authorization_details
som igjen er ein array av autorisasjonsobjekter, der hvert objekt består av:
- Standardisert påkrevd felt:
type
definerer den aktuelle autorisasjonstypen
- Eigendefinert datamodell
- til ein gitt
type
vil det vere definert og dokumentert ein tilhøyrande gyldig datamodell. Ansattporten sine datamodeller er definert på denne siden.
- til ein gitt
Forhold mellom RAR og scope
Det er ingen teknisk sammenheng mellom et Oauth2 scope og RAR, de to mekanismene er disjunkte.
En kan derfor ikke legge til grunn at en klient som ikke har fått et gitt scope, heller ikke kan motta en rar-struktur i token.
Tilgangstyring av RAR-typer
Det er p.t. ingen tilgangstyring av RAR-typer. Alle klienter fra alle kunder kan sende inn en RAR-struktur i autorisasjonsforspørselen, og den vil trigge organisasjonsvelger.
RAR-typer støttet i Ansattporten
Følgende authorization_type er støttet i Ansattporten:
authorization_type |
Skildring |
---|---|
ansattporten:altinn:service |
Bruker lenketjenester (ServiceCode) fra Altinn 2 som autorativ kilde for representasjonsforhold |
ansattporten:altinn:resource |
IKKE I BRUK ENNÅ. Skal støtte bruk av Altinn3-ressurser som autorativ kilde for representasjon. Se backlog-sak |
ansattporten:entra |
IKKE I BRUK ENNÅ. Skal støtte innlogging med Microsoft-konto (Entra ID). Se backlog-sak |
Det er p.t. ikke mulig å be om ulike RAR-type i samme påloggingsforespørsel. Klienten må istedet implementere flere login-knapper i sin egen løsning.
Datamodell for Altinn 2 Lenketjenester (ansattporten:altinn:service
)
Bare kunder som er tjenesteeier i Altinn kan benytte Altinn Autorisasjon som autorativ kilde.
Dersom kunden ønsker å bruke Altinn 2 lenketjenester (ServiceCode) som autorativ kilde for representasjonsforhold, må klienten oppgi ansattporten:altinn:service
som RAR-type.
Følgende claims kan sendes inn i request:
claim | kardinalitet | beskrivelse |
---|---|---|
resource | påkrevd | Hvilken lenketjeneste i Altinn som etterspørres. Må formatteres slik: urn:altinn:resource:{tjenestekode}:{tjenesteugave} |
organizationform | Valgfri | Begrense organisasjonsvelger til at sluttbruker bare kan velge hovedenheter (enterprise ) eller underenheter (business ). Default så er begge mulig å velge. |
allow_multiple_organizations | Valgfri | Dersom true så kan sluttbruker velge flere organisasjoner i organisasjonsvelgeren. Default er false. |
allow_deleted_organizations | Valgfri | Dersom true så vil organisasjonsvelger vise sletta verksemder. Default er false. |
Her finner en liste over alle tjenestekoder i Altinn 2
Mange av dagens standard Altinn-roller gir veldig breie tilganger (“Post/arkiv”, “Utfyller/innsender”). Dette er problematisert med at de ikke følger gode dataminimeringsprinsipp, og vanskeliggjør det å skulle holde oversikt over hva en gitt rolle faktisk gir tilgang til. Derfor tilbyr vi ikke innlogging på vegne av Altinn-roller i Ansattporten, tjenesten må spesifisere en lenketjeneste.
Eksempel på request:
authorization_details= [
{
"type": "ansattporten:altinn:service",
"resource": "urn:altinn:resource:2480:40"
}
Datamodellen for respons inneholder de samme claimene som i request, men i tillegg vil det utleveres:
claim | beskrivelse |
---|---|
reportees | Array med valgte virksomheter. |
Rights | For hver virksomhet, et array med rettigheter som innlogget bruker har for aktuell tjenestekode. |
Name | For hver virksomhet, navnet på valgt virksomhet |
Eksempel på respons:
"authorization_details" : [ {
"resource" : "urn:altinn:resource:2480:40",
"type" : "ansattporten:altinn:service",
"resource_name" : "Produkter og tjenester fra Brønnøysundregistrene",
"reportees" : [
{
"Authority" : "iso6523-actorid-upis",
"ID" : "0192:987464291",
"Name" : "DIGITALISERINGSDIREKTORATET AVD LEIKANGER"
"Rights" : [ "Read", "ArchiveDelete", "ArchiveRead" ],
} ]
} ]
Dersom det er forespurt flere representasjonsforhold, så vil authorization_details
inneholde ett json-objekt per lenketjeneste som brukeren har rettighet til.
Testbrukere
Man kan teste løsningen uten å lage en integrasjon ved å bruke vår demo-tjeneste https://demo-client.test.ansattporten.no/. Her kan man også studere protokoll-flyten i detalj. Dersom man ønsker å teste organisasjonsvelger, så kan man bruke [{"type":"ansattporten:altinn:service","resource": "urn:altinn:resource:2480:40"}]
i authorization_details-feltet (denne tjenestekoden gir ut nøkkelroller).
Vi anbefaler å bruke Tenor testdata-søk til å finne test-brukere. Tenor har mulighet til å filtrere slik at man får bare daglig leder fra test-Enhetsregisteret. En annen fordel med Tenor er at det kun er syntetiske testdata her, så man slipper å risikere å blande produksjons- og test-data.
MERK: Dersom testbrukeren ikke finnes fra før i Altinn sitt testmiljø (typisk for syntetiske fødselsnummer), vil ikke organisasjonsvelger fungere. Dette løses enkelt ved å logge inn i TT02 en gang.
Datamodell for Altinn 3 ressurser (ansattporten:altinn:resource
)
TBD
Datamodell for Entra ID (ansattporten:entra
)
TBD