Autentisera åtkomst till Azure Databricks-resurser
För att få åtkomst till en Azure Databricks-resurs med Databricks CLI- eller REST-API:er måste klienterna autentisera med ett Azure Databricks-konto med den behörighet som krävs för att få åtkomst till resursen. Om du vill köra ett Databricks CLI-kommando på ett säkert sätt eller anropa en Databricks API-begäran 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. Den här artikeln beskriver autentiseringsalternativen för att ange dessa autentiseringsuppgifter och auktorisera åtkomst till en Azure Databricks-arbetsyta eller ett konto.
I följande tabell visas de autentiseringsmetoder som är tillgängliga för ditt Azure Databricks-konto.
Azure Databricks-autentiseringsmetoder
Eftersom Azure Databricks-verktyg och SDK:er fungerar med en eller flera Azure Databricks-autentiseringsmetoder som stöds kan du välja den bästa autentiseringsmetoden för ditt användningsfall. Mer information finns i verktyget eller SDK-dokumentationen i Utvecklarverktyg.
Metod | beskrivning | Användningsfall |
---|---|---|
OAuth för tjänstens huvudnamn (OAuth M2M) | Kortlivade OAuth-token för tjänstens huvudnamn. | Obevakade autentiseringsscenarier, till exempel helt automatiserade arbetsflöden och CI/CD-arbetsflöden. |
OAuth för användare (OAuth U2M) | Kortlivade OAuth-token för användare. | Deltog i autentiseringsscenarier, där du använder webbläsaren för att autentisera med Azure Databricks i realtid när du uppmanas att göra det. |
Personliga åtkomsttoken (PAT) | Kortlivade eller långlivade token för användare eller tjänstens huvudnamn. | Scenarier där målverktyget inte stöder OAuth. |
Azure-hanterad identitetsautentisering | 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. |
Autentisering med tjänstens huvudnamn i 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-autentisering | Microsoft Entra-ID-token för användare eller Microsoft Entra ID-tjänstens huvudnamn. | Använd för att autentisera åtkomst till Azure-resurser och Azure Databricks med hjälp av Azure CLI. |
Användarautentisering 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. |
Vilken autentiseringsmetod ska jag välja?
Du har två alternativ för att autentisera ett Databricks CLI-kommando eller API-anrop för åtkomst till dina Azure Databricks-resurser:
- Använd ett Azure Databricks-användarkonto (kallas "användar-till-dator"-autentisering eller U2M). Välj detta endast när du kör ett Azure Databricks CLI-kommando från din lokala klientmiljö eller anropar en Azure Databricks API-begäran från kod som du äger och kör exklusivt.
- Använd tjänstens huvudnamn för Azure Databricks (kallas "maskin-till-dator"-autentisering eller M2M). Välj detta om andra kommer att köra din kod (särskilt när det gäller en app) eller om du skapar automatisering som anropar Azure Databricks CLI-kommandon eller API-begäranden.
- Om du använder Azure Databricks kan du också använda ett MS Entra-tjänstens huvudnamn för att autentisera åtkomsten till ditt Azure Databricks-konto eller din arbetsyta. Databricks rekommenderar dock att du använder ett Huvudnamn för Databricks-tjänsten med vår tillhandahållna OAuth-autentisering via MS Entra-tjänstens huvudnamnsautentisering. Det beror på att Databricks-autentisering använder OAuth-åtkomsttoken som är mer robusta vid autentisering endast 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.
Du måste också ha en åtkomsttoken länkad till det konto som du ska använda för att anropa Databricks-API:et. Den här token kan vara antingen en OAuth 2.0-åtkomsttoken eller en personlig åtkomsttoken (PAT). Azure Databricks rekommenderar dock 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 själv. PAT:er exponerar risken för långlivade token som ger utgående möjligheter om de inte regelbundet granskas och roteras eller återkallas, eller om tokensträngarna och lösenorden inte hanteras på ett säkert sätt för utvecklingsmiljön.
Hur gör jag för att använda OAuth för att autentisera med Azure Databricks?
Azure Databricks tillhandahåller enhetlig klientautentisering som hjälper dig med autentisering 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 autentisering med användarkonton (från användare till dator) hanteras Azure Databricks OAuth åt dig med enhetlig autentisering med 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 kodutmaningspar.
- För autentisering med tjänstens huvudnamn (maskin-till-dator) 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 en 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:
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 din Azure Databricks-arbetsyta (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 CLI-kommandon på Azure Databricks-kontonivå eller REST API-begäranden anger 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. Information om hur du hämtar det finns i Hitta ditt konto-ID.DATABRICKS_CLIENT_ID
: (endast M2M OAuth) Klient-ID:t som du tilldelades när du skapade tjänstens huvudnamn.DATABRICKS_CLIENT_SECRET
: (endast M2M OAuth) Klienthemligheten som du genererade när du skapade tjänstens huvudnamn.
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 med hjälp av ett huvudnamn för Databricks-tjänsten. 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 tjänstens huvudnamn och ID för MS Entra. 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 autentisera. 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.