Definere autorisasjonspolicy
I Altinn Studio designer kan applikasjonsutvikleren definere policyen for applikasjonen som er opprettet
Applikasjonsutvikleren definerer autorisasjonsreglene for en applikasjon i en XACML-policyfil som er plassert i applageret. XACML-policyen inneholder en eller flere regler som bestemmer hvem som kan utføre forskjellige handlinger på forskjellige ressurser. Du kan redigere XACML-filen i et tekstredigeringsprogram etter eget valg.
Regler fra applikasjonsmal
Når du oppretter en app i Altinn studio, er den basert på gjeldende asp.net-mal og vil inkludere en autogenerert XACML policy-fil.
Applikasjonsutvikleren kan endre autorisasjonsreglene i policy.xml, som ligger i App/config/authorization
i programlageret.
Du kan finne detaljer om konfigurering av policyfilen nedenfor.
Du kan også finne en god mengde eksempler på regler her.
Ressursattributtene
Ressursattributtene til regler beskriver hvilken applikasjon eller del av reglene som gjelder.
Attribute | Description |
---|---|
urn:altinn:org | Organisasjonsdelen av ressursattributtet definerer hvilken organisasjon som eier appen. |
urn:altinn:app | Appdelen som identifiserer selve appen |
urn:altinn:task | Oppgavedelen av ressursen gjør det mulig å ha egne regler for de ulike oppgavene. |
urn:altinn:event | Arrangementsdelen av ressursen gjør det mulig å ha egne regler for lesing av hendelser. |
Eksempel
Eksempelet nedenfor viser en del av XACML 3.0-policyen der en ressurs er definert.
<xacml:AllOf>
<xacml:Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
<xacml:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">skd</xacml:AttributeValue>
<xacml:AttributeDesignator AttributeId="urn:altinn:org" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"/>
</xacml:Match>
<xacml:Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
<xacml:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">taxreport</xacml:AttributeValue>
<xacml:AttributeDesignator AttributeId="urn:altinn:app" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"/>
</xacml:Match>
<xacml:Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
<xacml:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">instansiate</xacml:AttributeValue>
<xacml:AttributeDesignator AttributeId="urn:altinn:event" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"/>
</xacml:Match>
</xacml:AllOf>
Subjektattributene
Subjektdelen for regelen definerer hvem regelen er rettet mot.
Attribute | Description |
---|---|
urn:altinn:rolecode | The role code is used for rule that target end users and systems. |
urn:altinn:org | The org code is used for rule that target orgs. |
En fullstendig liste over rolletyper finner du her.
Det er viktig å lese Veiledning for autorisasjonsregler før du velger rolle.
Examples
Eksempel med rollekode
<xacml:AllOf>
<xacml:Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
<xacml:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">regna</xacml:AttributeValue>
<xacml:AttributeDesignator AttributeId="urn:altinn:rolecode" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"/>
</xacml:Match>
</xacml:AllOf>
Eksempel med org:
<xacml:AllOf>
<xacml:Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
<xacml:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">skd</xacml:AttributeValue>
<xacml:AttributeDesignator AttributeId="urn:altinn:org" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"/>
</xacml:Match>
</xacml:AllOf>
Action attributter
Action attributtene beskriver hvilken operasjon regelen gjelder
Attribute | Description |
---|---|
urn:oasis:names:tc:xacml:1.0:action:action-id | Handlingen som regelen gjelder for. I appen kan dette være read, write, instantiate, complete aog delete. Dette vil bli utvidet når ny funksjonalitet legges til |
Eksempel med read operasjon.
<xacml:Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
<xacml:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">read</xacml:AttributeValue>
<xacml:AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"/>
</xacml:Match>
</xacml:AllOf>
Obligation
Obligation delen av policy brukes til å definere informasjon som skal brukes av PEP. Det nødvendige autentiseringsnivået er satt til 2 som standard. Dette gjøres som en forpliktelse i XACML Policy-filen.
Hvis nødvendig autentiseringsnivå er satt til 4, må du definere at tjenesteeier kan samhandle med det gjennom nivå 3 autentisering for Maskinporten. Dette fordi Maskinporten er definert som nivå 3. Se regelbiblioteket for eksempler.
Eksempel med autentiseringsnivå 2
<xacml:ObligationExpressions>
<xacml:ObligationExpression FulfillOn="Permit" ObligationId="urn:altinn:obligation:authenticationLevel1">
<xacml:AttributeAssignmentExpression AttributeId="urn:altinn:obligation1-assignment1" Category="urn:altinn:minimum-authenticationlevel">
<xacml:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#integer">2</xacml:AttributeValue>
</xacml:AttributeAssignmentExpression>
</xacml:ObligationExpression>
</xacml:ObligationExpressions>
- Regelbibliotek
Bibliotek av autorisasjonsregler som kan brukes i en app. Husk å bytte ut tags ([RULE_ID]) med en egen ID. [ORG] og [APP] kan stå som de er, siden de blir erstattet med info fra applicationmetadata.json om du har oppdatert LocalTest etter januar 2023.
- Veiledning for autorisasjonsregler
Autorisasjonsregler må defineres med omhu. Disse retningslinjene forteller hva applikasjonseier må vurdere før autorisasjonsregler settes for en applikasjon