Share via


Auktorisera åtkomst till tabeller med Hjälp av Microsoft Entra-ID

Azure Storage stöder användning av Microsoft Entra-ID för att auktorisera begäranden till tabelldata. Med Microsoft Entra-ID kan du använda rollbaserad åtkomstkontroll i Azure (Azure RBAC) för att bevilja behörigheter till ett säkerhetsobjekt, som kan vara en användare, grupp eller programtjänsthuvudnamn. Säkerhetsobjektet autentiseras av Microsoft Entra-ID för att returnera en OAuth 2.0-token. Token kan sedan användas för att auktorisera en begäran mot Tabelltjänsten.

Auktorisering av begäranden mot Azure Storage med Microsoft Entra-ID ger överlägsen säkerhet och enkel användning via auktorisering av delad nyckel. Microsoft rekommenderar att du använder Microsoft Entra-auktorisering med dina tabellprogram när det är möjligt för att garantera åtkomst med minsta möjliga behörighet.

Auktorisering med Microsoft Entra-ID är tillgängligt för alla allmänna ändamål i alla offentliga regioner och nationella moln. Endast lagringskonton som skapats med Azure Resource Manager-distributionsmodellen stöder Microsoft Entra-auktorisering.

Översikt över Microsoft Entra-ID för tabeller

När ett säkerhetsobjekt (en användare, grupp eller ett program) försöker komma åt en tabellresurs måste begäran auktoriseras. Med Microsoft Entra-ID är åtkomst till en resurs en tvåstegsprocess. Först autentiseras säkerhetsobjektets identitet och en OAuth 2.0-token returneras. Därefter skickas token som en del av en begäran till tabelltjänsten och används av tjänsten för att auktorisera åtkomst till den angivna resursen.

Autentiseringssteget kräver att ett program begär en OAuth 2.0-åtkomsttoken vid körning. Om ett program körs inifrån en Azure-entitet, till exempel en virtuell Azure-dator, en VM-skalningsuppsättning eller en Azure Functions-app, kan den använda en hanterad identitet för att komma åt tabeller.

Auktoriseringssteget kräver att en eller flera Azure-roller tilldelas säkerhetsobjektet. Azure Storage tillhandahåller Azure-roller som omfattar vanliga uppsättningar med behörigheter för tabelldata. De roller som tilldelas ett säkerhetsobjekt avgör vilka behörigheter som huvudkontot ska ha. Mer information om hur du tilldelar Azure-roller för tabellåtkomst finns i Tilldela en Azure-roll för åtkomst till tabelldata.

Följande tabell pekar på ytterligare information för att auktorisera åtkomst till data i olika scenarier:

Språk .NET Java JavaScript Python Kör
Översikt över autentisering med Microsoft Entra-ID Autentisera .NET-program med Azure-tjänster Azure-autentisering med Java och Azure Identity Autentisera JavaScript-appar till Azure med Hjälp av Azure SDK Autentisera Python-appar till Azure med hjälp av Azure SDK
Autentisering med utvecklartjänstens huvudnamn Autentisera .NET-appar till Azure-tjänster under lokal utveckling med hjälp av tjänstens huvudnamn Azure-autentisering med tjänstens huvudnamn Auth JS-appar till Azure-tjänster med tjänstens huvudnamn Autentisera Python-appar till Azure-tjänster under lokal utveckling med hjälp av tjänstens huvudnamn Azure SDK för Go-autentisering med tjänstens huvudnamn
Autentisering med hjälp av utvecklar- eller användarkonton Autentisera .NET-appar till Azure-tjänster under lokal utveckling med hjälp av utvecklarkonton Azure-autentisering med användarautentiseringsuppgifter Auth JS-appar till Azure-tjänster med utvecklingskonton Autentisera Python-appar till Azure-tjänster under lokal utveckling med hjälp av utvecklarkonton Azure-autentisering med Azure SDK för Go
Autentisering från Azure-värdbaserade appar Autentisera Azure-värdbaserade appar till Azure-resurser med Azure SDK för .NET Autentisera Azure-värdbaserade Java-program Autentisera Azure-värdbaserade JavaScript-appar till Azure-resurser med Azure SDK för JavaScript Autentisera Azure-värdbaserade appar till Azure-resurser med Azure SDK för Python Autentisering med Azure SDK för Go med hjälp av en hanterad identitet
Autentisering från lokala appar Autentisera till Azure-resurser från .NET-appar som finns lokalt Autentisera lokala JavaScript-appar till Azure-resurser Autentisera till Azure-resurser från Python-appar som finns lokalt
Översikt över identitetsklientbibliotek Azure Identity-klientbibliotek för .NET Azure Identity-klientbibliotek för Java Azure Identity-klientbibliotek för JavaScript Azure Identity-klientbibliotek för Python Azure Identity-klientbibliotek för Go

Tilldela Azure-roller för åtkomsträttigheter

Microsoft Entra auktoriserar åtkomsträttigheter till skyddade resurser via rollbaserad åtkomstkontroll i Azure (Azure RBAC). Azure Storage definierar en uppsättning inbyggda Azure-roller som omfattar vanliga uppsättningar med behörigheter som används för att komma åt tabelldata. Du kan också definiera anpassade roller för åtkomst till tabelldata.

När en Azure-roll tilldelas ett Microsoft Entra-säkerhetsobjekt ger Azure åtkomst till dessa resurser för det säkerhetsobjektet. Ett Microsoft Entra-säkerhetsobjekt kan vara en användare, en grupp, ett huvudnamn för programtjänsten eller en hanterad identitet för Azure-resurser.

Resursomfång

Innan du tilldelar en Azure RBAC-roll till ett säkerhetsobjekt ska du bestämma vilken omfattning av åtkomst som säkerhetsobjektet ska ha. Bästa praxis kräver att det alltid är bäst att endast bevilja minsta möjliga omfång. Azure RBAC-roller som definierats i ett bredare omfång ärvs av resurserna under dem.

Du kan begränsa åtkomsten till Azure-tabellresurser på följande nivåer, från och med det smalaste omfånget:

  • En enskild tabell. I det här omfånget gäller en rolltilldelning för den angivna tabellen.
  • Lagringskontot. I det här omfånget gäller en rolltilldelning för alla tabeller i kontot.
  • Resursgruppen. I det här omfånget gäller en rolltilldelning för alla tabeller i alla lagringskonton i resursgruppen.
  • Prenumerationen. I det här omfånget gäller en rolltilldelning för alla tabeller i alla lagringskonton i alla resursgrupper i prenumerationen.
  • En hanteringsgrupp. I det här omfånget gäller en rolltilldelning för alla tabeller i alla lagringskonton i alla resursgrupper i alla prenumerationer i hanteringsgruppen.

Mer information om omfånget för Azure RBAC-rolltilldelningar finns i Förstå omfånget för Azure RBAC.

Inbyggda Azure-roller för tabeller

Azure RBAC tillhandahåller inbyggda roller för att auktorisera åtkomst till tabelldata med hjälp av Microsoft Entra ID och OAuth. Inbyggda roller som ger behörighet till tabeller i Azure Storage är:

  • Lagringstabelldatadeltagare: Använd för att bevilja läs-/skriv-/borttagningsbehörigheter till Table Storage-resurser.
  • Dataläsare för lagringstabell: Använd för att bevilja skrivskyddade behörigheter till Table Storage-resurser.

Information om hur du tilldelar en inbyggd Azure-roll till ett säkerhetsobjekt finns i Tilldela en Azure-roll för åtkomst till tabelldata. Information om hur du listar Azure RBAC-roller och deras behörigheter finns i Lista Azure-rolldefinitioner.

Mer information om hur inbyggda roller definieras för Azure Storage finns i Förstå rolldefinitioner. Information om hur du skapar anpassade Azure-roller finns i Anpassade Azure-roller.

Endast roller som uttryckligen definierats för dataåtkomst tillåter ett säkerhetsobjekt att komma åt tabelldata. Inbyggda roller som Ägare, Deltagare och Lagringskontodeltagare tillåter ett säkerhetsobjekt att hantera ett lagringskonto, men ger inte åtkomst till tabelldata i det kontot via Microsoft Entra-ID. Men om en roll innehåller Microsoft.Storage/storageAccounts/listKeys/action kan en användare som rollen har tilldelats komma åt data i lagringskontot via auktorisering av delad nyckel med kontoåtkomstnycklarna.

Detaljerad information om inbyggda Azure-roller för Azure Storage för både datatjänster och hanteringstjänsten finns i avsnittet Lagring i inbyggda Azure-roller för Azure RBAC. Information om de olika typer av roller som ger behörigheter i Azure finns dessutom i Azure-roller, Microsoft Entra-roller och klassiska administratörsroller för prenumerationer.

Viktigt!

Det kan ta upp till 30 minuter att sprida Azure-rolltilldelningar.

Åtkomstbehörigheter för dataåtgärder

Mer information om de behörigheter som krävs för att anropa specifika table service-åtgärder finns i Behörigheter för att anropa dataåtgärder.

Nästa steg