Introduktion till behörigheter och medgivande

För att få åtkomst till en skyddad resurs, till exempel e-post- eller kalenderdata, behöver ditt program resursägarens auktorisering. Resursägaren kan samtycka till eller neka appens begäran. Genom att förstå dessa grundläggande begrepp kan du skapa säkrare och tillförlitligare program som bara begär den åtkomst de behöver, när de behöver det, från dess användare och administratörer.

Åtkomstscenarier

Som programutvecklare måste du identifiera hur programmet kommer åt data. Programmet kan använda delegerad åtkomst, agera på uppdrag av en inloggad användare eller endast appåtkomst, som endast fungerar som programmets egen identitet.

Bild som visar en bild av åtkomstscenarier.

Delegerad åtkomst (åtkomst för en användares räkning)

I det här åtkomstscenariot har en användare loggat in på ett klientprogram. Klientprogrammet får åtkomst till resursen för användarens räkning. Delegerad åtkomst kräver delegerade behörigheter. Både klienten och användaren måste auktoriseras separat för att begäran ska kunna göras. Mer information om scenariot med delegerad åtkomst finns i scenariot med delegerad åtkomst.

För klientappen måste rätt delegerade behörigheter beviljas. Delegerade behörigheter kan också kallas omfång. Omfång är behörigheter för en viss resurs som representerar vad ett klientprogram kan komma åt för användarens räkning. Mer information om omfång finns i omfång och behörigheter.

För användaren förlitar sig auktoriseringen på de behörigheter som användaren har beviljats för att få åtkomst till resursen. Användaren kan till exempel ha behörighet att komma åt katalogresurser via rollbaserad åtkomstkontroll (Azure AD) i Azure Active Directory (RBAC) eller för att få åtkomst till e-post- och kalenderresurser via Exchange Online RBAC. Mer information om RBAC för program finns i RBAC för program.

Endast appåtkomst (åtkomst utan användare)

I det här åtkomstscenariot agerar programmet på egen hand utan att användaren är inloggad. Programåtkomst används i scenarier som automatisering och säkerhetskopiering. Det här scenariot innehåller appar som körs som bakgrundstjänster eller daemoner. Det är lämpligt när det är oönskat att ha en specifik användare inloggad, eller när de data som krävs inte kan begränsas till en enskild användare.

Endast appåtkomst använder approller i stället för delegerade omfång. När de beviljas via medgivande kan approller även kallas programbehörigheter. För endast appåtkomst måste klientappen beviljas lämpliga approller för den resursapp som den anropar för att få åtkomst till begärda data. Mer information om hur du tilldelar approller till klientprogram finns i Tilldela approller till program.

Typer av behörigheter

Delegerade behörigheter används i scenariot med delegerad åtkomst. De är behörigheter som gör att programmet kan agera för en användares räkning. Programmet kommer aldrig att kunna komma åt något som den inloggade användaren själv inte kunde komma åt.

Tänk dig till exempel ett program som har beviljats behörigheten Files.Read.All delegerad för Användaren Toms räkning. Programmet kan bara läsa filer som Tom kan komma åt personligen.

Programbehörigheter, som ibland kallas approller, används i scenariot med endast appåtkomst, utan att en inloggad användare finns. Programmet kommer att kunna komma åt alla data som behörigheten är associerad med. Till exempel kan ett program som beviljats behörigheten Files.Read.All-program läsa alla filer i klientorganisationen. Endast en administratör eller ägare av tjänstens huvudnamn kan godkänna programbehörigheter.

Det finns andra sätt på vilka program kan beviljas auktorisering för endast appåtkomst. Ett program kan till exempel tilldelas en Azure AD RBAC-roll.

Jämförelse av delegerade behörigheter och programbehörigheter

Delegerade behörigheter Programbehörigheter
Apptyper Webb/Mobil/ensidesapp (SPA) Webb/daemon
Åtkomstkontext Få åtkomst för en användares räkning Få åtkomst utan en användare
Vem kan ge medgivande – Användare kan godkänna sina data
– Administratörer kan godkänna alla användare
Endast administratören kan samtycka
Andra namn -Scope
– OAuth2-behörighetsomfattningar
– Approller
– Endast appbehörigheter
Resultatet av medgivande (specifikt för Microsoft Graph) oAuth2PermissionGrant appRoleAssignment

Ett sätt att bevilja program behörigheter är genom medgivande. Medgivande är en process där användare eller administratörer ger ett program åtkomst till en skyddad resurs. När en användare till exempel försöker logga in på ett program för första gången kan programmet begära behörighet att se användarens profil och läsa innehållet i användarens postlåda. Användaren ser listan över behörigheter som appen begär via en fråga om medgivande. Andra scenarier där användare kan se en fråga om medgivande är:

  • När tidigare medgivande har återkallats.
  • När programmet kodas för att specifikt fråga efter medgivande under varje inloggning.
  • När programmet använder inkrementellt eller dynamiskt medgivande för att be om vissa behörigheter i förväg och mer behörighet senare efter behov.

Den viktigaste informationen i en fråga om medgivande är listan över behörigheter som programmet kräver och utgivarinformationen. Mer information om medgivandeprompten och medgivandeupplevelsen för både administratörer och slutanvändare finns i programmets medgivandeupplevelse.

Användarmedgivande inträffar när en användare försöker logga in på ett program. Användaren anger sina inloggningsuppgifter. Dessa autentiseringsuppgifter kontrolleras för att avgöra om medgivande redan har beviljats. Om det inte finns någon tidigare post med användar- eller administratörsmedgivande för de behörigheter som krävs visas en uppmaning om medgivande och uppmanas att bevilja programmet de begärda behörigheterna. I många fall kan en administratör behöva bevilja medgivande för användarens räkning.

Beroende på vilka behörigheter de kräver kan vissa program kräva att en administratör är den som ger sitt medgivande. Till exempel kan programbehörigheter och många delegerade högprivilegerade behörigheter endast godkännas av en administratör. Administratörer kan bevilja medgivande för sig själva eller för hela organisationen. Mer information om användar- och administratörsmedgivande finns i Översikt över användar- och administratörsmedgivande.

Förautentisering

Med förautentisering kan en resursprogramägare bevilja behörigheter utan att användarna behöver se en fråga om medgivande för samma uppsättning behörigheter som har förauktoriserats. På så sätt kommer ett program som har förauktoriserats inte att be användarna att godkänna behörigheter. Resursägare kan förauktorisera klientappar i Azure Portal eller med hjälp av PowerShell och API:er som Microsoft Graph.

Nästa steg