Megosztás:


Csatlakozás API Databricks-alkalmazáshoz jogkivonat-hitelesítéssel

Meghívhat egy Databricks-alkalmazást, amely egy HTTP API-t (például FastAPI- vagy Gradio-alkalmazást) tesz elérhetővé OAuth 2.0 Bearer token-hitelesítéssel. Ez a módszer a helyi fejlesztési környezetből, külső alkalmazásokból és más Azure Databricks-alkalmazásokból működik.

Megjegyzés:

Ez a módszer csak olyan alkalmazásokra vonatkozik, amelyek API-kat vagy végpontokat tesznek elérhetővé (amelyekhez útvonalakat használva /api/ lehet hozzáférni). Az olyan alkalmazások esetében, amelyek csak felhasználói felületet vagy háttérfeldolgozást biztosítanak, jogkivonat-hitelesítéssel nem lehet csatlakozni.

Requirements

A Databricks-alkalmazáshoz jogkivonat-hitelesítéssel való csatlakozáshoz meg kell felelnie az alábbi követelményeknek:

  • Az alkalmazásnak legalább egy, útvonalakon /api/ elérhető API-végpontot kell elérhetővé tennie.
  • Rendelkeznie kell az alkalmazásban CAN USE engedéllyel. Lásd: Databricks-alkalmazások engedélyeinek konfigurálása.
  • A támogatott hitelesítési módszerek egyikével létre kell hoznia egy Azure Databricks hozzáférési jogkivonatot.

Hitelesítési módszerek

Megjegyzés:

A Databricks-alkalmazásokat nem hívhatja meg közvetlenül azure Entra ID-jogkivonat használatával. A jogkivonat-összevonáshoz ügyféloldali jogkivonat-cserelépés szükséges, amelyet az Azure Databricks nem hajt végre kiszolgálóoldalon. Az Azure Entra ID-jogkivonatok hitelesítéshez való használatához először OAuth-jogkivonatokra kell cserélnie őket. Lásd Hitelesítés identitásszolgáltató tokennel.

Válassza ki a kapcsolati forgatókönyvnek megfelelő hitelesítési módszert:

Helyi fejlesztés

A helyi fejlesztési környezetből való csatlakozáshoz használd a Databricks CLI-t vagy az SDK-kat a felhasználói hitelesítő adataiddal.

  1. Jelentkezzen be a parancssori felülettel:

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

    Az Azure Databricks az OAuth felhasználó–gép (U2M) hitelesítés használatát javasolja.

  2. Hozzáférési jogkivonat létrehozása:

    parancssori felület

    databricks auth token --profile my-env
    

    Python

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

Külső alkalmazások

A külső alkalmazásokból való programozott hozzáféréshez használjon egyszerű szolgáltatáshitelesítést gépről gépre (M2M) hitelesítő adatokkal. Lásd: Az Azure Databrickshez való hozzáférés engedélyezése a szolgáltatásnévi objektum számára az OAuth használatával.

  1. Hozzon létre egy szolgáltatási azonosítót, és szerezze be az ügyfél-azonosítót és a kliens titkot. Lásd Szolgáltatásfelelősök.

  2. Hozzáférési jogkivonat létrehozása a Databricks SDK használatával:

    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()
    

Más Databricks-alkalmazásokból

Amikor egy Databricks-alkalmazásból csatlakozik egy másikhoz, az alkalmazás automatikusan kezeli a hitelesítést a hozzárendelt szolgáltatásnév használatával.

from databricks.sdk import WorkspaceClient
import requests

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

OAuth-hatókörök megadása a felhasználói engedélyezéshez

Ha a Databricks parancssori felületét vagy SDK-jait egységes hitelesítéssel használja, az előző szakaszban látható módon az eszközök automatikusan kérik az alapszintű all-apis hatókört. Ha azonban az alkalmazás felhasználói hitelesítést használ, manuálisan kell kérnie egy hozzáférési jogkivonatot további hatókörökkel egy egyéni OAuth-folyamat használatával.

Győződjön meg arról, hogy a hozzáférési jogkivonat tartalmazza a Felhasználó szerkesztése>engedélyben konfigurált hatóköröket. Ha a jogkivonat nem rendelkezik a szükséges hatókörökkel, a kérelmek 401 vagy 403 hibával meghiúsulhatnak.

A következő kérés például explicit módon kér hozzáférési jogkivonatot a sql, file.filesés dashboards.genie hatókörökkel:

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"

A teljes útmutatásért lásd: OAuth U2M-hozzáférési jogkivonatok manuális létrehozása.

Kérések küldése az alkalmazásnak

Amikor meghívja az alkalmazás API-végpontjait, vegye fel a Bearer tokent az Authorization fejlécbe, és cserélje le <your-endpoint> az alkalmazás tényleges API-elérési útjára:

CURL

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

Python kérésekkel

import requests

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

Python az SDK-val

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
)

Biztonsági szempontok

Amikor helyi környezetéből csatlakozik az alkalmazásokhoz, kövesse az alábbi ajánlott biztonsági eljárásokat:

  • Soha ne kódoljon hozzáférési jogkivonatokat a forráskódban. Használjon környezeti változókat vagy biztonságos hitelesítőadat-tárolókat.
  • A jogkivonatok rendszeres frissítése a biztonsági kockázatok minimalizálása érdekében, ha azok sérülnek.
  • Kerülje a hozzáférési jogkivonatok vagy bizalmas adatok naplózását az alkalmazásnaplókban.

Hibaelhárítás

Ha problémákba ütközik, amikor helyi gépről csatlakozik az alkalmazáshoz, próbálkozzon ezekkel a megoldásokkal.

Hitelesítési hibák (401 hiba)

Ellenőrizze a következőket:

  • Az ön tokenje érvényes (futtatás databricks auth token --profile my-env)
  • A profil a databricks auth login megfelelően van konfigurálva.
  • A token nem járt le
  • A token tartalmazza a szükséges OAuth-hatóköröket. A CLI és SDK eszközök csak olyan alapvető hatóköröket biztosítanak, mint például all-apis, amelyek lehet, hogy nem elégségesek a felhasználói engedélyezéshez.

Engedély megtagadva (403 hiba)

Ellenőrizze a következőket:

  • Rendelkezik CAN USE engedéllyel az alkalmazáshoz
  • A token tartalmazza a szükséges OAuth-hatóköröket. A nem megfelelő jogosultsági szintek 403 hibát okozhatnak még érvényes engedélyekkel is.

Az alkalmazás nem található (404 hiba)

Ellenőrizze a következőket:

  • Az azonosító és a munkaterület URL-címe helyes
  • Az alkalmazás üzembe helyezése és futtatása
  • A végpont elérési útja létezik az alkalmazásban

Hálózati kapcsolati problémák

Ellenőrizze a következőket:

  • A hálózat engedélyezi a kimenő HTTPS-kapcsolatokat
  • A *.databricksapps.com tartomány elérhető a hálózatról

Emellett ellenőrizze, hogy a szervezet konfigurációt igénylő proxyt használ-e.

További erőforrások

További információt a következő források tartalmaznak: