Get Tokenty ID Microsoft Entra pro služební identity
Důležité
Tato část popisuje, jak ručně get tokeny ID Microsoft Entra pro servisní principály.
Spravované instanční objekty Azure Databricks se spravují přímo v Azure Databricks. Spravované instanční objekty Microsoft Entra ID se spravují v MICROSOFT Entra ID, které vyžadují další oprávnění. Databricks doporučuje, abyste ve většině případů používali spravované instanční objekty Azure Databricks. Databricks ale doporučuje používat instanční objekty spravované pomocí Id Microsoft Entra v případech, where musíte provést ověření ve službě Azure Databricks a dalších prostředcích Azure najednou.
Pokud chcete vytvořit spravovaný instanční objekt Azure Databricks místo instančního objektu spravovaného id Microsoft Entra, přečtěte si téma Správa instančních objektů.
Databricks nedoporučuje vytvářet tokeny ID Microsoft Entra pro instanční objekty Microsoft Entra ID ručně. Důvodem je to, že každý token Microsoft Entra ID je krátkodobý, obvykle vyprší do jedné hodiny. Po této době musíte ručně generate náhradní token Microsoft Entra ID. Místo toho použijte jeden z zúčastněných nástrojů nebo sad SDK, které implementují jednotný ověřovací standard klienta Databricks. Tyto nástroje a sady SDK automaticky generate a nahradí tokeny ID Microsoft Entra, jejichž platnost vypršela, s využitím následujících typů ověřování Databricks:
- Ověřování spravovaných identit Azure
- Ověřování instančního objektu MS Entra
- Ověřování přes Azure CLI
Pokud nemáte instanční objekt, můžete ho zřídit pomocí jedné z těchto sad pokynů:
Tento článek popisuje, jak může instanční objekt definovaný v ID Microsoft Entra fungovat také jako objekt, na kterém se dají vynucovat zásady ověřování a autorizace v Azure Databricks. Pro instanční objekty v pracovním prostoru Azure Databricks může platit jiné podrobné řízení přístupu než pro běžné uživatele (objekty zabezpečení uživatelů).
Instanční objekty můžete spravovat v Databricks nebo pomocí následujícího postupu na webu Azure Portal.
Knihovnu MSAL (Microsoft Authentication Library) můžete použít také k programovému get přístupový token Microsoft Entra ID pro uživatele místo instančního objektu. Viz Get tokeny systému Microsoft Entra ID pro uživatele pomocí MSAL.
Zřízení instančního objektu na webu Azure Portal
Přihlaste se k portálu Azure.
Poznámka:
Portál, který se má použít, se liší v závislosti na tom, jestli vaše aplikace Microsoft Entra ID běží ve veřejném cloudu Azure nebo v národním nebo suverénním cloudu. Další informace najdete v tématu Národní cloudy.
Pokud máte přístup k více tenantům, předplatným nebo adresářům, klikněte v horní nabídce na ikonu Adresáře a předplatná (adresář s filtrem) a přepněte do adresáře, ve kterém chcete zřídit instanční objekt.
Vyhledejte v Prostředky, služby a dokumenty, vyhledejte a selectMicrosoft Entra ID.
Klikněte na + Přidat a selectregistrace aplikace.
Jako Název zadejte název aplikace.
V části Podporované typy účtůselectÚčty v tomto adresáři organizace (pouze jeden tenant).
Klikněte na Zaregistrovat.
Na stránce Přehled stránky aplikace, v části Základy zkopírujte následující values:
- ID aplikace (klienta)
- ID adresáře (tenanta)
Pokud chcete vygenerovat generate tajný klíč klienta, klikněte v rámci Správana Certifikáty a tajné klíče &.
Poznámka:
Tento tajný klíč klienta použijete k generate tokenů ID Microsoft Entra pro ověřování instančních objektů služby Microsoft Entra ID pomocí Azure Databricks. Pokud chcete zjistit, jestli nástroj Azure Databricks nebo sada SDK můžou používat tokeny ID Microsoft Entra, přečtěte si dokumentaci k nástroji nebo sadě SDK.
Na kartě Tajné kódy klienta klikněte na Nový tajný klíč klienta.
V podokně Přidat tajný klíč klienta zadejte popis tajného klíče klienta.
Pro vyprší, select časové období vypršení platnosti tajného klíče klienta a potom klepněte na tlačítko Přidat.
Zkopírujte a uložte hodnotu tajného klíče klienta na bezpečném místě, protože tento tajný klíč klienta je heslo pro vaši aplikaci.
Zřízení instančního objektu pomocí Azure CLI
Viz Vytvoření instančního objektu Microsoft Entra ID (dříve Azure Active Directory) pomocí Azure CLI.
Get přístupový token Microsoft Entra ID s rozhraním Microsoft Identity Platform REST API
Důležité
Tato část popisuje, jak ručně get token Entra ID pro služebního principála pomocí rozhraní REST API platformy Microsoft Identity.
Databricks nedoporučuje vytvářet tokeny ID Microsoft Entra pro instanční objekty Microsoft Entra ID ručně. Důvodem je to, že každý token Microsoft Entra ID je krátkodobý, obvykle vyprší do jedné hodiny. Po této době musíte ručně generate náhradní token Microsoft Entra ID. Místo toho použijte jeden z zúčastněných nástrojů nebo sad SDK, které implementují jednotný ověřovací standard klienta Databricks. Tyto nástroje a sady SDK automaticky generate a nahrazují tokeny Microsoft Entra ID, jejichž platnost vypršela, s využitím následujících typů ověřování Databricks:
Pokud chcete získat přístup k rozhraní Databricks REST API pomocí instančního objektu, get a pak pro instanční objekt použijte přístupový token ID Microsoft Entra. Další informace najdete v tématu První případ: Žádost o přístupový token se sdíleným tajným kódem.
Tip
Azure CLI můžete také použít k get přístupového tokenu Microsoft Entra ID. Zobrazte Get přístupový token Microsoft Entra ID pomocí Azure CLI.
Shromážděte následující informace:
Parametr Popis Tenant ID
Pro Directory (tenant) ID
související aplikaci zaregistrovanou v Microsoft Entra ID.Client ID
Pro Application (client) ID
související aplikaci zaregistrovanou v Microsoft Entra ID.Client secret
Tajný Value
klíč klienta pro související aplikaci zaregistrovanou v Microsoft Entra ID.Pomocí předchozích informací a curl k získání přístupového tokenu Microsoft Entra ID get.
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>'
Nahrazení:
-
<tenant-id>
s ID tenanta registrované aplikace. -
<client-id>
s ID klienta registrované aplikace. -
<client-secret>
s hodnotou tajného klíče klienta registrované aplikace.
Neměňte hodnotu parametru
scope
. Představuje programové ID pro Azure Databricks (2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
) spolu s výchozím oborem (/.default
, zakódovaným jako%2f.default
adresa URL).Příklad:
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'
Přístupový token Microsoft Entra ID je v
access_token
hodnotě ve výstupu volání.-
Get přístupový token Microsoft Entra ID pomocí Azure CLI
Důležité
Tato část popisuje, jak ručně get identifikační token Microsoft Entra pro aplikační objekt pomocí Azure CLI.
Databricks nedoporučuje vytvářet tokeny ID Microsoft Entra pro instanční objekty Microsoft Entra ID ručně. Důvodem je to, že každý token Microsoft Entra ID je krátkodobý, obvykle vyprší do jedné hodiny. Po této době musíte ručně generate náhradní token Microsoft Entra ID. Místo toho použijte jeden z zúčastněných nástrojů nebo sad SDK, které implementují jednotný ověřovací standard klienta Databricks. Tyto nástroje a sady SDK automaticky generate a nahradí tokeny ID Microsoft Entra, jejichž platnost vypršela, s využitím následujících typů ověřování Databricks:
- Ověřování spravovaných identit Azure
- Ověřování instančního objektu MS Entra
- Ověřování přes Azure CLI
Pokud chcete získat přístup k rozhraní Databricks REST API pomocí instančního objektu, get a pak pro instanční objekt použijte přístupový token ID Microsoft Entra.
Shromážděte následující informace:
Parametr Popis Tenant ID
Pro Directory (tenant) ID
související aplikaci zaregistrovanou v Microsoft Entra ID.Client ID
Pro Application (client) ID
související aplikaci zaregistrovanou v Microsoft Entra ID.Client secret
Tajný Value
klíč klienta pro související aplikaci zaregistrovanou v Microsoft Entra ID.Get toto správné ID předplatného Azure pro service principal Microsoft Entra ID, pokud toto ID ještě neznáte, zjistěte podle jedné z následujících možností:
V horním navigačním panelu pracovního prostoru Azure Databricks klikněte na své uživatelské jméno a potom klikněte na Azure Portal. Na stránce prostředku pracovního prostoru Azure Databricks, která se zobrazí, klikněte na bočním panelu na Přehled . Pak vyhledejte pole ID předplatného, které obsahuje ID předplatného.
Pomocí Azure CLI spusťte příkaz az databricks workspace list s využitím možností
--query
a-o
nebo--output
pro zúžení výsledků. Nahraďteadb-0000000000000000.0.azuredatabricks.net
názvem vaší instance pracovního prostoru, nikoli názvemhttps://
. V tomto příkladu00000000-0000-0000-0000-000000000000
/subscriptions/
následuje ve výstupu ID předplatného.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
Pokud se zobrazí následující zpráva, jste přihlášeni k nesprávnému tenantovi:
The subscription of '<subscription-id>' doesn't exist in cloud 'AzureCloud'.
Pokud se chcete přihlásit ke správnému tenantovi, musíte příkaz spustitaz login
znovu pomocí-t
možnosti nebo--tenant
zadat správné ID tenanta.ID tenanta pro pracovní prostor Azure Databricks můžete get spuštěním příkazu
curl -v <per-workspace-URL>/aad/auth
a nalezením ve výstupu< location: https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000
, where00000000-0000-0000-0000-000000000000
je ID tenanta. Viz také Get ID předplatného a tenanta na portálu Azure.az login -t <tenant-id>
Jakmile budete mít správné ID tenanta Azure, ID klienta, tajný klíč klienta a ID předplatného instančního objektu Microsoft Entra ID, přihlaste se k Azure pomocí Azure CLI a spusťte příkaz az login . Použijte možnost
--service-principal
spolu s určením values pro parametersTenant ID
(Directory (tenant) ID
),Client ID
(Application (client) ID
) aClient secret
(Value
) pro související aplikaci registrovanou v ID Microsoft Entra.az login \ --service-principal \ -t <Tenant-ID> \ -u <Client-ID> \ -p <Client-secret>
Ověřte, že jste přihlášeni ke správnému předplatnému instančního objektu Microsoft Entra ID. Uděláte to tak, že spustíte příkaz az account set pomocí možnosti
-s
nebo--subscription
a zadáte správné ID předplatného.az account set -s <subscription-id>
Generate přístupový token Microsoft Entra ID pro přihlášený služební principál Microsoft Entra ID spuštěním příkazu az account get-access-token.
--resource
Pomocí možnosti zadejte jedinečné ID prostředku pro službu Azure Databricks, což je2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
. Hodnotu tokenu Microsoft Entra ID můžete zobrazit ve výstupu příkazu pomocí--query
a-o
nebo--output
možností.az account get-access-token \ --resource 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d \ --query "accessToken" \ -o tsv
Použití přístupového tokenu Microsoft Entra ID instančního objektu pro přístup k rozhraní Databricks REST API
Důležité
Tato část popisuje, jak používat curl
přístupový token Microsoft Entra ID instančního objektu pro přístup k rozhraní Databricks REST API.
curl
Místo toho můžete použít některý z zúčastněných nástrojů nebo sad SDK, které implementují jednotný ověřovací standard klienta Databricks. Tyto nástroje a sady SDK také automaticky provádějí akci generate a nahrazují tokeny Microsoft Entra ID, jejichž platnost vypršela, přičemž využívají následující typy ověřování Databricks:
Instanční objekt, který je uživatelem Databricks, se může ověřit v rozhraní Databricks REST API pomocí tokenů ID Microsoft Entra.
Instanční objekt se také může do pracovního prostoru přidat jako správce pracovního prostoru, pokud má roli Přispěvatel nebo Vlastník pro cílový prostředek pracovního prostoru v Azure. Pokud je instanční objekt v cílovém pracovním prostoru přispěvatelem nebo vlastníkem a chcete ho přidat do pracovního prostoru pomocí tokenu ID Microsoft Entra, přejděte k rozhraní API na úrovni pracovního prostoru pro instanční objekty, které nejsou uživateli Azure Databricks.
Jinak pokračujte v přístupu k rozhraní API pro instanční objekty, které jsou uživateli a správci Azure Databricks.
Přístup k rozhraní API pro instanční objekty, které jsou uživateli a správci Azure Databricks
K dokončení tohoto postupu musíte nejprve přidat instanční objekt do účtu nebo pracovního prostoru Azure Databricks. Instanční objekt můžete přidat přímo do svého účtu bez udělení přístupu k pracovnímu prostoru pomocí rozhraní API SCIM (Account).
Instanční objekt můžete přidat do pracovního prostoru pomocí koncového bodu rozhraní API instančních objektů. Tím se také přidá instanční objekt do vašeho účtu Azure Databricks. Příklad:
Pomocí Rozhraní příkazového řádku Databricks verze 0.205 nebo vyšší (doporučeno):
Přidejte instanční objekt:
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>
Update oprávnění pracovního prostoru aplikační služby:
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"
]
}
Viz Ověřování pro rozhraní příkazového řádku Databricks.
Pomocí 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
}
Pokud platí některý z následujících způsobů, přeskočte k přístupu k rozhraní API na úrovni pracovního prostoru pro instanční objekty, které nejsou uživateli Azure Databricks:
- Rozhraní REST API Služby Azure Databricks, které chcete volat, vyžaduje přístup správce pracovního prostoru a instanční objekt je členem pracovního prostoru, ale v současné době nemá přístup správce k pracovnímu prostoru.
- Instanční objekt ještě nebyl přidán do cílového pracovního prostoru Azure Databricks.
Shromážděte následující informace.
Parametr Popis Přístupový token Microsoft Entra ID Přístupový token Microsoft Entra ID vrácený z požadavku v Get přístupový token Microsoft Entra ID s rozhraním REST API platformy Microsoft identity nebo Get přístupový token Microsoft Entra ID pomocí Azure CLI. Pomocí přístupového tokenu Microsoft Entra ID spolu s
curl
voláním rozhraní REST API Databricks. Příklad:Pomocí Rozhraní příkazového řádku Databricks verze 0.205 nebo vyšší (doporučeno):
databricks clusters list -p <profile-name-that-references-azure-ad-access-token>
Viz Ověřování pro rozhraní příkazového řádku Databricks.
Pomocí
curl
:curl -X GET \ -H 'Authorization: Bearer <access-token>' \ https://<databricks-instance>/api/2.0/clusters/list
Nahrazení:
-
<access-token>
s přístupovým tokenem Microsoft Entra ID. -
<databricks-instance>
s adresou URL pro jednotlivé pracovní prostory nasazení Azure Databricks. -
GET
a/api/2.0/clusters/list
s odpovídající operací HTTP a koncovým bodem pro cílové rozhraní Databricks REST API.
Příklad:
curl -X GET \ -H 'Authorization: Bearer <access-token>' \ https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/list
-
Přístup k rozhraní API na úrovni pracovního prostoru pro instanční objekty, které nejsou uživateli Azure Databricks
Pokud je splněna některá z následujících podmínek, postupujte podle tohoto postupu:
- Rozhraní REST API Služby Azure Databricks, které chcete volat, vyžaduje přístup správce pracovního prostoru a instanční objekt je členem pracovního prostoru, ale v současné době nemá přístup správce k pracovnímu prostoru.
- Instanční objekt ještě nebyl přidán do cílového pracovního prostoru Azure Databricks.
Požadavky:
- Instanční objekt vyžaduje roli Přispěvatel nebo Vlastník v cílovém prostředku pracovního prostoru v Azure.
Shromážděte následující informace:
Parametr Popis ID tenanta ID adresáře (tenanta) pro související aplikaci zaregistrovanou v Microsoft Entra ID ve zřízení instančního objektu na webu Azure Portal. Client ID ID aplikace (klienta) pro související aplikaci zaregistrovanou v Microsoft Entra ID. Tajný klíč klienta Hodnota tajného klíče klienta pro související aplikaci zaregistrovanou v MICROSOFT Entra ID, které jste vytvořili ve zřízení instančního objektu na webu Azure Portal. Přístupový token Microsoft Entra ID Přístupový token Microsoft Entra ID vrácený z požadavku v Get je přístupový token Microsoft Entra ID s rozhraním REST API platformy Microsoft Identity Platform nebo Get je přístupový token Microsoft Entra ID pomocí Azure CLI. Subscription ID ID (nikoli název) předplatného Azure, které je přidružené k cílovému pracovnímu prostoru Azure Databricks. Informace ohledně get a následujících informací najdete v tématu Otevřené zdroje. Pokud chcete cílový prostředek otevřít, můžete vyhledat typ služby Azure Databricks a všechny další informace v Azure, které znáte o cílovém pracovním prostoru Azure Databricks. Název skupiny prostředků Název skupiny prostředků Azure, která je přidružená k cílovému pracovnímu prostoru Azure Databricks. Název pracovního prostoru Název v Azure cílového pracovního prostoru Azure Databricks. Použijte některé z předchozích informací spolu s
curl
pro generování přístupového tokenu ke koncovému bodu správy Microsoft Entra ID do get.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>'
Nahrazení:
-
<tenant-id>
s ID tenanta registrované aplikace. -
<client-id>
s ID klienta registrované aplikace. -
<client-secret>
s hodnotou tajného klíče klienta registrované aplikace.
Neměňte hodnotu parametru
resource
. Představuje koncový bod správy Microsoft Entra ID (https://management.core.windows.net/
kódovaný jakohttps%3A%2F%2Fmanagement.core.windows.net%2F
adresa URL).Příklad:
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'
Přístupový token koncového bodu správy ID Microsoft Entra je v
access_token
hodnotě ve výstupu volání.-
Použijte přístupový token koncového bodu správy Microsoft Entra ID spolu se zbývajícími informacemi a
curl
volejte rozhraní REST API Databricks, například: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
Nahrazení:
<access-token>
s přístupovým tokenem Microsoft Entra ID.-
<management-access-token>
s přístupovým tokenem koncového bodu správy Microsoft Entra ID. -
<subscription-id>
s ID předplatného přidruženého k cílovému pracovnímu prostoru Azure Databricks. -
<resource-group-name>
s názvem skupiny prostředků, která je přidružená k cílovému pracovnímu prostoru Azure Databricks. -
<workspace-name>
s názvem cílového pracovního prostoru Azure Databricks. -
<databricks-instance>
s adresou URL pro jednotlivé pracovní prostory nasazení Azure Databricks. -
GET
a/api/2.0/clusters/list
s odpovídající operací HTTP a koncovým bodem pro cílové rozhraní Databricks REST API.
Příklad:
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
-
Po ověření v pracovním prostoru se instanční objekt stane správcem pracovního prostoru Azure Databricks a už pro přístup k pracovnímu prostoru nepotřebuje roli Přispěvatel nebo Vlastník.