Skydda program med kontinuerlig åtkomstutvärdering

Den här artikeln hjälper dig som utvecklare att förbättra programsäkerheten med kontinuerlig åtkomstutvärdering. Du får lära dig hur du säkerställer Nolltillit support i dina appar som får behörighet att komma åt resurser när de hämtar åtkomsttoken från Microsoft Entra-ID.

När Microsoft Entra-ID:t utfärdar dessa åtkomsttoken utvärderas villkoren för auktoriseringen fullständigt. Microsoft Entra-ID utför standardauktoriseringsåtgärder, till exempel att säkerställa att medgivande för programmet har beviljats, varje gång det utfärdar token för inledande tokenbegäranden och när token uppdateras.

Microsoft Entra ID använder främst JSON Web Tokens (JWT) för åtkomsttoken. Ett resurs-API kan avkoda, verifiera och tolka JWT utan att behöva anropa tillbaka till Microsoft Entra-ID vid varje anrop till resurs-API:et. JWT-standarden definierar ett exp-anspråk som identifierar den förfallotid som du inte får acceptera JWT-token för bearbetning. Som standard upphör Microsoft Entra-token att gälla 60 till 90 minuter efter problemet. Dina program måste cachelagra och använda åtkomsttoken för den här perioden då Microsoft Entra-ID inte utvärderar auktoriseringsvillkoren.

Utvärdera villkor utanför utfärdandet av token

Microsoft-kunder har uttryckt oro över fördröjningar mellan ändringar av användarvillkor och tillämpning av principändringar när Microsoft Entra-ID utfärdar token. Den här metoden för kortare tokenlivslängd kan försämra användarupplevelser och tillförlitlighet utan att eliminera risker.

En lösning är att utvärdera villkor för varje anrop till en skyddad resurs. Det vanligaste sättet att implementera den här tillämpningen är token-introspektion. Token-introspektion använder inte ett JWT-format för token. I stället använder tokenintrospektion en ogenomskinlig sträng som resurs-API:et inte kan tolka. Resurs-API:et skickar token till identitetsprovidern för varje anrop. Identitetsprovidern söker sedan efter eventuella villkor och returnerar data som resurs-API:et kan använda för att slutföra åtgärden. Den här processen kan vara dyr eftersom den lägger till ytterligare en webbbegäran för tur och retur till varje API-anrop.

För att åtgärda den här kostnaden med kontinuerlig åtkomstutvärdering (CAE) kan ett resurs-API lyssna efter händelser som Microsoft Entra-ID skickar om de token som Microsoft Entra ID har problem med för resurs-API:et. När ditt program till exempel anropar Microsoft Graph API kan Microsoft Graph kontrollera om det har tagit emot händelser från Microsoft Entra-ID om token. Om villkoren för den ursprungliga autentiseringen har ändrats och användaren behöver autentiseras igen returnerar Microsoft Graph ett fel till den anropande appen.

Microsoft Entra-ID skickar en händelse till CAE-aktiverade Microsoft-resurser när någon av dessa händelser inträffar:

  • Borttaget eller inaktiverat användarkonto
  • Ändrat eller återställt användarlösenord
  • Aktiverad multifaktorautentisering för användare
  • Administratören återkallar uttryckligen alla uppdateringstoken för en användare
  • Microsoft Entra ID Protection identifierar förhöjd användarrisk

Dessutom kan CAE-aktiverade Microsoft-resurser framtvinga platsbaserade principer för villkorlig åtkomst.

Förbättra programsäkerhet och återhämtning med CAE

Videon Mer säkra och motståndskraftiga appar som bygger på Microsoft Entra Continuous Access Evaluation visar hur du skapar en klientapp med CAE-stöd.

Titta på presentationen ovan för att lära dig hur program fungerar när du använder modern autentisering med följande steg:

  • Så här fungerar program när du använder modern autentisering
  • Appen ber Microsoft-identiteten om token
  • Appen tar emot en åtkomsttoken
  • Appen anropar API/auktorisering med JWT
  • Introspection
  • Delade signaler och händelser
  • Utvärdering av kritiska händelser
  • Principutvärdering för villkorsstyrd åtkomst
  • Kallas api-utvärdering för kontinuerlig åtkomst
  • Anspråksutmaning

Kontinuerlig åtkomstutvärdering gör det möjligt för ett programs auktorisering att komma åt en resurs som återkallats utanför åtkomsttokens livslängd. Ett program har till exempel en token som är giltig i 75 minuter till. En användare har ett högrisktillstånd på grund av autentiseringsuppgifter som har brutits. CAE blockerar appens åtkomst till resursen, vilket kräver att användaren autentiserar igen innan den fortsätter. Därmed uppnår CAE sitt primära mål att förbättra appsäkerheten.

Eftersom åtkomst till en resurs kan återkallas utanför en tokens livslängd kan Microsoft Entra-ID utfärda token under en längre livslängd. För appar som stöder CAE kan Microsoft Entra-ID utfärda token som är giltiga i upp till 28 timmar. Även om den här längre tokenlivslängden inte förbättrar appens motståndskraft minskar den programkostnaderna eftersom appen behöver begära token mycket mindre ofta.

CAE förbättrar en apps motståndskraft mot problem som appen kan stöta på vid hämtning av en åtkomsttoken från Microsoft Entra-ID. När det är möjligt utfärdar Microsoft Entra-ID en uppdateringstid som en del av ett tokensvar som innehåller en åtkomsttoken. Microsoft Authentication Libraries (MSAL) använder den här uppdateringstiden för att proaktivt uppdatera token. Uppdateringstiden är en del (vanligtvis hälften) av tokens förfallotid. Så länge MSAL kan uppdatera åtkomsttoken före tokens förfallotid är appen motståndskraftig mot problem med tokenuppdatering.

När en app till exempel stöder CAE utfärdar Microsoft Entra-ID en token som tillåter appen att anropa Microsoft Graph som är giltigt i 24 timmar. Microsoft Entra-ID uppmanar sedan MSAL att proaktivt uppdatera token efter 12 timmar. Om MSAL försöker uppdatera åtkomsttoken misslyckas eftersom den ursprungliga åtkomsttoken fortfarande är giltig i ytterligare 12 timmar är appen mer motståndskraftig mot problem när den hämtar token från Microsoft Entra-ID.

Implementera kontinuerlig åtkomstutvärdering i din app

Enligt beskrivningen i Använda api:er för kontinuerlig åtkomstutvärdering i dina program måste både appen och resurs-API:et som den har åtkomst till vara CAE-aktiverade. Men att förbereda koden för att använda en CAE-aktiverad resurs hindrar dig inte från att använda API:er som inte är CAE-aktiverade. Program som inte använder MSAL kan lägga till stöd för anspråksutmaningar, anspråksbegäranden och klientfunktioner för att använda CAE.

Nästa steg