Grundläggande auktorisering
Auktorisering (ibland förkortat AuthZ) används för att ange behörigheter som möjliggör utvärdering av åtkomst till resurser eller funktioner. Autentisering (ibland förkortat AuthN) fokuserar däremot på att bevisa att en entitet som en användare eller tjänst verkligen är den som de påstår sig vara.
Auktorisering kan omfatta att ange vilka funktioner, resurser eller data som en entitet får åtkomst till. Auktorisering anger också vad som kan göras med data. Den här auktoriseringsåtgärden kallas ofta åtkomstkontroll.
Autentisering och auktorisering är begrepp som inte bara är begränsade till användare. Tjänster eller daemonprogram skapas ofta för att göra begäranden om resurser som sig själva snarare än för en viss användares räkning. I den här artikeln används termen "entitet" för att referera till antingen en användare eller ett program.
Auktoriseringsmetoder
Det finns flera vanliga metoder för att hantera auktorisering. Rollbaserad åtkomstkontroll är för närvarande den vanligaste metoden med hjälp av Microsofts identitetsplattform.
Autentisering som auktorisering
Möjligen är den enklaste formen av auktorisering att bevilja eller neka åtkomst baserat på om entiteten som gör en begäran har autentiserats. Om beställaren kan bevisa att de är de som de påstår sig vara, kan de komma åt de skyddade resurserna eller funktionerna.
Listor för åtkomstkontroll
Auktorisering med hjälp av åtkomstkontrollistor (ACL: er) omfattar att underhålla explicita listor över specifika entiteter som har eller inte har åtkomst till en resurs eller funktion. ACL:er ger bättre kontroll över autentisering som auktorisering men blir svåra att hantera när antalet entiteter ökar.
Rollbaserad åtkomstkontroll
Rollbaserad åtkomstkontroll (RBAC) är kanske den vanligaste metoden för att framtvinga auktorisering i program. När du använder RBAC definieras roller för att beskriva vilka typer av aktiviteter en entitet kan utföra. En programutvecklare ger åtkomst till roller i stället för till enskilda entiteter. En administratör kan sedan tilldela roller till olika entiteter för att styra vilka som har åtkomst till vilka resurser och funktioner.
I avancerade RBAC-implementeringar kan roller mappas till samlingar med behörigheter, där en behörighet beskriver en detaljerad åtgärd eller aktivitet som kan utföras. Roller konfigureras sedan som kombinationer av behörigheter. Beräkna den övergripande behörighetsuppsättningen för en entitet genom att kombinera de behörigheter som beviljats till de olika roller som entiteten har tilldelats. Ett bra exempel på den här metoden är RBAC-implementeringen som styr åtkomsten till resurser i Azure-prenumerationer.
Kommentar
Program-RBAC skiljer sig från Azure RBAC och Microsoft Entra RBAC. Anpassade Azure-roller och inbyggda roller är båda en del av Azure RBAC, som hjälper dig att hantera Azure-resurser. Microsoft Entra RBAC tillåter hantering av Microsoft Entra-resurser.
Attributbaserad åtkomstkontroll
Attributbaserad åtkomstkontroll (ABAC) är en mer detaljerad åtkomstkontrollmekanism. I den här metoden tillämpas regler på entiteten, de resurser som används och den aktuella miljön. Reglerna avgör åtkomstnivån för resurser och funktioner. Ett exempel kan vara att bara tillåta användare som är chefer att komma åt filer som identifieras med en metadatatagg med "endast chefer under arbetstid" under timmarna 09.00–17.00 på arbetsdagar. I det här fallet bestäms åtkomsten genom att undersöka användarens attribut (status som hanterare), attributet (metadatataggen på en fil) för resursen och även ett miljöattribut (aktuell tid).
En fördel med ABAC är att mer detaljerad och dynamisk åtkomstkontroll kan uppnås genom regel- och villkorsutvärderingar utan att behöva skapa ett stort antal specifika roller och RBAC-tilldelningar.
En metod för att uppnå ABAC med Microsoft Entra-ID är att använda dynamiska medlemskapsgrupper. Med dynamiska grupper kan administratörer dynamiskt tilldela användare till grupper baserat på specifika användarattribut med önskade värden. En grupp författare kan till exempel skapas där alla användare med jobbtiteln Författare tilldelas dynamiskt till gruppen Författare. Dynamiska grupper kan användas i kombination med RBAC för auktorisering där du mappar roller till grupper och dynamiskt tilldelar användare till grupper.
Azure ABAC är ett exempel på en ABAC-lösning som är tillgänglig idag. Azure ABAC bygger på Azure RBAC genom att lägga till rolltilldelningsvillkor baserat på attribut i samband med specifika åtgärder.
Implementera auktorisering
Auktoriseringslogik implementeras ofta i program eller lösningar där åtkomstkontroll krävs. I många fall erbjuder programutvecklingsplattformar mellanprogram eller andra API-lösningar som förenklar implementeringen av auktorisering. Exempel är användning av AuthorizeAttribute i ASP.NET eller Route Guards i Angular.
För auktoriseringsmetoder som förlitar sig på information om den autentiserade entiteten utvärderar ett program information som utbyts under autentiseringen. Till exempel genom att använda den information som angavs i en säkerhetstoken. Om du planerar att använda information från token för auktorisering rekommenderar vi att du följer den här vägledningen om korrekt skydd av appar via anspråksverifiering. i För information som inte finns i en säkerhetstoken kan ett program göra extra anrop till externa resurser.
Det är inte absolut nödvändigt för utvecklare att bädda in auktoriseringslogik helt i sina program. I stället kan dedikerade auktoriseringstjänster användas för att centralisera implementering och hantering av auktorisering.
Nästa steg
- Mer information om implementering av anpassad rollbaserad åtkomstkontroll i program finns i Rollbaserad åtkomstkontroll för programutvecklare.
- Mer information om hur du registrerar ditt program så att det kan integreras med Microsofts identitetsplattform finns i Programmodell.
- Ett exempel på hur du konfigurerar enkel autentiseringsbaserad auktorisering finns i Konfigurera apptjänsten eller Azure Functions-appen så att den använder Microsoft Entra-inloggning.
- Mer information om korrekt auktorisering med tokenanspråk finns i Skydda program och API:er genom att validera anspråk