tisdag 10 augusti 2010

Autentisering

Autentisering och auktorisering
Det är viktigt att skilja mellan autentisering (authentication) och auktorisering (authorization). Autentisering handlar om att avgöra vem användaren är och att bedöma om användaren verkligen är den hon utger sig för att vara. Autentisering sker oftast genom att användaren anger ett användarnamn och ett lösenord.

Auktorisering handlar om behörigheter (permissions) till resurser. Ett auktoriseringssystem svarar exempelvis på frågor såsom "Har användare X behörighet att läsa webbsidan Y", "Har användare X behörighet att ge användare Z behörighet att redigera sidan Y".

Säg exempelvis att du knappar in en URL och blir ombedd att autentisera dig. Du gör det genom att berätta vem du är genom att ange ett användarnamn, e-post adress, personnummer eller något annat. Du och systemet har dessutom en delad hemlighet såsom ett lösenord eller en kod som du får fram från en digipass. När autentiseringssystemet har godkänt dig lämnar det över till auktoriseringssystemet som nu vet vem du är. Auktoriseringssytemet kontrollerar om du har rättigheter att se sidan du har bett om. När du är godkänd även av detta system presenteras sidan för dig.

Autentisering i SharePoint
Det är viktigt att känna till att SharePoint har ett inbyggt auktoriseringssystem men inte ett inbyggt autentiseringssystem. SharePoint måste därför förlita sig till ett externt autentiseringssytem (authentication provider). SharePoint kan använda sig av flera olika autentiseringssytem men vanligast är integrerad Windows-autentisering.

När du går till en SharePoint webbplats som använder integrerad Windows-autentisering så ber SP helt enkelt Windows att sköta uppgiften och komma tillbaka med information om vem du är och resultatet av kontrollen. Windows löser uppgiften på ungefär samma sätt som när du loggar in på din dator - det vill säga genom att be dig om användarnamn och lösenord.

Följde du min SharePoint installation så är det just integrerad Windows-autentisering som används för autentisering. I denna miljö löser Windows uppgiften med hjälp av "lokal konton". När du installerade Windows så skapade du exempelvis två lokala konton med användarnamn och lösenord varav ett var Administrator. Du kan alltså logga in i SharePoint med ett sådant lokalt konto och SP överlåter till Windows att kontrollera lösenordet. Lokala konton fungerar bra i experimentmiljöer där du kan logga in på samma dator som SharePoint är installerad på.

I riktiga miljöer kan du inte använda dig av lokala konton. Det finns flera möjligheter:
  • Man kan installerar ett AD (Active Directory) på en separat maskin där man samlar alla användarkonton och lösenord för hela nätverket. Det är fortfarande Windows som sköter autentiseringen i denna miljö.
  • Man kan tillåta anonym åtkomst och då behövs ingen autentisering.
  • Man kan använda formulärbaserad autentisering (Forms Based Authentication). Den här metoden möjliggör autentisering av vilket system som helst (exempelvis av en egen databas) men den kräver en del kod eftersom man måste bygga en ASP.NET-medlemskapsleverantör (Membership provider) och en ASP.NET-rollhanterare (Role provider)
  • Nytt för SharePoint 2010 är anspråksbaserad autentisering (Claims Based Autentication). Läs mer på MSDN
SharePoint tillåter flera olika autentiseringssystem för samma webbplats. Exempelvis kan det vara så att lärare finns i ett AD medan studenterna använder formulärbaserad autentisering.

Skapa lokala konton
För att skapa ett lokalt konto i Windows Server, gå till "Datorhantering" genom att klicka på Start, Administrationsverktyg och Datorhantering. Öppna "Lokala användare och grupper" och markera "Användare":


Högerklicka på "Användare" och välj "Ny användare". Fyll i uppgifterna inklusive lösenord och tryck på skapa. Min användare har användarnamn "Homer".

Om SharePoint använder integrerad Windows-autentisering och du enbart använder dig av lokala konton så kan du nu prova att logga in med ditt nya lokala konto. Välj "Logga in som en annan användare":


Windows presenterar ett formulär för inloggning (notera att "SharePoint" är namnet på min dator)


Tryck på "Använd ett annat konto":


För lokala konton skall domän vara namnet på din dator. Stämmer domännamnet kan du skriva in användarnamnet direkt, exempelvis "Homer". Är domännamnet fel skriver du domännamn\användarnamn, exempelvis "Sharepoint\Homer" (domännamn och användarnamn bryr sig inte om stora/små bokstäver).

Försöker du logga in på en webbplats med ett nytt lokalt konto får du sannolikt följande felmeddelande:


Det visar att du tagit dig igenom det första steget - autentiseringen. Däremot misslyckas det andra steget - auktoriseringen om du inte redan har gett den nya användaren behörigheter till webbplatsen (detta beskrivs i nästa inlägg). Misslyckas däremot autentiseringen så kommer du inte förbi formuläret för inloggning.

För att experimentera med olika typer av behörigheter är det bra att vara inloggad både som administratör och som en lokal användare med begränsad behörighet. På så sätt kan man med administratörskontot ge den lokala användaren olika behörigheter och direkt se resultatet. Du kan göra detta om du använder två olika webbläsare, en för Admin och en för den lokala användaren.

- Peter Jochumzen

Inga kommentarer:

Skicka en kommentar