morgan_kane Skrevet 5. mai 2023 Del Skrevet 5. mai 2023 Heisann, Har kommet meg dit at jeg må begynne og se litt bruker autentisering for applicasjoner jeg lager. Den første applikasjonen skal gi tilgang til brukernes data, og brukerne skal kun se sine egne data. La oss ta et eksempel med logging av temperatur. Per og Martin logger begge temperatur i hjemme sitt. Men når de logger inn via nettsiden skal de kun se data om sine egne temperaturer. Slik jeg har forstått det så lager man for eksempel et table for temperatur, og alle brukerne sine temperaturer lagres i den tabellen? Kan jeg slippe unne med et table for bruker, et table for Session og et table for målinger i dette tilfellet? Passord skal selfølgelig hashes, setter også pris på andre tips rundt sikkerhet. Hvis det er noen som har gode ressureser å dele på dette setter jeg også stor pris på det. Lenke til kommentar
morgan_kane Skrevet 5. mai 2023 Forfatter Del Skrevet 5. mai 2023 oddeh skrev (1 minutt siden): Les deg opp på datamodellering Tro meg det holder jeg på med. Har satt opp endel databaser for diverse applikasjoner, men det har vært databaser der de som har tilgang på connectionstring kan koble seg til databasen og lese av data. Det jeg sliter med er den delen som omhandler bruker autentisering da det er et sidesprang til det jeg holder på med. Lenke til kommentar
Gjest Gjest slettet-ld9eg7s96q Skrevet 5. mai 2023 Del Skrevet 5. mai 2023 (endret) Hva slags rutiner du kan tilrettelegge for autentisering avhenger i stor grad hvilket verktøy du bruker for å levere dataene til brukeren. Er det noe 100% selvkomponert eller bruker du et API/Rammeverk i bunn? Du nevner at det er en nettside. I mitt tilfelle ville jeg brukt et rammeverk som tok seg av autentiseringen for meg. Laravel har f.eks et autentiserings "scaffold" som er veldig robust og utprøvd. Det er det sikreste. Hvis du lager dette fra bunnen av har programmeringsspråket du bruker innebygde funksjoner eller tilleggsbiblioteker for kryptografi. PHP har f.eks password_hash() som hasher og salter passordet for deg med en sterk algoritme. Unngå å hashe passordet med algoritmer som md5 og sha1. Datamodelleringen hvordan temperatur data blir knyttet opp mot brukerne vil være typisk en en til mange databaserelasjon. Igjen, rammeverk som Laravel hjelper deg med å håndtere dette ganske enkelt og serverer et mer abstrakt grensesnitt for deg å jobbe mot så du slipper å kode hver minste detalj for å få dette oppe og gå. edit: Laravel hjemmeside, samt dokumentasjon Endret 5. mai 2023 av Gjest slettet-ld9eg7s96q Lenke til kommentar
quantum Skrevet 9. mai 2023 Del Skrevet 9. mai 2023 oddeh skrev (På 5.5.2023 den 15.32): Les deg opp på datamodellering Det skader jo sjelden, men her er det vel database multitenancy som er mest relevant. Lenke til kommentar
quantum Skrevet 9. mai 2023 Del Skrevet 9. mai 2023 Grovt sett så vil man enten gå for db-pr-tenant eller schema-pr-tenant på den ene siden eller shared-tables på den andre. Det fins mye å lese om dette på nett, f.eks. https://dev.to/lbelkind/strategies-for-using-postgresql-as-a-database-for-multi-tenant-services-4abd Som andre har nevnt kan det være støtte for dette i ulike rammeverk. Eksempelvis Hibernate: https://www.baeldung.com/hibernate-5-multitenancy Lenke til kommentar
quantum Skrevet 9. mai 2023 Del Skrevet 9. mai 2023 (endret) Passord skal selfølgelig hashes, setter også pris på andre tips rundt sikkerhet. Her høres det ut som du tenker å lage din egen sikkerhetsløsning, og det kan jo være en artig øvelse i et hobbyprosjekt. Men vurder å bruke en eller annen standardprogramvare isteden, om det er en kommersiell løsning du lager. Selv synes jeg Keycloak funker fint. Ting å google: OAuth, JWT Endret 9. mai 2023 av quantum Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå