Sdílet prostřednictvím


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:

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 používá tok klienta OAuth 2.0 k autorizaci přístupu k prostředkům Azure Databricks.

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

  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. Vyhledejte v Prostředky, služby a dokumenty, vyhledejte a selectMicrosoft Entra ID.

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

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

  6. V části Podporované typy účtůselectÚčty v tomto adresáři organizace (pouze jeden tenant).

  7. Klikněte na Zaregistrovat.

  8. 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)
  9. 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.

  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. Pro vyprší, select časové období vypršení platnosti tajného klíče klienta a potom klepně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.

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.

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

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:

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.

  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. 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ď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 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>
      
  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 . Použijte možnost --service-principal spolu s určením values pro parametersTenant ID (Directory (tenant) ID), Client ID (Application (client) ID) a Client secret (Value) pro související aplikaci registrovanou v ID Microsoft Entra.

    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. 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>
    
  5. 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ž 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 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.
  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 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.
  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 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.
  2. 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ý 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.