-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implementere støtte for å definere og kontrollere krav til scope i token ved referanse til tjenesteressurs #40
Labels
Comments
elsand
moved this from 🆕 New
to 📋 Backlog
in ⚠️ Dialogporten / Arbeidsflate - GAMMEL - se https://github.com/orgs/Altinn/projects/146 ⚠️
Jun 6, 2023
elsand
moved this from 📋 Backlog
to 🔖 Klar for implementering
in ⚠️ Dialogporten / Arbeidsflate - GAMMEL - se https://github.com/orgs/Altinn/projects/146 ⚠️
Jul 6, 2023
elsand
added
auth
Issue related to authentication / authorization
analysis
Pre-architecture/design work
labels
Jul 6, 2023
This was referenced Dec 6, 2023
Merged
This was referenced Aug 14, 2024
This was referenced Oct 3, 2024
4 tasks
elsand
added a commit
that referenced
this issue
Nov 15, 2024
## Description This adds a command akin to sync-subject-resources which fetches information about resource policies and stores the information to a table in postgres. For now, this only parses and stores XACML obligations for required authentication level, but can be fairly easily extended to implement eg. #40 There are however some real limitations to the Resource Registry as of now for Altinn Apps, as they are not really stored there, but merely have a representation that does not include the policy. ~~For these, we store a default authentication level.~~ Edit: We don't do this, as we cannot safely assume anything here. So we do not store anything unless we have an explicit obligation for authentication level set in a policy we can reach. For all other resources, no authentication level handling will be performed. ## Related Issue(s) - #1214 ## Verification - [x] **Your** code builds clean without any errors or warnings - [x] Manual testing done (required) - [ ] Relevant automated test added (if you find this hard, leave it and we'll help out) ## Documentation - [ ] Documentation is updated (either in `docs`-directory, Altinnpedia or a separate linked PR in [altinn-studio-docs.](https://github.com/Altinn/altinn-studio-docs), if applicable) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes - **New Features** - Introduced a new command for synchronizing resource policies. - Added support for managing resource policy information in various environments (production, staging, test). - Enhanced deployment capabilities with a new scheduled job for resource policy synchronization. - **Bug Fixes** - Improved error handling and logging during synchronization processes. - **Documentation** - Updated command documentation to include new synchronization options and parameters. - **Chores** - Added new settings to local development configurations to manage synchronization behavior at startup. - Introduced additional configuration settings for local development to control synchronization processes. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Magnus Sandgren <5285192+MagnusSandgren@users.noreply.github.com> Co-authored-by: Ole Jørgen Skogstad <skogstad@softis.net> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Det er behov for tjenesteeier å begrense hvilke tjenester (altså service resources) en gitt klient hos dem kan aksessere for å bygge sikring mellom de ulike systemene. Dette løses gjennom å kreve at ytterligere scopes oppgis for å kunne aksessere en gitt tjenesteressurs.
Disse reglene defineres i XACML-policy for den aktuelel ressursen gjennom en "action" vi kaller "administrate". Kun scopes-attributter på subjektet støttes/hensyntas.
I tillegg må det vurderes om dette er noe som også skal være en del av dialog-entiteten slik at tjenesteeiere kan ytterligere styre egen tilgang på dialog-nivå.Edit: Dette gjøres i egen issue.Implementasjon
I stedet for å gjøre kall mot PEP-API, henter vi policies for hver ressurs og benytter Altinn.Authorization.ABAC for å parse ut reglene som regulerer dette og utvider cachen med informasjon om scope-krav.
Ved hjelp av FusionCache som etableres i #274, har vi en to-nivå cache som lar oss finne ut hvilke ressurser som eies av en gitt tjenesteeier, og evt. hvilke scopes denne krever.
Det etableres to stk to-nivå cache; hvor nivå 1 er en memorycache som populeres gjennom en BackgroundService. Denne background-servicen har en IDistributedCache som den populerer memorycachen med. IDistributedCache skal ha Redis som backing, men dette løses i #275.
Cache nr 1 har èn key - som inneholder en liste over ressurser i ressursregisteret knyttet til organisasjonsnummer (tjenesteeier), altså det vi har i dag. TTL på denne settes til 1200 sekunder, med eager refresh (etter 80% av TTL). Jitter for å unngå flere samtidige requests på tvers av replikas.
Cache nr 2 har keys per ressurs fra listen over. Denne inneholder en liste over scopes som evt. kreves oppgitt av tjenesteeier per ressurs. TTL på denne 3600 sekunder, med eager refresh (etter 80% TTL). Jitter for å unngå flere samtidige requestes på tvers av replikas.
Som en optimalisering, etableres en egen backgroundservice som - med utgangspunkt i cache #1 - regelmessig løper gjennom alle keys for å pre-populere cache #2. Dette vil innebære at under normale omstendigheter vil requester alltid treffe cache.
Tasks
Se også
The text was updated successfully, but these errors were encountered: