Sdílet prostřednictvím


Připojení k aplikaci API Databricks pomocí ověřování tokenů

Můžete volat aplikaci Databricks, která zveřejňuje rozhraní HTTP API (například aplikaci FastAPI nebo Gradio) pomocí ověřování nosným tokenem OAuth 2.0. Tato metoda funguje z místního vývojového prostředí, externích aplikací a dalších aplikací Azure Databricks.

Poznámka:

Tato metoda se vztahuje pouze na aplikace, které zpřístupňují rozhraní API nebo koncové body (přístupné pomocí /api/ tras). U aplikací, které poskytují pouze uživatelské rozhraní nebo zpracování na pozadí, se nemůžete připojit pomocí ověřování tokenu.

Požadavky

Pokud se chcete připojit k aplikaci Databricks pomocí ověřování tokenů, musíte splnit následující požadavky:

  • Aplikace musí zpřístupnit alespoň jeden koncový bod rozhraní API přístupný pomocí /api/ tras.
  • Musíte mít CAN USE oprávnění k aplikaci. Viz Konfigurace oprávnění pro aplikaci Databricks.
  • Musíte být schopni vygenerovat přístupový token Azure Databricks pomocí jedné z podporovaných metod ověřování.

Metody ověřování

Poznámka:

Aplikaci Databricks nemůžete volat přímo pomocí tokenu ID Azure Entra. Federace tokenů vyžaduje krok výměny tokenů na straně klienta, který Azure Databricks neprovádí na straně serveru. Pokud chcete pro ověřování použít tokeny ID Azure Entra, musíte je napřed vyměnit za tokeny OAuth. Viz Ověření pomocí tokenu zprostředkovatele identity.

Zvolte metodu ověřování, která odpovídá vašemu scénáři připojení:

Místní vývoj

Pokud se chcete připojit z místního vývojového prostředí, použijte azure Databricks CLI nebo sady SDK s přihlašovacími údaji uživatele.

  1. Přihlaste se pomocí rozhraní příkazového řádku:

    databricks auth login --host https://<workspace-url> --profile my-env
    

    Azure Databricks doporučuje používat ověřování OAuth uživatele vůči stroji (U2M).

  2. Vygenerování přístupového tokenu:

    CLI

    databricks auth token --profile my-env
    

    Python

    from databricks.sdk.core import Config
    config = Config(profile="my-env")
    token = config.oauth_token().access_token
    

Externí aplikace

Pro programový přístup z externích aplikací použijte ověřování služby principal s přihlašovacími údaji M2M (machine-to-machine). Viz Autorizace přístupu instančního objektu k Azure Databricks pomocí OAuth.

  1. Vytvořte service principal a získejte ID klienta a tajemství. Viz principály služeb.

  2. Vygenerujte přístupový token pomocí sady Azure Databricks SDK:

    from databricks.sdk import WorkspaceClient
    import requests
    
    # Option 1: Explicit credentials
    wc = WorkspaceClient(
        host="https://<workspace-url>",
        client_id="<service-principal-client-id>",
        client_secret="<service-principal-client-secret>"
    )
    
    # Option 2: Environment variables
    # Set DATABRICKS_HOST, DATABRICKS_CLIENT_ID, DATABRICKS_CLIENT_SECRET
    wc = WorkspaceClient()
    
    # Generate Bearer token
    headers = wc.config.authenticate()
    

Z jiných aplikací Databricks

Když se připojíte z jedné aplikace Databricks k jiné, aplikace provádí ověřování automaticky pomocí přiřazeného služebního principálu.

from databricks.sdk import WorkspaceClient
import requests

# No explicit credentials needed, uses app's service principal
wc = WorkspaceClient()
headers = wc.config.authenticate()

Zadání oborů OAuth pro autorizaci uživatelů

Když použijete Azure Databricks CLI nebo sady SDK s jednotným ověřováním, jak je znázorněno v předchozí části, nástroje automaticky požadují základní all-apis obor. Pokud ale vaše aplikace používá autorizaci uživatele, musíte ručně požádat o přístupový token s dalšími obory pomocí vlastního toku OAuth.

Ujistěte se, že přístupový token zahrnuje obory nakonfigurované vautorizaci> uživatele. Pokud token nemá požadované obory, požadavky můžou selhat s chybami 401 nebo 403.

Například následující požadavek explicitně požádá o přístupový token s obory sql, file.files a dashboards.genie.

curl --request POST \
https://<databricks-instance>/oidc/v1/token \
--data "client_id=databricks-cli" \
--data "grant_type=authorization_code" \
--data "redirect_uri=<redirect-url>" \
--data "code_verifier=<code-verifier>" \
--data "code=<authorization-code>" \
--data "scope=sql+file.files+dashboards.genie"

Úplné pokyny najdete v tématu Ruční generování přístupových tokenů OAuth U2M.

Odeslání požadavků do aplikace

Při volání koncových bodů rozhraní API vaší aplikace zahrňte do autorizační hlavičky nosný token a nahraďte <your-endpoint> skutečnou cestou rozhraní API vaší aplikace:

CURL

curl "https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>" \
     -H "Authorization: Bearer <YOUR_TOKEN>"

Python s požadavky

import requests

response = requests.get(
    "https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>",
    headers={"Authorization": f"Bearer {token}"}
)

Python s využitím SDK

from databricks.sdk import WorkspaceClient
import requests

wc = WorkspaceClient()
headers = wc.config.authenticate()

response = requests.get(
    "https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>",
    headers=headers
)

Bezpečnostní aspekty

Při připojování k aplikacím z místního prostředí postupujte podle těchto osvědčených postupů zabezpečení:

  • Nikdy ve zdrojovém kódu nezakódujte přístupové tokeny. Použijte proměnné prostředí nebo zabezpečené úložiště přihlašovacích údajů.
  • Pravidelně obnovujte tokeny, aby byla minimalizována rizika zabezpečení v případě jejich kompromitace.
  • Vyhněte se protokolování přístupových tokenů nebo citlivých dat v protokolech aplikace.

Řešení problémů

Pokud při připojování k aplikaci z místního počítače narazíte na problémy, vyzkoušejte tato řešení.

Selhání autentizace (chyby 401)

Zkontrolujte:

  • Váš token je platný (spustit databricks auth token --profile my-env)
  • Váš profil je správně nakonfigurovaný pomocí databricks auth login
  • Platnost tokenu nevypršela.
  • Váš token zahrnuje požadované obory OAuth. Nástroje CLI a SDK poskytují pouze základní rozsahy, jako je all-apis, což nemusí stačit pro autorizaci uživatelů.

Přístup zamítnut (chyba 403)

Zkontrolujte:

  • Máte CAN USE oprávnění k aplikaci
  • Váš token zahrnuje požadované obory OAuth. Nedostatečné rozsahy oprávnění můžou způsobit chyby 403 i s platnými oprávněními.

Aplikace nebyla nalezena (chyby 404)

Zkontrolujte:

  • ID a adresa URL pracovního prostoru jsou správné.
  • Aplikace se nasadí a spustí.
  • Cesta ke koncovému bodu existuje v aplikaci.

Problémy se síťovým připojením

Zkontrolujte:

  • Vaše síť umožňuje odchozí připojení HTTPS.
  • Doména *.databricksapps.com je přístupná z vaší sítě.

Kromě toho zkontrolujte, jestli vaše organizace používá proxy server, který vyžaduje konfiguraci.

Dodatečné zdroje

Další informace najdete v následujících zdrojích informací: