Microsoft Entra ID-tokens ophalen voor service-principals
Belangrijk
In deze sectie wordt beschreven hoe u handmatig Microsoft Entra ID-tokens voor service-principals kunt ophalen.
Beheerde Azure Databricks-service-principals worden rechtstreeks binnen Azure Databricks beheerd. Beheerde service-principals van Microsoft Entra ID worden beheerd in Microsoft Entra-id, waarvoor aanvullende machtigingen zijn vereist. Databricks raadt u aan om beheerde service-principals van Azure Databricks te gebruiken voor de meeste gebruiksvoorbeelden. Databricks raadt u echter aan om beheerde service-principals van Microsoft Entra ID te gebruiken in gevallen waarin u zich tegelijkertijd moet verifiëren met Azure Databricks en andere Azure-resources.
Als u een door Azure Databricks beheerde service-principal wilt maken in plaats van een door Microsoft Entra ID beheerde service-principal, raadpleegt u Service-principals beheren.
Databricks raadt u niet aan om Handmatig Microsoft Entra ID-tokens te maken voor Microsoft Entra ID-service-principals. Dit komt doordat elk Microsoft Entra ID-token kort duurt, meestal binnen één uur verloopt. Na deze tijd moet u handmatig een vervangend Microsoft Entra ID-token genereren. Gebruik in plaats daarvan een van de deelnemende hulpprogramma's of SDK's die de geïntegreerde verificatiestandaard van de Databricks-client implementeren. Deze hulpprogramma's en SDK's genereren en vervangen automatisch verlopen Microsoft Entra ID-tokens voor u, waarbij gebruik wordt gemaakt van de volgende Databricks-verificatietypen:
- Verificatie van door Azure beheerde identiteiten
- Verificatie van MS Entra-service-principal
- Azure CLI-verificatie
Als u geen service-principal hebt, kunt u er een inrichten door een van deze reeks instructies te volgen:
In dit artikel wordt beschreven hoe een service-principal die is gedefinieerd in Microsoft Entra ID, ook kan fungeren als een principal waarop verificatie- en autorisatiebeleid kan worden afgedwongen in Azure Databricks. Service-principals in een Azure Databricks-werkruimte kunnen een ander fijnmazig toegangsbeheer hebben dan gewone gebruikers (user-principals).
Een service-principal fungeert als een clientrol en gebruikt de OAuth 2.0-clientreferentiestroom om toegang tot Azure Databricks-resources te autoriseren.
U kunt service-principals beheren in Databricks of met behulp van de volgende procedure vanuit Azure Portal.
U kunt ook de Microsoft Authentication Library (MSAL) gebruiken om programmatisch een Microsoft Entra ID-toegangstoken op te halen voor een gebruiker in plaats van een service-principal. Zie Tokens voor Microsoft Entra-id's ophalen voor gebruikers met behulp van MSAL.
Een service-principal inrichten in Azure Portal
Meld u aan bij het Azure-portaal.
Notitie
De portal die moet worden gebruikt, is afhankelijk van of uw Microsoft Entra ID-toepassing wordt uitgevoerd in de openbare Azure-cloud of in een nationale of onafhankelijke cloud. Zie Nationale clouds voor meer informatie.
Als u toegang hebt tot meerdere tenants, abonnementen of mappen, klikt u op het pictogram Mappen en abonnementen (directory met filter) in het bovenste menu om over te schakelen naar de map waarin u de service-principal wilt inrichten.
Zoek in zoekbronnen, services en documenten naar Microsoft Entra-id en selecteer deze.
Klik op + Toevoegen en selecteer App-registratie.
Voer bij Naam een naam in voor de toepassing.
Selecteer in de sectie Ondersteunde accounttypen alleen Accounts in deze organisatiemap (één tenant).
Klik op Registreren.
Kopieer op de overzichtspagina van de toepassingspagina in de sectie Essentials de volgende waarden:
- Toepassings-id (client)
- Map-id (tenant)
Als u een clientgeheim wilt genereren, klikt u in Beheren op Certificaten en geheimen.
Notitie
U gebruikt dit clientgeheim om Microsoft Entra ID-tokens te genereren voor het verifiëren van service-principals voor Microsoft Entra ID met Azure Databricks. Als u wilt bepalen of een Azure Databricks-hulpprogramma of SDK Microsoft Entra ID-tokens kan gebruiken, raadpleegt u de documentatie van het hulpprogramma of de SDK.
Klik op het tabblad Clientgeheimen op Nieuw clientgeheim.
Voer in het deelvenster Een clientgeheim toevoegen voor Beschrijving een beschrijving in voor het clientgeheim.
Voor Verlopen selecteert u een verloopperiode voor het clientgeheim en klikt u op Toevoegen.
Kopieer en sla de waarde van het clientgeheim op een veilige plaats op, omdat dit clientgeheim het wachtwoord is voor uw toepassing.
Een service-principal inrichten met de Azure CLI
Een Microsoft Entra ID-toegangstoken ophalen met de REST API van het Microsoft Identity Platform
Belangrijk
In deze sectie wordt beschreven hoe u handmatig een Microsoft Entra ID-token voor een service-principal opvragen met behulp van de REST API van het Microsoft Identity Platform.
Databricks raadt u niet aan om Handmatig Microsoft Entra ID-tokens te maken voor Microsoft Entra ID-service-principals. Dit komt doordat elk Microsoft Entra ID-token kort duurt, meestal binnen één uur verloopt. Na deze tijd moet u handmatig een vervangend Microsoft Entra ID-token genereren. Gebruik in plaats daarvan een van de deelnemende hulpprogramma's of SDK's die de geïntegreerde verificatiestandaard van de Databricks-client implementeren. Deze hulpprogramma's en SDK's genereren en vervangen automatisch verlopen Microsoft Entra ID-tokens voor u, waarbij gebruik wordt gemaakt van de volgende Databricks-verificatietypen:
Als u toegang wilt krijgen tot de Databricks REST API met de service-principal, krijgt en gebruikt u vervolgens een Microsoft Entra ID-toegangstoken voor de service-principal. Zie Eerste geval: Toegangstokenaanvraag met een gedeeld geheim voor meer informatie.
Tip
U kunt de Azure CLI ook gebruiken om het Toegangstoken voor Microsoft Entra ID op te halen. Zie Een Microsoft Entra ID-toegangstoken ophalen met de Azure CLI.
Verzamel de volgende informatie:
Parameter Description Tenant ID
De Directory (tenant) ID
voor de gerelateerde toepassing die is geregistreerd in Microsoft Entra-id.Client ID
De Application (client) ID
voor de gerelateerde toepassing die is geregistreerd in Microsoft Entra-id.Client secret
Het Value
clientgeheim voor de gerelateerde toepassing die is geregistreerd in Microsoft Entra-id.Gebruik de voorgaande informatie samen met curl om het Microsoft Entra ID-toegangstoken op te halen.
curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \ https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token \ -d 'client_id=<client-id>' \ -d 'grant_type=client_credentials' \ -d 'scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default' \ -d 'client_secret=<client-secret>'
Vervangen:
<tenant-id>
met de tenant-id van de geregistreerde toepassing.<client-id>
met de client-id van de geregistreerde toepassing.<client-secret>
met de clientgeheimwaarde van de geregistreerde toepassing.
Wijzig de waarde van de
scope
parameter niet. Het vertegenwoordigt de programmatische id voor Azure Databricks (2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
) samen met het standaardbereik (/.default
url-gecodeerd als%2f.default
).Voorbeeld:
curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \ https://login.microsoftonline.com/a1bc2d34-5e67-8f89-01ab-c2345d6c78de/oauth2/v2.0/token \ -d 'client_id=12a34b56-789c-0d12-e3fa-b456789c0123' \ -d 'grant_type=client_credentials' \ -d 'scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default' \ -d 'client_secret=abc1D~Ef...2ghIJKlM3'
Het Microsoft Entra ID-toegangstoken bevindt zich in de
access_token
waarde in de uitvoer van de aanroep.
Een Microsoft Entra ID-toegangstoken ophalen met de Azure CLI
Belangrijk
In deze sectie wordt beschreven hoe u handmatig een Microsoft Entra ID-token voor een service-principal opgeeft met behulp van de Azure CLI.
Databricks raadt u niet aan om Handmatig Microsoft Entra ID-tokens te maken voor Microsoft Entra ID-service-principals. Dit komt doordat elk Microsoft Entra ID-token kort duurt, meestal binnen één uur verloopt. Na deze tijd moet u handmatig een vervangend Microsoft Entra ID-token genereren. Gebruik in plaats daarvan een van de deelnemende hulpprogramma's of SDK's die de geïntegreerde verificatiestandaard van de Databricks-client implementeren. Deze hulpprogramma's en SDK's genereren en vervangen automatisch verlopen Microsoft Entra ID-tokens voor u, waarbij gebruik wordt gemaakt van de volgende Databricks-verificatietypen:
- Verificatie van door Azure beheerde identiteiten
- Verificatie van MS Entra-service-principal
- Azure CLI-verificatie
Als u toegang wilt krijgen tot de Databricks REST API met de service-principal, krijgt en gebruikt u vervolgens een Microsoft Entra ID-toegangstoken voor de service-principal.
Verzamel de volgende informatie:
Parameter Description Tenant ID
De Directory (tenant) ID
voor de gerelateerde toepassing die is geregistreerd in Microsoft Entra-id.Client ID
De Application (client) ID
voor de gerelateerde toepassing die is geregistreerd in Microsoft Entra-id.Client secret
Het Value
clientgeheim voor de gerelateerde toepassing die is geregistreerd in Microsoft Entra-id.Haal de juiste Azure-abonnements-id op voor de Microsoft Entra ID-service-principal, als u deze id nog niet kent, door een van de volgende handelingen uit te voeren:
Klik in de bovenste navigatiebalk van uw Azure Databricks-werkruimte op uw gebruikersnaam en klik vervolgens op Azure Portal. Klik op de resourcepagina van de Azure Databricks-werkruimte die wordt weergegeven op Overzicht in de zijbalk. Zoek vervolgens naar het veld Abonnements-id , dat de abonnements-id bevat.
Gebruik de Azure CLI om de opdracht az databricks workspace list uit te voeren met behulp van de
--query
en-o
of--output
opties om de resultaten te verfijnen. Vervang dooradb-0000000000000000.0.azuredatabricks.net
de naam van uw werkruimte-exemplaar, niet inclusief dehttps://
. In dit voorbeeld is het00000000-0000-0000-0000-000000000000
na/subscriptions/
in de uitvoer de abonnements-id.az databricks workspace list --query "[?workspaceUrl==\`adb-0000000000000000.0.azuredatabricks.net\`].{id:id}" -o tsv # /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Databricks/workspaces/my-ws
Als het volgende bericht wordt weergegeven, bent u aangemeld bij de verkeerde tenant:
The subscription of '<subscription-id>' doesn't exist in cloud 'AzureCloud'.
als u zich wilt aanmelden bij de juiste tenant, moet u deaz login
opdracht opnieuw uitvoeren met de-t
of--tenant
optie om de juiste tenant-id op te geven.U kunt de tenant-id voor een Azure Databricks-werkruimte ophalen door de opdracht
curl -v <per-workspace-URL>/aad/auth
uit te voeren en in de uitvoer< location: https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000
te kijken, waar00000000-0000-0000-0000-000000000000
is de tenant-id. Zie ook Abonnements- en tenant-id's ophalen in Azure Portal.az login -t <tenant-id>
Nadat u de juiste Azure-tenant-id, client-id, clientgeheim en abonnements-id voor uw Microsoft Entra ID-service-principal hebt, meldt u zich aan bij Azure met behulp van de Azure CLI om de az-aanmeldingsopdracht uit te voeren. Gebruik de
--service-principal
optie samen met het opgeven van de waarden voor de parameters vanTenant ID
(Directory (tenant) ID
),Client ID
() enClient secret
(Application (client) ID
Value
) voor de gerelateerde toepassing die is geregistreerd in Microsoft Entra-id.az login \ --service-principal \ -t <Tenant-ID> \ -u <Client-ID> \ -p <Client-secret>
Controleer of u bent aangemeld bij het juiste abonnement voor uw aangemelde Microsoft Entra ID-service-principal. Voer hiervoor de opdracht az account set uit met behulp van de
-s
of--subscription
optie om de juiste abonnements-id op te geven.az account set -s <subscription-id>
Genereer het Microsoft Entra ID-toegangstoken voor de aangemelde Microsoft Entra ID-service-principal door de opdracht az account get-access-token uit te voeren. Gebruik de
--resource
optie om de unieke resource-id voor de Azure Databricks-service op te geven.2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
U kunt alleen de waarde van het Microsoft Entra ID-token weergeven in de uitvoer van de opdracht met behulp van de--query
en-o
of--output
opties.az account get-access-token \ --resource 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d \ --query "accessToken" \ -o tsv
Het Microsoft Entra ID-toegangstoken van de service-principal gebruiken om toegang te krijgen tot de Databricks REST API
Belangrijk
In deze sectie wordt beschreven hoe u het Microsoft Entra ID-toegangstoken van een service-principal gebruikt curl
om toegang te krijgen tot de Databricks REST API.
In plaats van curl
kunt u een van de deelnemende hulpprogramma's of SDK's gebruiken die de geïntegreerde verificatiestandaard van de Databricks-client implementeren. Deze hulpprogramma's en SDK's genereren en vervangen ook automatisch verlopen Microsoft Entra ID-tokens voor u, waarbij gebruik wordt gemaakt van de volgende Databricks-verificatietypen:
Een service-principal die een Databricks-gebruiker is, kan worden geverifieerd bij de Databricks REST API met Microsoft Entra ID-tokens.
Een service-principal kan zichzelf ook toevoegen als werkruimtebeheerder aan een werkruimte als deze de rol Inzender of Eigenaar heeft voor de doelwerkruimteresource in Azure. Als de service-principal een inzender of eigenaar is in de doelwerkruimte en u deze wilt toevoegen aan een werkruimte met behulp van het Microsoft Entra ID-token, gaat u naar API-toegang op werkruimteniveau voor service-principals die geen Azure Databricks-gebruikers zijn.
Ga anders verder met API-toegang voor service-principals die Azure Databricks-gebruikers en -beheerders zijn.
API-toegang voor service-principals die Azure Databricks-gebruikers en -beheerders zijn
Als u deze procedure wilt voltooien, moet u eerst de service-principal toevoegen aan het Azure Databricks-account of de werkruimte. U kunt uw service-principal rechtstreeks aan uw account toevoegen zonder deze werkruimtetoegang te verlenen met behulp van de SCIM-API (Account).
U kunt uw service-principal toevoegen aan een werkruimte met behulp van het API-eindpunt voor service-principals. Hiermee wordt ook de service-principal toegevoegd aan uw Azure Databricks-account. Voorbeeld:
Door Databricks CLI versie 0.205 of hoger te gebruiken (aanbevolen):
Voeg de service-principal toe:
databricks service-principals create --application-id 12a34b56-789c-0d12-e3fa-b456789c0123 --display-name "My Service Principal" -p <profile-name-that-references-calling-users-access-token>
Werk de werkruimterechten van de service-principal bij:
databricks service-principals patch 1234567890123456 --json @update-service-principal.json -p <profile-name-that-references-access-token>
update-service-principal.json
:
{
"Operations": [
{
"op": "add",
"path": "entitlements",
"value": {
"value": "workspace-acccess",
"value": "allow-cluster-create",
"value": "databricks-sql-access"
}
}
],
"schema": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
]
}
Zie Verificatie voor de Databricks CLI.
Met behulp van curl
:
curl -X POST \
-H 'Authorization: Bearer <access-token>' \
https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/preview/scim/v2/ServicePrincipals \
-H 'Content-type: application/scim+json' \
-d @create-service-principal.json
create-service-principal.json
:
{
"displayName": "My Service Principal",
"applicationId": "12a34b56-789c-0d12-e3fa-b456789c0123",
"entitlements": [
{
"value": "allow-cluster-create"
}
],
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:ServicePrincipal"
],
"active": true
}
Ga verder met API-toegang op werkruimteniveau voor service-principals die geen Azure Databricks-gebruikers zijn als een van de volgende voorwaarden waar is:
- Voor de Azure Databricks REST API die u wilt aanroepen, is beheerderstoegang voor werkruimten vereist en is de service-principal lid van de werkruimte, maar heeft momenteel geen beheerderstoegang tot de werkruimte.
- De service-principal is nog niet toegevoegd aan de Azure Databricks-doelwerkruimte.
Verzamel de volgende informatie.
Parameter Description Microsoft Entra ID-toegangstoken Het Microsoft Entra ID-toegangstoken dat is geretourneerd uit de aanvraag in Een Microsoft Entra ID-toegangstoken ophalen met de MICROSOFT Identity Platform REST API of een Microsoft Entra ID-toegangstoken ophalen met de Azure CLI. Gebruik het Microsoft Entra ID-toegangstoken samen om
curl
de Databricks REST API aan te roepen. Voorbeeld:Door Databricks CLI versie 0.205 of hoger te gebruiken (aanbevolen):
databricks clusters list -p <profile-name-that-references-azure-ad-access-token>
Zie Verificatie voor de Databricks CLI.
Met behulp van
curl
:curl -X GET \ -H 'Authorization: Bearer <access-token>' \ https://<databricks-instance>/api/2.0/clusters/list
Vervangen:
<access-token>
met het Microsoft Entra ID-toegangstoken.<databricks-instance>
met de URL per werkruimte van uw Azure Databricks-implementatie.GET
en/api/2.0/clusters/list
met de juiste HTTP-bewerking en het juiste eindpunt voor de Databricks REST API.
Voorbeeld:
curl -X GET \ -H 'Authorization: Bearer <access-token>' \ https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/list
API-toegang op werkruimteniveau voor service-principals die geen Azure Databricks-gebruikers zijn
Volg deze procedure als een van de volgende waar is:
- Voor de Azure Databricks REST API die u wilt aanroepen, is beheerderstoegang voor werkruimten vereist en is de service-principal lid van de werkruimte, maar heeft momenteel geen beheerderstoegang tot de werkruimte.
- De service-principal is nog niet toegevoegd aan de Azure Databricks-doelwerkruimte.
Vereisten:
- De service-principal vereist de rol Inzender of Eigenaar voor de doelwerkruimteresource in Azure.
Verzamel de volgende informatie:
Parameter Description Tenant-id De directory-id (tenant) voor de gerelateerde toepassing die is geregistreerd in Microsoft Entra-id in Een service-principal inrichten in Azure Portal. Client ID De toepassings-id (client) voor de gerelateerde toepassing die is geregistreerd in Microsoft Entra-id. Clientgeheim De waarde van het clientgeheim voor de gerelateerde toepassing die is geregistreerd in Microsoft Entra-id, die u hebt gemaakt in Een service-principal inrichten in Azure Portal. Microsoft Entra ID-toegangstoken Het Microsoft Entra ID-toegangstoken dat is geretourneerd uit de aanvraag in Een Microsoft Entra ID-toegangstoken ophalen met de MICROSOFT Identity Platform REST API of een Microsoft Entra ID-toegangstoken ophalen met de Azure CLI. Abonnements-id De id (niet de naam) van het Azure-abonnement dat is gekoppeld aan de Azure Databricks-doelwerkruimte. Zie Resources openen om hiertoe te komen en de volgende informatie. Als u de doelresource wilt openen, kunt u zoeken op het azure Databricks-servicetype en andere informatie in Azure die u weet over de Azure Databricks-doelwerkruimte. Naam van de resourcegroep De naam van de Azure-resourcegroep die is gekoppeld aan de Azure Databricks-doelwerkruimte. Werkruimtenaam De naam in Azure van de Azure Databricks-doelwerkruimte. Gebruik enkele van de voorgaande informatie om
curl
een Toegangstoken voor eindpunttoegang voor Microsoft Entra ID-beheer op te halen.curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \ https://login.microsoftonline.com/<tenant-id>/oauth2/token \ -d 'client_id=<client-id>' \ -d 'grant_type=client_credentials' \ -d 'resource=https%3A%2F%2Fmanagement.core.windows.net%2F' \ -d 'client_secret=<client-secret>'
Vervangen:
<tenant-id>
met de tenant-id van de geregistreerde toepassing.<client-id>
met de client-id van de geregistreerde toepassing.<client-secret>
met de clientgeheimwaarde van de geregistreerde toepassing.
Wijzig de waarde van de
resource
parameter niet. Het vertegenwoordigt het Microsoft Entra ID-beheereindpunt (https://management.core.windows.net/
url-gecodeerd alshttps%3A%2F%2Fmanagement.core.windows.net%2F
).Voorbeeld:
curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \ https://login.microsoftonline.com/a1bc2d34-5e67-8f89-01ab-c2345d6c78de/oauth2/token \ -d 'client_id=12a34b56-789c-0d12-e3fa-b456789c0123' \ -d 'grant_type=client_credentials' \ -d 'resource=https%3A%2F%2Fmanagement.core.windows.net%2F' \ -d 'client_secret=abc1D~Ef...2ghIJKlM3'
Het microsoft Entra ID-beheereindpunttoegangstoken bevindt zich in de
access_token
waarde in de uitvoer van de aanroep.Gebruik het microsoft Entra ID-beheereindpunttoegangstoken samen met de rest van de voorgaande informatie en
curl
roep de Databricks REST API aan, bijvoorbeeld:curl -X GET \ -H 'Authorization: Bearer <access-token>' \ -H 'X-Databricks-Azure-SP-Management-Token: <management-access-token>' \ -H 'X-Databricks-Azure-Workspace-Resource-Id: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Databricks/workspaces/<workspace-name>' \ https://<databricks-instance>/api/2.0/clusters/list
Vervangen:
<access-token>
met het Microsoft Entra ID-toegangstoken.<management-access-token>
met het microsoft Entra ID-beheereindpunttoegangstoken.<subscription-id>
met de id van het abonnement dat is gekoppeld aan de Azure Databricks-doelwerkruimte.<resource-group-name>
met de naam van de resourcegroep die is gekoppeld aan de Azure Databricks-doelwerkruimte.<workspace-name>
met de naam van de Azure Databricks-doelwerkruimte.<databricks-instance>
met de URL per werkruimte van uw Azure Databricks-implementatie.GET
en/api/2.0/clusters/list
met de juiste HTTP-bewerking en het juiste eindpunt voor de Databricks REST API.
Voorbeeld:
curl -X GET \ -H 'Authorization:Bearer <access-token>' \ -H 'X-Databricks-Azure-SP-Management-Token: abC1dE...ghIj23kl' \ -H 'X-Databricks-Azure-Workspace-Resource-Id: /subscriptions/12a345...bcd6789e/resourceGroups/my-resource-group/providers/Microsoft.Databricks/workspaces/my-workspace' \ https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/list
Bij verificatie bij de werkruimte wordt de service-principal een beheerder van de Azure Databricks-werkruimte en heeft de rol Inzender of Eigenaar niet meer nodig voor toegang tot de werkruimte.