Získání tokenů ID Microsoft Entra pro instanční objekty

Důležité

Tato část popisuje, jak ručně získat tokeny ID Microsoft Entra pro instanční objekty.

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 však doporučuje používat instanční objekty spravované id Microsoft Entra v případech, kdy je nutné provést ověření pomocí Azure Databricks a dalších prostředků 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ě vygenerovat 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 generují a nahrazují tokeny Microsoft Entra ID pro vás a využívají následující typy ověřování Databricks:

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í objekt funguje jako role klienta a k autorizaci přístupu k prostředkům Azure Databricks používá tok přihlašovacích údajů klienta OAuth 2.0.

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 získání přístupového tokenu MICROSOFT Entra ID pro uživatele místo instančního objektu. Viz Získání tokenů ID Microsoft Entra pro uživatele pomocí KNIHOVNY MSAL.

Zřízení instančního objektu na webu Azure Portal

  1. 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.

  2. 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.

  3. Ve vyhledávacích prostředcích, službách a dokumentech vyhledejte a vyberte MICROSOFT Entra ID.

  4. Klikněte na + Přidat a vyberte Registrace aplikace.

  5. Jako Název zadejte název aplikace.

  6. V části Podporované typy účtů vyberte Účty pouze v tomto organizačním adresáři (jeden tenant).

  7. Klikněte na Zaregistrovat.

  8. Na stránce Přehled stránky aplikace zkopírujte v části Základy následující hodnoty:

    • ID aplikace (klienta)
    • ID adresáře (tenanta)

    Přehled zaregistrovaných aplikací Azure

  9. Pokud chcete vygenerovat tajný klíč klienta, klikněte v části Spravovat na Certifikáty a tajné kódy.

    Poznámka:

    Tento tajný klíč klienta použijete ke generování 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.

  10. Na kartě Tajné kódy klienta klikněte na Nový tajný klíč klienta.

    Nový tajný klíč klienta

  11. V podokně Přidat tajný klíč klienta zadejte popis tajného klíče klienta.

  12. V případě vypršení platnosti vyberte časové období vypršení platnosti tajného klíče klienta a klikněte na tlačítko Přidat.

  13. 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.

Získání přístupového tokenu Microsoft Entra ID pomocí rozhraní REST API platformy Microsoft Identity Platform

Důležité

Tato část popisuje, jak ručně získat token ID Microsoft Entra pro instanční objekt pomocí rozhraní REST API platformy Microsoft Identity Platform.

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ě vygenerovat 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 generují a nahrazují tokeny Microsoft Entra ID pro vás a využívají následující typy ověřování Databricks:

Pokud chcete získat přístup k rozhraní Databricks REST API pomocí instančního objektu, získáte přístupový token Microsoft Entra ID pro instanční objekt. Další informace najdete v tématu První případ: Žádost o přístupový token se sdíleným tajným kódem.

Tip

Přístupový token Microsoft Entra ID můžete získat také pomocí Azure CLI. Viz Získání přístupového tokenu Microsoft Entra ID pomocí Azure CLI.

  1. 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.
  2. Pomocí předchozích informací spolu s curl získejte přístupový token Microsoft Entra ID.

    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.defaultadresa 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í.

Získání přístupového tokenu Microsoft Entra ID pomocí Azure CLI

Důležité

Tato část popisuje, jak ručně získat token ID Microsoft Entra pro instanč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ě vygenerovat 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 generují a nahrazují tokeny Microsoft Entra ID pro vás a využívají následující typy ověřování Databricks:

Pokud chcete získat přístup k rozhraní Databricks REST API pomocí instančního objektu, získáte přístupový token Microsoft Entra ID pro instanční objekt.

  1. 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.
  2. Pokud toto ID ještě neznáte, získejte správné ID předplatného Azure pro instanční objekt Microsoft Entra ID:

    • 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 a pomocí --query možností a -o --output zúžíte výsledky. Nahraďte adb-0000000000000000.0.azuredatabricks.net názvem vaší instance pracovního prostoru, nikoli názvem https://. V tomto příkladu 00000000-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 spustit az login znovu pomocí -t možnosti nebo --tenant zadat správné ID tenanta.

      ID tenanta pro pracovní prostor Azure Databricks můžete získat spuštěním příkazu curl -v <per-workspace-URL>/aad/auth a vyhledáním ve výstupu < location: https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000, kde 00000000-0000-0000-0000-000000000000 je ID tenanta. Viz také Získání ID předplatného a tenanta na webu Azure Portal.

      az login -t <tenant-id>
      
  3. 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 . --service-principal Použijte možnost spolu s určením hodnot pro parametry Tenant ID (Directory (tenant) ID), Client ID (Application (client) ID) a Client secret (Value) pro související aplikaci zaregistrovanou v Microsoft Entra ID.

    az login \
    --service-principal \
    -t <Tenant-ID> \
    -u <Client-ID> \
    -p <Client-secret>
    
  4. Ověřte, že jste přihlášeni ke správnému předplatnému instančního objektu Microsoft Entra ID. Provedete to spuštěním příkazu az account set pomocí -s možnosti nebo --subscription zadáním správného ID předplatného.

    az account set -s <subscription-id>
    
  5. Spuštěním příkazu az account get-access-token vygenerujte přístupový token Microsoft Entra ID pro přihlášený instanční objekt Microsoft Entra ID. --resource Pomocí možnosti zadejte jedinečné ID prostředku pro službu Azure Databricks, což je 2ff814a6-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.

curlMí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 generují a nahrazují tokeny ID Microsoft Entra, jejichž platnost vypršela, a 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>

Aktualizujte nároky na pracovní prostor instančního objektu:

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.
  1. 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 části Získání přístupového tokenu Microsoft Entra ID pomocí rozhraní REST API platformy Microsoft Identity Platform nebo získání přístupového tokenu Microsoft Entra ID pomocí Azure CLI.
  2. 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.
  1. 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 části Získání přístupového tokenu Microsoft Entra ID pomocí rozhraní REST API platformy Microsoft Identity Platform nebo získání přístupového tokenu 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. K tomuto a následujícím informacím se dostanete tak, že si prohlédnete informace o otevřených zdrojích. 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.
  2. K získání přístupového tokenu koncového bodu správy Microsoft Entra ID použijte některé z předchozích informací curl .

    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ý jako https%3A%2F%2Fmanagement.core.windows.net%2Fadresa 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í.

  3. 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.