Delen via


Een Microsoft Entra-service-principal gebruiken om toegang tot Azure Databricks Git-mappen te verifiëren

Meer informatie over het configureren van geverifieerde toegang tot Azure Databricks Git-mappen die worden gehost door Azure DevOps (Azure Repos) met een Microsoft Entra-service-principal.

Als u Databricks Git-mappen hebt in uw Databricks-project dat wordt ondersteund door Azure Repos Git-opslagplaatsen en u deze wilt beheren in uw automatisering, kunt u de informatie in dit artikel gebruiken om de verificatie te configureren met behulp van een Microsoft Entra-service-principal en Azure DevOps. Nadat u deze taak hebt voltooid, hebt u een geverifieerde Databricks Git-referentie die u in uw automatisering kunt gebruiken.

Waarom Microsoft Entra gebruiken en geen PAT?

In het verleden waren persoonlijke toegangstokens (PAT's) de voorkeurswijze om te verifiëren bij het aanroepen van een API waarvoor specifieke toegang en machtigingen voor resources zijn vereist. Deze bearertokens vertegenwoordigden een gebruikersnaam en wachtwoord en vereist regelmatige rotatie om het beveiligingsrisico te minimaliseren dat ze hebben gepresenteerd. Met Microsoft Entra ID-toegangstokens wordt dit probleem aangepakt door deze tokens elk uur automatisch te beheren. Databricks raadt ze aan als best practice bij het werken met Azure-resources. Door een Microsoft Entra-service-principal te maken, kunt u de machtigingen beheren die zijn verleend voor toegang tot deze resources zonder een Microsoft Azure-gebruikersaccount te gebruiken.

Vereisten

U moet over het volgende beschikken:

  • Toegang tot een Azure DevOps-project met een Git-opslagplaats voor Azure-opslagplaatsen die is verbonden met een Databricks Git-map.
  • Machtigingen voor uw Azure-account om een MS Entra-service-principal te maken.
  • De Azure CLI is geïnstalleerd.
  • De Databricks CLI is geïnstalleerd.

Stap 1: Een Microsoft Entra-service-principal maken

U kunt deze stap overslaan als u al een geconfigureerde Microsoft Entra-service-principal hebt.

Als u een Microsoft Entra-service-principal wilt maken, volgt u de stappen in de Microsoft Azure-documentatie: Een Microsoft Entra-app registreren en een service-principal maken. Negeer in de sectie Verificatie instellen van dit artikel de eerste twee opties en volg de stappen in Optie 3: Een nieuw clientgeheim maken.

Nadat u deze hebt ingesteld, hebt u het volgende:

  • Een clientgeheim. Het wordt weergegeven als een lange tekenreeks met willekeurig verschijnende tekens.
    • Een service-principal-id. Dit is de unieke naam waaraan u de MS Entra-service-principal hebt toegewezen. Als best practice moet de naam ook informatie bevatten die aangeeft hoe en wanneer deze moet worden gebruikt (bijvoorbeeld Databricks_CICD_SP).

(U kunt de optionele omleidingsgebruikersinterface negeren in het dialoogvenster MS Entra-configuratie, omdat deze niet wordt gebruikt in deze configuratie.)

Kopieer deze ergens naar beneden, omdat u ze in toekomstige stappen gaat gebruiken. Nadat u het proces in deze documentatie hebt voltooid, kunt u deze informatie beveiligen of verwijderen.

Stap 2: Azure DevOps-machtigingen configureren voor de MS Entra-service-principal

Eerst moet u uw MS Entra-service-principal toestemming verlenen voor toegang tot uw Azure DevOps-resources. Hiervoor moet u de Azure DevOps-portal gebruiken.

  1. Meld u aan bij uw Azure DevOps-account en navigeer naar uw project.

  2. Klik onder Machtigingen voor projectinstellingen>op Lezers.

    De inhoud van het deelvenster Leden onder Machtigingen in de Projectinstellingen van Azure DevOps

  3. Klik op het tabblad Leden , klik op Toevoegen en voeg vervolgens de naam toe van de MS Entra-service-principal die u hebt gemaakt.

  4. Ga in de console terug naar het organisatieniveau van uw Azure DevOps-organisatie en klik onderaan het linkerdeelvenster op Organisatie-instellingen .

  5. Klik op Gebruikers>toevoegen gebruiker en configureer vervolgens de toegang voor uw service-principal als volgt:

    • Voeg uw MS Entra-service-principal toe met behulp van de id die u eerder hebt gemaakt.
    • Configureer de toegang voor de service-principal tot het minimale niveau dat nodig is om bewerkingen uit te voeren in Azure-opslagplaatsen. Meestal zijn machtigingen op basisniveau voldoende. Als u niet zeker weet welk niveau u moet gebruiken, neemt u contact op met de beheerder van uw Azure DevOps-organisatie.
    • Voeg de service-principal toe aan het Azure DevOps-project.
    • Wijs de service-principal toe aan de groep Projectbijdragers.

    De inhoud van het deelvenster Gebruikers in de organisatie-instellingen van Azure DevOps

Stap 3: Machtigingen toewijzen aan de service-principal in Azure Databricks

U moet ook machtigingen binnen Azure Databricks toewijzen aan uw Microsoft Entra-service-principal.

  1. Meld u aan bij de beheerconsole van het Azure Databricks-account voor uw account.
  2. Klik op Gebruikers en groepen.
  3. Klik op het tabblad Service-principals en klik vervolgens op Service-principal toevoegen. Het tabblad Service-principals onder Gebruikers en groepen in de Beheerconsole van het Databricks-account
  4. Klik op de pagina Service-principal toevoegen op Microsoft Entra ID beheerd en voeg vervolgens uw Microsoft Entra-toepassings-id en de naam van de service-principal toe uit stap 1: Een Microsoft Entra-service-principal maken. Klik op Toevoegen wanneer u klaar bent. Het dialoogvenster Service-principal toevoegen in de Beheerconsole van het Databricks-account
  5. Klik op de toegevoegde Microsoft Entra-service-principal om het tabblad Principal-informatie weer te geven.
  6. Klik op Geheim genereren linksonder op de pagina om een OAuth-geheim te genereren. Met dit geheim kunt u Azure Databricks API-aanroepen verifiëren met behulp van de Databricks CLI.
  7. Kopieer de geheime tekenreeks en de client-id en klik vervolgens op Gereed. U gebruikt beide in de volgende stap. Selecteer Gereed. het Geheim genereren dialoogvenster in de beheerconsole van het Databricks-account
  8. Klik in de linkerzijbalk op Werkruimten, kies uw werkruimte en klik vervolgens op het tabblad Machtigingen .
  9. Verleen uw service-principal de machtigingen van 'Gebruiker' en klik vervolgens op Machtigingen toevoegen.

Belangrijk

Als het tabblad Machtigingen grijs wordt weergegeven, wordt uw Azure Databricks-werkruimte niet toegewezen aan een Unity Catalog-metastore. Neem contact op met uw Databricks-beheerder.

Vervolgens maakt u uw Azure Databricks Git-referentie.

Stap 4: Maak een Microsoft Entra ID-toegangstoken en sla het op als een Azure Databricks Git-referentie.

Notitie

Voor deze stap is het gebruik van zowel de Azure- als databricks-CLIs vereist.

Als u zich wilt verifiëren bij Azure Databricks, moet u een configuratieprofiel (.databrickscfg) hebben geconfigureerd met het OAuth-geheim dat u in de vorige stap hebt gemaakt. Als u deze configuratie wilt instellen, opent u het .databrickscfg-bestand in de editor en voegt u het volgende toe aan het bestand:

[DEFAULT]
host = https://<workspace-url>.azuredatabricks.net/
client_id = <service principal ID>
client_secret = <Databricks OAuth token value>

Waar host de URL naar uw Databricks-werkruimte is, is client_id de service-principal-id van Microsoft Entra en client_secret het OAuth-clientgeheim is dat u hebt gemaakt in stap 3: Machtigingen toewijzen aan de service-principal in Azure Databricks.

U moet nu over de volgende waarden beschikken om CLI-aanroepen te doen in dit proces.

  • De client-id van de service-principal uit stap 1 of 3: deze moeten hetzelfde zijn. (sp_id in de volgende CLI-voorbeelden.)
  • De naam van de service-principal uit stap 1. (sp_name)
  • De clientgeheimtekenreeks van de service-principal uit stap 1. (sp_secret)
  • De naam van uw Azure DevOps-organisatie. (devops_org)
  • De naam van uw Azure DevOps-project. (devops_project)
  • De naam van de Opslagplaats voor Azure-opslagplaatsen. (devops_repo)

Daarnaast hebt u de Azure-tenant-id (tenant_id in de volgende voorbeelden) nodig voor uw Azure-abonnement. Volg deze instructies om het op te halen uit de Azure portal.

U kunt nu een Git-referentie maken vanuit de Azure CLI.

  1. Open een opdrachtregelvenster met toegang tot de Azure- en Databricks-CLIs.
  2. Voer de volgende Azure CLI-opdracht uit om u aan te melden als de Microsoft Entra-service-principal: az login --allow-no-subscriptions --service-principal -u $sp_id -p $sp_secret --tenant $tenant_id
  3. Als de Microsoft Entra-service-principal vraagt u een Microsoft Entra ID-toegangstoken aan en wijst u dit toe aan een variabele: ENTRA_ID_TOKEN=$(az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" --output tsv)
  4. Gebruik het toegangstoken om een Git-referentie te maken voor Azure Databricks-toegang met behulp van de machtigingsniveaus die u hiervoor hebt geconfigureerd: databricks git-credentials create azureDevOpsServices --personal-access-token $ENTRA_ID_TOKEN --git-username $sp_name
  5. Maak ten slotte een nieuwe Git-map met behulp van de Microsoft Entra-service-principal: databricks repos create \https://$sp_name@dev.azure.com/$devops_org/$devops_project/_git/$devops_repo

De bijbehorende Git-map voor deze Azure DevOps-opslagplaats is nu beschikbaar in uw Azure Databricks-werkruimte. U kunt de Git-referentie opgeven om deze te beheren vanuit uw code met behulp van de REST API's van Databricks Repos of de Databricks CLI.

U hebt nu geleerd hoe u een Microsoft Entra ID-toegangstoken genereert dat is gericht op Azure DevOps en het opslaat als een Databricks Git-referentie.

Aanbevolen procedures

Het Entra ID-entreetoken is kortstondig, dus uw pijplijn moet de Databricks Git-referentie bijwerken met git-credentials update. Vervolgens kunt u een pull-aanvraag activeren met behulp van databricks repos update.

Belangrijk

Er zijn extra beveiligingsmaatregelen vereist in een productie-instelling. In een productieomgeving moet u het clientgeheim van de service-principal en het Databricks OAuth-token opslaan in een beveiligd geheimarchief, zoals Azure Key Vault.

Zie ook