Dela via


Hämta auktorisering för att få åtkomst till resurser

Den här artikeln hjälper dig som utvecklare att förstå hur du bäst säkerställer Nolltillit när du hämtar behörigheter för resursåtkomst för ditt program. För att få åtkomst till skyddade resurser som e-post- eller kalenderdata behöver ditt program resursägarens auktorisering. Resursägaren kan samtycka till eller neka appens begäran. Din app får en åtkomsttoken när resursägaren beviljar medgivande. din app får ingen åtkomsttoken när resursägaren nekar åtkomst.

Konceptuell granskning

Du kan använda Microsofts identitetsplattform för att autentisera och auktorisera dina program och hantera behörigheter och medgivande. Låt oss börja med några begrepp:

  • Autentisering (ibland förkortad till AuthN) är processen för att bevisa att din påstådda identitet är korrekt. Microsofts identitetsplattform använder OpenID Anslut-protokollet för hantering av autentisering. Auktorisering (ibland förkortad till AuthZ) ger en autentiserad part behörighet att göra något. Den anger vilka data som den autentiserade parten kan komma åt. Microsofts identitetsplattform använder OAuth2.0-protokollet för att hantera auktorisering. Auktoriseringsalternativen omfattar åtkomstkontrollistor (ACL), rollbaserad åtkomstkontroll och attributåtkomstkontroll (ABAC). Autentisering är ofta en auktoriseringsfaktor.

  • Delegerad åtkomst (som agerar på uppdrag av en inloggad användare) eller direkt åtkomst (fungerar endast som programmets egen identitet) tillåter ditt program att komma åt data. Delegerad åtkomst kräver delegerade behörigheter (kallas även omfång), klienten och användaren måste ha separat behörighet att göra begäran. Direkt åtkomst kan kräva programbehörigheter (kallas även approller), när approller beviljas till program kan de kallas programbehörigheter.

  • Delegerade behörigheter, som används med delegerad åtkomst, gör det möjligt för ett program att agera för en användares räkning och endast komma åt vad användaren kan komma åt. Programbehörighet, som används med direkt åtkomst, ger ett program åtkomst till alla data som behörigheten är associerad med. Endast administratörer och ägare av tjänstens huvudnamn kan godkänna programbehörigheter.

  • Medgivande är det sätt på vilket program får behörigheter. Användare eller administratörer ger ett program behörighet att komma åt en skyddad resurs. En medgivandeprompt visar de behörigheter som programmet kräver tillsammans med utgivarinformation.

  • Förauktorisering är det sätt på vilket resursprogramägare beviljar åtkomst till klientappar. De kan göra det i Azure-portalen eller med hjälp av PowerShell och API:er som Microsoft Graph. De kan bevilja resursbehörigheter utan att kräva att användarna ser en uppmaning om medgivande för uppsättningen med förauktoriserade behörigheter.

Skillnad mellan delegerad behörighet och programbehörighet

Program fungerar i två lägen: när en användare finns (delegerad behörighet) och när det inte finns någon användare (programbehörighet). När det finns en användare framför ett program är du tvungen att agera för den användarens räkning. du bör inte agera för själva programmet. När en användare dirigerar ditt program fungerar du som ombud för den användaren. Du får behörighet att agera å användarens vägnar som token identifierar.

Program av tjänsttyp (bakgrundsuppgifter, daemoner, server-till-server-processer) har inte användare som kan identifiera sig själva eller skriva in ett lösenord. De kräver en programbehörighet för att agera för sig själv (för tjänstprogrammets räkning).

bästa praxis för Nolltillit programauktorisering

Auktoriseringsmetoden har autentisering som en komponent när du ansluter till en användare som finns i programmet och till den resurs som du anropar. När ditt program agerar för en användares räkning litar vi inte på att ett anropande program talar om för oss vem användaren är eller låter programmet bestämma vem användaren är. Microsoft Entra-ID verifierar och ger direkt information om användaren i token.

När du behöver tillåta att ditt program anropar ett API eller auktoriserar ditt program så att programmet kan komma åt en resurs, kan moderna auktoriseringsscheman kräva auktorisering via ett behörighets- och medgivanderamverk. Referenssäkerhetstips för programegenskaper som omfattar omdirigerings-URI, åtkomsttoken (används för implicita flöden), certifikat och hemligheter, program-ID-URI och programägarskap.

Nästa steg

  • Anpassa token beskriver den information som du kan ta emot i Microsoft Entra-token. Den förklarar hur du anpassar token för att förbättra flexibiliteten och kontrollen samtidigt som du ökar säkerheten för program utan förtroende med minsta möjliga behörighet.
  • Konfigurera gruppanspråk och approller i token visar hur du konfigurerar dina appar med approlldefinitioner och tilldelar säkerhetsgrupper till approller. De här metoderna bidrar till att förbättra flexibiliteten och kontrollen samtidigt som säkerheten för program utan förtroende ökar med minsta möjliga behörighet.
  • Utveckla strategi för delegerade behörigheter hjälper dig att implementera den bästa metoden för att hantera behörigheter i ditt program och utveckla med hjälp av Nolltillit principer.
  • Utveckla en strategi för programbehörigheter som hjälper dig att bestämma din metod för programbehörigheter för hantering av autentiseringsuppgifter.
  • Ange autentiseringsuppgifter för programidentitet när det inte finns någon användare som förklarar varför hanterade identiteter för Azure-resurser är den bästa metoden för klientautentiseringsuppgifter för tjänster (icke-använda program) i Azure.
  • Metodtips för auktorisering hjälper dig att implementera de bästa auktoriserings-, behörighets- och medgivandemodellerna för dina program.
  • Använd bästa praxis för utveckling av Nolltillit identitets- och åtkomsthantering i programutvecklingslivscykeln för att skapa säkra program.
  • Att skapa appar med en Nolltillit metod för identitet fortsätter från artikeln Nolltillit metodtips för identitets- och åtkomsthanteringsutveckling som hjälper dig att använda en Nolltillit metod för identitet i din programvaruutvecklingslivscykel (SDLC).