Gå til innhold

Hjelp til databaser for bruker autentisering.


Anbefalte innlegg

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
Videoannonse
Annonse
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

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 av Gjest slettet-ld9eg7s96q
Lenke til kommentar

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

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 av quantum
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...