knowit / folk-webapp

3 stars 0 forks source link

Åpne opp applikasjonen for andre selskap i Knowit #581

Open joacimds opened 4 months ago

joacimds commented 4 months ago

Er funksjonaliteten relatert til et problem? Vennligst utdyp.

Folk har vært en nettside som kun har vært tilgjengelig for Knowit Objectnet. Først og fremst har dette skyldtes at dataene som brukes kun har vært hentet for ansatte i Objectnet og at brukerne i user poolen hvor appen ligger kun har håndtert brukere for Objectnet.

Situasjonen nå

Det finnes en annen nettsiden som heter https://kompetanse.knowit.no/, som har blitt brukt som en mal for å bytte innloggingsløsningen til Azure Entra ID (tidl. Azure AD). Alle Knowits ansatte ligger under AD i Azure, og gjennom en preSignUpTrigger i dagens løsning for Folk, så lages det nye brukere i user pool for de som har tilgang til applikasjonen. For øyeblikket er det kun gitt tilgang til appen for de som jobber i Objectnet. Denne tilgangen er gitt på Azure-siden av oppsettet, så dersom man tilhører et annet selskap og prøver å logge inn på Folk, vil man bli møtt med denne feilmeldingen.

Feilmelding

NB! Rettigheter til andre selskap må åpnes opp via Helpdesk.

Når en ny bruker logger inn for første gang blir brukeren tildelt en gruppe i Cognito som representerer selskapet de jobber. Dette skjer i PreSignUpTriggeren i AWS, men i motsetning til slik det gjøres for nettsiden Kompetanse, så blir brukerne tildelt gruppen knowitobjectnet i hardkodeform. Dette er fordi de eneste ansatte som logger inn nå er ansatte i Objectnet.

Hardkodet organisasjonsnummer

Bildet er hentet fra Lambda funksjonen i AWS

Dersom det skulle ende opp at en bruker fra et annet selskap hadde fått muligheten til å logge inn, ville de kun ha sett informasjon om de ansatte og kundene for Objectnet.

Beskriv løsningen du ønsker

Del 1

I løsningen for Kompetanse finnes det også en preSignUpTrigger som er nærmest identisk den som har blitt laget for Folk. Denne bruker en database for å sette organizationID til å være selskapet for brukeren som er en variabel på en claim fra Azure.

Hardkodet organisasjonsnummer

Denne må oppdateres til å fungere på samme måte som i Kompetanse, og begge funksjonene kan man finne under Lambda i sine respektive AWS kontoer.

Del 2

Data til nettsiden blir hentet gjennom en S3Client med data som kommer fra rapporter som er satt opp i Databricks. Dette er kun data som finnes for Objectnet, så det må lages en løsning som henter fra riktig datakilde basert på selskapet til brukeren som logger inn.

NB! Dette må granskes litt mer om hvordan dette kan gjøres på en god måte.

Ekstra beskrivelse

AWS kontoer

Databricks

Rapporter i Databricks -> https://accounts.cloud.databricks.com | knowit-databricks-u06vfj