Auktorisera åtkomst till Azure Databricks-resurser
I det här avsnittet beskrivs de grundläggande metoderna för att göra skyddade Azure Databricks CLI- eller REST API-anrop med autentiseringsuppgifter för Azure Databricks-kontot, till exempel användarkonton eller tjänstens huvudnamn.
Auktorisering för Azure Databricks CLI och API:er
För att få åtkomst till en Azure Databricks-resurs med Databricks CLI- eller REST-API:er måste klienterna auktorisera med ett Azure Databricks-konto. Det här kontot måste ha behörighet att komma åt resursen, som kan konfigureras av din Azure Databricks-administratör eller ett användarkonto med administratörsbehörighet.
Det finns två typer av konton som du kan använda, beroende på hur du tänker komma åt dina Azure Databricks-resurser:
- Användarkonto: Använd detta för att interaktivt ange Azure Databricks CLI-kommandon eller REST API-anrop.
- Tjänstens huvudnamn: Använd detta för att automatisera Azure Databricks CLI-kommandon eller REST API-anrop utan mänsklig interaktion.
När du har bestämt dig för kontotypen Azure Databricks måste du skaffa en åtkomsttoken som representerar kontots autentiseringsuppgifter. Du anger den här åtkomsttoken när du kommer åt kontots resurser i dina skript eller kod, eller i interaktiva sessioner.
- Om du använder Azure Databricks kan du också använda en MS Entra-tjänstehuvudman för att auktorisera åtkomst till ditt Azure Databricks-konto eller arbetsyta. Databricks rekommenderar dock att du använder ett Databricks tjänsthuvudnamn med den OAuth-auktorisering vi tillhandahåller i stället för autoriseringen via MS Entra tjänsthuvudnamn. Det beror på att Databricks auktorisering använder OAuth-åtkomsttoken som är mer robusta när de endast auktoriseras med Azure Databricks.
Mer information om hur du använder ett MS Entra-tjänsthuvudnamn för att komma åt Databricks-resurser finns i MS Entra-tjänstens huvudnamnsautentisering.
Hämta en åtkomsttoken
Ditt kontos autentiseringsuppgifter representeras av en säker åtkomsttoken som du anger antingen direkt eller indirekt till CLI-kommandot eller API-anropet.
Om du vill köra ett Databricks CLI-kommando eller en API-begäran på ett säkert sätt som kräver auktoriserad åtkomst till ett konto eller en arbetsyta måste du ange en åtkomsttoken baserat på giltiga autentiseringsuppgifter för Azure Databricks-kontot.
I följande tabell visas de auktoriseringsmetoder som är tillgängliga för ditt Azure Databricks-konto.
auktoriseringsmetoder för Azure Databricks
Eftersom Azure Databricks-verktyg och SDK:er fungerar med en eller flera Azure Databricks-auktoriseringsmetoder som stöds kan du välja den bästa auktoriseringsmetoden för ditt användningsfall. Mer information finns i verktyget eller SDK-dokumentationen i Lokala utvecklingsverktyg.
Azure Databricks-användare kan kräva åtkomst till Azure-specifika resurser som inte hanteras direkt under ditt Databricks-konto. Metoderna för att komma åt dessa resurser ingår också i den här tabellen. För Åtkomst till Azure-resurser använder du en Azure-hanterad tjänstidentitet (MSI) eller ett MS Entra-ID (beroende på ditt scenario) och inte dina autentiseringsuppgifter för Ditt Azure Databricks-konto.
Metod | beskrivning | Användningsfall |
---|---|---|
Databricks OAuth för tjänstens huvudnamn | Kortlivade OAuth-token för tjänstens huvudnamn. | Obevakade auktoriseringsscenarier, till exempel helt automatiserade och CI/CD-arbetsflöden. |
Databricks OAuth för användare | Kortlivade OAuth-token för användare. | Deltog i auktoriseringsscenarier, där du använder webbläsaren eller en annan interaktiv metod för att auktorisera med Databricks när du uppmanas att göra det. |
Databricks personliga åtkomsttoken (PAT) | Kortlivade eller långlivade token för användare eller tjänstens huvudnamn. | Använd endast detta i fall där målverktyget inte stöder OAuth. |
Azure-hanterad tjänstidentitetsauktorisering | Microsoft Entra-ID-token för Azure-hanterade identiteter. | Använd endast med Azure-resurser som stöder hanterade identiteter, till exempel virtuella Azure-datorer. |
auktorisering av tjänsthuvudman för Microsoft Entra ID | Microsoft Entra-ID-token för Microsoft Entra ID-tjänstens huvudnamn. | Använd endast med Azure-resurser som stöder Microsoft Entra-ID-token och inte stöder hanterade identiteter, till exempel Azure DevOps. |
Azure CLI-auktorisering | Microsoft Entra-ID-token för användare eller Microsoft Entra ID-tjänstens huvudnamn. | Använd för att auktorisera åtkomst till Azure-resurser och Azure Databricks med hjälp av Azure CLI. |
Användarauktorisering för Microsoft Entra-ID | Microsoft Entra-ID-token för användare. | Använd endast med Azure-resurser som endast stöder Microsoft Entra-ID-token. Databricks rekommenderar inte att du skapar Microsoft Entra-ID-token för Azure Databricks-användare manuellt. |
Vilket auktoriseringsalternativ ska jag välja?
Azure Databricks innehåller två alternativ för auktorisering eller autentisering med en åtkomsttoken:
- OAuth 2.0-baserade åtkomsttoken.
- Personliga åtkomsttoken (PAT).
Anmärkning
Azure Databricks rekommenderar starkt att du använder OAuth via PAT för auktorisering eftersom OAuth-token uppdateras automatiskt som standard och inte kräver direkt hantering av åtkomsttoken, vilket förbättrar säkerheten mot tokenkapning och oönskad åtkomst.
Eftersom OAuth skapar och hanterar åtkomsttoken åt dig anger du en URL för OAuth-tokenslutpunkt, ett klient-ID och en hemlighet som du genererar från din Azure Databricks-arbetsyta i stället för att direkt tillhandahålla en tokensträng. Välj endast PAT när du integrerar ett verktyg eller en tjänst från tredje part som inte stöds av Azure Databricks enhetlig klientautentisering eller inte har något OAuth-stöd.
Hur använder jag OAuth för att auktorisera åtkomst till Azure Databricks-resurser?
Azure Databricks tillhandahåller enhetlig klientautentisering för att hjälpa dig med auktorisering med hjälp av en standarduppsättning miljövariabler som du kan ange till specifika autentiseringsvärden. Detta hjälper dig att arbeta enklare och säkrare eftersom dessa miljövariabler är specifika för miljön som ska köra Azure Databricks CLI-kommandon eller anropa Azure Databricks-API:er.
- För auktorisering av användarkonto hanteras autentiseringsdelen av Azure Databricks OAuth – skapandet och hanteringen av åtkomsttoken – åt dig med Enhetlig autentisering för Databricks-klienten, så länge verktygen och SDK:erna implementerar sin standard. Om de inte gör det kan du manuellt generera en OAuth-kodverifierare och utmana par att använda direkt i dina Azure Databricks CLI-kommandon och API-begäranden. Se steg 1: Generera en OAuth-kodverifierare och ett kodutmaningspar.
- För auktorisering av tjänstens huvudnamn kräver Azure Databricks OAuth att anroparen anger klientautentiseringsuppgifter tillsammans med en url för tokenslutpunkt där begäran kan auktoriseras. (Detta hanteras åt dig om du använder Azure Databricks-verktyg och SDK:er som stöder databricks enhetlig klientautentisering.) Autentiseringsuppgifterna innehåller ett unikt klient-ID och klienthemlighet. Klienten, som är databricks-tjänstens huvudnamn som ska köra koden, måste tilldelas till Databricks-arbetsytor. När du har tilldelat tjänstens huvudnamn till de arbetsytor som den kommer åt får du ett klient-ID och en klienthemlighet som du anger med specifika miljövariabler.
Dessa miljövariabler är:
Miljövariabel | beskrivning |
---|---|
DATABRICKS_HOST |
Den här miljövariabeln är inställd på URL:en för azure Databricks-kontokonsolen (http://accounts.cloud.databricks.com ) eller url:en för Azure Databricks-arbetsytan (https://{workspace-id}.cloud.databricks.com ). Välj en värd-URL-typ baserat på vilken typ av åtgärder du ska utföra i koden. Mer specifikt, om du använder Azure Databricks CLI-kommandon på kontonivå eller REST API-begärandenanger du den här variabeln till url:en för ditt Azure Databricks-konto. Om du använder CLI-kommandon på Azure Databricks-arbetsytenivå eller REST API-begäranden använder du url:en för Azure Databricks-arbetsytan. |
DATABRICKS_ACCOUNT_ID |
Används för Azure Databricks-kontoåtgärder. Det här är ditt Azure Databricks-konto-ID. För att få det, se Leta upp ditt konto-ID. |
DATABRICKS_CLIENT_ID |
(Endast OAuth för tjänstens huvudnamn) Klient-ID:t som du tilldelades när att skapa tjänstens huvudnamn. |
DATABRICKS_CLIENT_SECRET |
(Endast OAuth för service principal) Klienthemligheten som du genererade när du skapade service principal. |
Du kan ange dessa direkt eller genom att använda en Databricks-konfigurationsprofil (.databrickscfg
) på klientdatorn.
Om du vill använda en OAuth-åtkomsttoken måste din Azure Databricks-arbetsyta eller kontoadministratör ha beviljat ditt användarkonto eller tjänstens huvudnamn CAN USE
behörigheten för de konto- och arbetsytefunktioner som koden kommer åt.
Mer information om hur du konfigurerar OAuth-auktorisering för klienten och om du vill granska molnleverantörsspecifika auktoriseringsalternativ finns i Enhetlig klientautentisering.
Autentisering för tjänster och verktyg från tredje part
Om du skriver kod som har åtkomst till tjänster, verktyg eller SDK:er från tredje part måste du använda de autentiserings- och auktoriseringsmekanismer som tillhandahålls av tredje part. Men om du måste bevilja ett verktyg från tredje part, SDK eller tjänståtkomst till ditt Azure Databricks-konto eller dina arbetsyteresurser, tillhandahåller Databricks följande stöd:
Databricks Terraform-provider: Det här verktyget kan komma åt Azure Databricks-API:er från Terraform åt dig med ditt Azure Databricks-användarkonto. Mer information finns i Etablera ett huvudnamn för tjänsten med terraform.
Git-leverantörer som GitHub, GitLab och Bitbucket kan komma åt Azure Databricks-API:er genom att använda en tjänstprincipal för Databricks. Mer information finns i Tjänstens huvudnamn för CI/CD.
Jenkins kan komma åt Azure Databricks-API:er med hjälp av databricks-tjänstens huvudnamn. Mer information finns i CI/CD med Jenkins på Azure Databricks.
Azure DevOps kan komma åt Azure Databricks-API:er med hjälp av ett MS Entra ID-baserat huvudnamn för tjänsten. Mer information finns i Autentisera med Azure DevOps på Databricks.
Konfigurationsprofiler för Azure Databricks
En Azure Databricks-konfigurationsprofil innehåller inställningar och annan information som Azure Databricks behöver för att auktorisera åtkomst. Azure Databricks-konfigurationsprofiler lagras i lokala klientfiler för dina verktyg, SDK:er, skript och appar att använda. Standardkonfigurationsprofilfilen heter .databrickscfg
.
Mer information finns i Konfigurationsprofiler för Azure Databricks.