Gå til innhold

Singel sign on - hvordan?


Anbefalte innlegg

Hei,

 

skal implementere et SSO system. Har ikke kommet langt i prosessen og tenkte det hadde vært greit med litt input. Slik har jeg tenkt meg det så langt;

 

Få tilgang

1. Bruker logger inn

2. SSO-tjener sjekker brukernavn og passord

3. SSO oppretter en ticket1, krypterer den, og setter den som en cookie på brukeren.

 

Bruke en tredje-parts service

1. Bruker "går inn" på servicen og sender cookie

2. Servicen sender cookie innholdet(ticket) til SSO-tjener og spør om den er godkjent.

3. Servicen kan deretter spørre "Har bruker X rettigheter til å Y?"

 

 

ticket1 : en ID som peker til IP, browser-agent, og timestamp for å sjekke om brukeren må logge inn på nytt.

 

 

Ser dette ut som en bra løsning? Ser selv ikke noen måte å hijacke noe på ettersom SSO-tjeneren er den eneste som har nøkkelene for å kryptere og dekryptere cookien brukeren får.

 

 

Edit: Innser at det kan være nyttig med litt mer informasjon om problemet som skal løses.

Ønsker å ha en sentral brukerdatabase, hvor man logger inn på nettsiden engang, og ikke for hver enkelt service - samtidig må hver enkelt service ha mulighet til å spørre "Får X lov til å redigere data for service H?"

 

 

 

Edit2: Har tatt en titt på OpenID og OAuth - men har ikke helt funnet ut om jeg kan kontrollere "backend" selv der. Har allerede database med brukere, grupper og rettigheter. Så det beste hadde vært en "lokal" OpenID eller OAuth, men ser ikke ut som de har støtte for rettigheter - bare innlogging?

Endret av Hayer
Lenke til kommentar
Videoannonse
Annonse

OAuth er bare en åpen standard, som f.eks. facebook bruker. Du trenger ikke bruke "login with facebook" for å bruke selve protokollen. Dette betyr at du fint kan sette opp din egen Auth-server hvor du selv styrer brukerbasen. Det vil funke cirka slik du nevner her.

Lenke til kommentar

Ok, sett litt mer på det nå. Skjønner jeg det rett hvis jeg må sette opp min egen provider?

Dette er for et system hvor jeg må ha kontroll på brukernavn og passord av årsaker utenfor min kontroll.

 

Men hvordan kan man eksponere "attributer" som f.eks navn, adresse via OpenID eller må dette gå i et API utenfor?

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...