Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato stránka vysvětluje, jak autorizovat přístup uživatelů k prostředkům Azure Databricks při použití rozhraní příkazového řádku Databricks nebo rozhraní REST API Služby Azure Databricks.
Azure Databricks používá jako upřednostňovaný protokol OAuth 2.0 pro autorizaci uživatelů a ověřování mimo uživatelské rozhraní. Jednotné ověřování klientů automatizuje generování a aktualizaci tokenů. Jakmile se uživatel přihlásí a udělí souhlas, OAuth vydá přístupový token pro rozhraní příkazového řádku, sadu SDK nebo jiný nástroj pro použití jménem uživatele. Každý přístupový token je platný po dobu jedné hodiny, po které se automaticky vyžádá nový token.
Na této stránce autorizace znamená použití OAuth k udělení přístupu k prostředkům Azure Databricks, zatímco ověření znamená validaci přihlašovacích údajů prostřednictvím přístupových tokenů.
Další podrobnosti na vysoké úrovni najdete v tématu Autorizace přístupu k prostředkům Azure Databricks.
Způsoby autorizace přístupu k prostředkům Azure Databricks
Azure Databricks podporuje dva způsoby autorizace uživatelských účtů pomocí OAuth:
Automaticky (doporučeno): Jednotné ověřování použijte, pokud pracujete s podporovanými nástroji a sadami SDK, jako je sada Azure Databricks Terraform SDK. Tento přístup zpracovává generování a aktualizaci tokenů automaticky.
Manuál: Vygenerujte ověřovatel kódu a výzvu a pak je vyměňte za token OAuth. Tuto metodu použijte, pokud váš nástroj nepodporuje jednotné ověřování. Podrobnosti najdete v tématu Ruční generování přístupových tokenů OAuth U2M.
Automatická autorizace s jednotným ověřováním
Poznámka:
Před konfigurací autorizace zkontrolujte oprávnění seznamu ACL pro typ operací pracovního prostoru, které plánujete provést, a ověřte, že váš účet má požadovanou úroveň přístupu. Podrobnosti najdete v tématu Seznamy řízení přístupu.
Pokud chcete provést autorizaci OAuth pomocí sad SDK a nástrojů Databricks, které podporují jednotné ověřování, integrujte do svého kódu následující:
Prostředí
Pokud chcete použít proměnné prostředí pro konkrétní typ ověřování Azure Databricks pomocí nástroje nebo sady SDK, přečtěte si téma Autorizace přístupu k prostředkům Azure Databricks nebo dokumentaci k nástroji nebo sadě SDK. Viz také proměnné prostředí a pole pro jednotné ověřování a prioritu metody ověřování.
Pro operace na úrovni účtu nastavte následující proměnné prostředí:
-
DATABRICKS_HOST, nastavte hodnotu adresy URL konzoly účtu Azure Databricks.https://accounts.azuredatabricks.net DATABRICKS_ACCOUNT_ID
Pro operace na úrovni pracovního prostoru nastavte následující proměnné prostředí:
-
DATABRICKS_HOST, nastavte hodnotu adresy URL služby Azure Databricks pro jednotlivé pracovní prostory, napříkladhttps://adb-1234567890123456.7.azuredatabricks.net.
Profil
Vytvořte nebo identifikujte konfigurační profil Azure Databricks s následujícími poli v .databrickscfg souboru. Pokud vytvoříte profil, nahraďte zástupné symboly příslušnými hodnotami. Pokud chcete profil použít s nástrojem nebo sadou SDK, přečtěte si téma Autorizace přístupu k prostředkům Azure Databricks nebo dokumentaci k nástroji nebo sadě SDK. Viz také proměnné prostředí a pole pro jednotné ověřování a prioritu metody ověřování.
V případě operací na úrovni účtu nastavte v .databrickscfg souboru následující hodnoty. V tomto případě adresa URL konzoly účtu Azure Databricks je https://accounts.azuredatabricks.net:
[<some-unique-configuration-profile-name>]
host = <account-console-url>
account_id = <account-id>
U operací na úrovni pracovního prostoru nastavte v .databrickscfg souboru následující hodnoty. V tomto případě je hostitelem adresa URL azure Databricks pro jednotlivé pracovní prostory, napříkladhttps://adb-1234567890123456.7.azuredatabricks.net:
[<some-unique-configuration-profile-name>]
host = <workspace-url>
CLI
Pro příkazový řádek Databricks spusťte příkaz databricks auth login s následujícími možnostmi:
- Pro operace na úrovni účtu.
--host https://accounts.cloud.databricks.com --account-id <account-id> - Pro operace na úrovni pracovního prostoru.
Pak postupujte podle pokynů ve webovém prohlížeči a přihlaste se ke svému účtu nebo pracovnímu prostoru Azure Databricks.
Další podrobnosti najdete v části autorizace OAuth s Databricks rozhraním příkazového řádku.
VS Code
Pro rozšíření Databricks pro Visual Studio Code postupujte podle pokynů v tématu Nastavení autorizace pro rozšíření Databricks pro Visual Studio Code.
Připojit
Ověřování OAuth U2M se podporuje v Databricks Connect pro Python od Databricks Runtime 13.1 a pro Scala počínaje Databricks Runtime 13.3 LTS.
Pro Databricks Connect máte dvě možnosti:
-
Použijte konfigurační profil: Nastavte hodnoty na úrovni pracovního prostoru v
.databrickscfgsouboru, jak je popsáno na kartě Profil . Nastavtecluster_idtaké adresu URL instance pracovního prostoru. -
Použijte proměnné prostředí: Nastavte stejné hodnoty jako na kartě Prostředí . Nastavte
DATABRICKS_CLUSTER_IDtaké adresu URL instance pracovního prostoru.
Hodnoty v .databrickscfg mají přednost před proměnnými prostředí.
Informace o inicializaci databricks Connect pomocí těchto nastavení najdete v tématu Konfigurace výpočetních prostředků pro Databricks Connect.
Terraformování
Před použitím konfigurace Terraformu musíte spustit jeden z databricks auth login příkazů na kartě rozhraní příkazového řádku v závislosti na tom, jestli vaše konfigurace používá operace pracovního prostoru nebo účtu. Tyto příkazy generují a ukládají požadovaný token OAuth do .databricks/token-cache.json mezipaměti ve domovské složce uživatele.
Operace na úrovni účtu
Pro výchozí ověřování:
provider "databricks" {
alias = "account"
}
Pro přímou konfiguraci:
provider "databricks" {
alias = "account"
host = <retrieve-account-console-url>
account_id = <retrieve-account-id>
}
Zástupné symboly retrieve- nahraďte vlastní implementací pro načtení hodnot z konzoly nebo jiného úložiště konfigurace, například HashiCorp Vault. Viz také Vault Provider. V tomto příkladu můžete nastavit account_id adresu URL konzoly účtu Azure Databricks.
Operace na úrovni pracovního prostoru
Pro výchozí ověřování:
provider "databricks" {
alias = "workspace"
}
Pro přímou konfiguraci:
provider "databricks" {
alias = "workspace"
host = <retrieve-workspace-url>
}
Python
Před spuštěním kódu musíte spustit příkaz databricks auth login na CLI kartě s možnostmi operací pro pracovní prostor nebo účet. Tyto příkazy generují a ukládají požadovaný token OAuth do .databricks/token-cache.json mezipaměti ve domovské složce uživatele.
Operace na úrovni účtu
Pro výchozí ověřování:
from databricks.sdk import AccountClient
a = AccountClient()
# ...
Pro přímou konfiguraci:
from databricks.sdk import AccountClient
a = AccountClient(
host = retrieveAccountConsoleUrl(),
account_id = retrieveAccountId()
)
# ...
retrieve Zástupné symboly nahraďte vlastní implementací pro načtení hodnot z konzoly nebo jiného úložiště konfigurace, například Azure KeyVault.
Operace na úrovni pracovního prostoru
Pro výchozí ověřování:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# ...
Pro přímou konfiguraci:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient(host = retrieve_workspace_url())
# ...
Další informace o ověřování pomocí nástrojů a sad SDK Azure Databricks, které používají Python a které implementují jednotné ověřování Databricks, najdete tady:
- Nastavení klienta Databricks Connect pro Python
- Nastavení autorizace pro rozšíření Databricks pro visual Studio Code
- Ověření sady Databricks SDK pro Python pomocí účtu nebo pracovního prostoru Azure Databricks
Java
Před spuštěním kódu musíte spustit příkaz databricks auth login na kartě CLI s možnostmi pro operace pracovního prostoru nebo účtu. Tyto příkazy generují a ukládají požadovaný token OAuth do .databricks/token-cache.json mezipaměti ve domovské složce uživatele.
Operace na úrovni účtu
Pro výchozí ověřování:
import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...
Pro přímou konfiguraci:
import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
.setHost(retrieveAccountConsoleUrl())
.setAccountId(retrieveAccountId());
AccountClient a = new AccountClient(cfg);
// ...
retrieve Zástupné symboly nahraďte vlastní implementací pro načtení hodnot z konzoly nebo jiného úložiště konfigurace, například Azure KeyVault.
Operace na úrovni pracovního prostoru
Pro výchozí ověřování:
import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...
Pro přímou konfiguraci:
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
.setHost(retrieveWorkspaceUrl())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...
Další informace o autorizaci a ověřování pomocí nástrojů a sad SDK Azure Databricks, které používají Javu a které implementují jednotné ověřování Databricks, najdete tady:
- Nastavení klienta Databricks Connect pro Scala (k ověřování používá sadu Databricks SDK pro Javu)
- Ověření sady Databricks SDK pro Javu pomocí účtu nebo pracovního prostoru Azure Databricks
Go
Před spuštěním svého kódu musíte na kartě CLI spustit příkaz databricks auth login s možnostmi operací pracovního prostoru nebo účtu. Tyto příkazy generují a ukládají požadovaný token OAuth do .databricks/token-cache.json mezipaměti ve domovské složce uživatele.
Operace na úrovni účtu
Pro výchozí ověřování:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...
Pro přímou konfiguraci:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
Host: retrieveAccountConsoleUrl(),
AccountId: retrieveAccountId(),
}))
// ...
retrieve Zástupné symboly nahraďte vlastní implementací pro načtení hodnot z konzoly nebo jiného úložiště konfigurace, například Azure KeyVault.
Operace na úrovni pracovního prostoru
Pro výchozí ověřování:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...
Pro přímou konfiguraci:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
Host: retrieveWorkspaceUrl(),
}))
// ...
Další informace o ověřování pomocí nástrojů Databricks a sad SDK, které používají Go a které implementují jednotné ověřování klienta Databricks, najdete v tématu Ověření sady Databricks SDK for Go pomocí účtu nebo pracovního prostoru Azure Databricks.
Ruční generování přístupových tokenů OAuth U2M
Tato část je určená pro uživatele, kteří pracují s nástroji nebo službami třetích stran, které nepodporují jednotný ověřovací standard Databricks . Pokud potřebujete ručně generovat, aktualizovat nebo používat tokeny Azure Databricks OAuth pro ověřování OAuth U2M, postupujte podle kroků v této části.
Krok 1: Vygenerování ověřovatele kódu a výzvy
Pokud chcete generovat přístupové tokeny OAuth U2M ručně, začněte vytvořením ověřovatele kódu a odpovídající výzvou kódu. Pomocí výzvy v kroku 2 získáte autorizační kód a ověřovatelem v kroku 3 tento kód vyměníte za přístupový token.
Poznámka:
Postupujte podle standardu OAuth PKCE:
- Ověřovatel kódu je kryptograficky náhodný řetězec (43–128 znaků) používající znaky
A–Z, ,a–z0–9,-._~. - Výzvou kódu je Base64 URL-kódovaný hash SHA256 ověřovatele.
Další informace najdete v tématu Žádost o autorizaci.
Následující Python skript vygeneruje verifikátor a výzvu. I když je můžete používat vícekrát, Azure Databricks doporučuje generovat nový pár pokaždé, když ručně vygenerujete přístupové tokeny.
import hashlib, base64, secrets, string
# Allowed characters for the code verifier, per PKCE spec
allowed_chars = string.ascii_letters + string.digits + "-._~"
# Generate a secure code verifier (43–128 characters)
code_verifier = ''.join(secrets.choice(allowed_chars) for _ in range(64))
# Create the SHA256 hash of the code verifier
sha256_hash = hashlib.sha256(code_verifier.encode()).digest()
# Base64-url-encode the hash and strip any trailing '=' padding
code_challenge = base64.urlsafe_b64encode(sha256_hash).decode().rstrip("=")
# Output values
print(f"code_verifier: {code_verifier}")
print(f"code_challenge: {code_challenge}")
Krok 2: Vygenerování autorizačního kódu
Pokud chcete získat přístupový token Azure Databricks OAuth, musíte nejprve vygenerovat autorizační kód OAuth. Platnost tohoto kódu vyprší okamžitě po použití. Kód můžete vygenerovat na úrovni účtu nebo pracovního prostoru:
- Úroveň účtu: Umožňuje volat rozhraní REST API na úrovni účtu i pracovního prostoru ve všech pracovních prostorech, ke kterým má váš uživatel přístup.
- Úroveň pracovního prostoru: Slouží k volání rozhraní REST API v rámci jednoho pracovního prostoru.
Poznámka:
Tyto příklady používají databricks-cli jako ID klienta. Pokud nepoužíváte integrovaný nástroj Azure Databricks, jako je rozhraní příkazového řádku nebo sady SDK, musíte povolit vlastní aplikaci OAuth a použít ji client_id ve svých požadavcích. Viz Povolení nebo zakázání partnerských aplikací OAuth.
Generování autorizačního kódu na úrovni účtu
Vyhledejte číslo účtu.
V prohlížeči přejděte na adresu URL s následujícími nahrazeními:
-
<account-id>: ID vašeho účtu Azure Databricks -
<redirect-url>: Identifikátor URI místního přesměrování (napříkladhttp://localhost:8020) -
<state>: Jakýkoli řetězec ve formátu prostého textu, který ověří odpověď. -
<code-challenge>: Výzva kódu z kroku 1
https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/authorize ?client_id=databricks-cli &redirect_uri=<redirect-url> &response_type=code &state=<state> &code_challenge=<code-challenge> &code_challenge_method=S256 &scope=all-apis+offline_access-
Po zobrazení výzvy k přístupu k účtu Azure Databricks se přihlaste.
Po přihlášení prohlížeč přejde na adresu URL pro přesměrování. Pokud na tomto hostiteli a portu (například
http://localhost:8020nic neposlouchá), zobrazí se na stránce očekávaná chyba připojení. Zkopírujte autorizační kód z adresního řádku. Jedná se o podřetězce zacode=a před další&v řetězci dotazu.http://localhost:8020/?code=dcod...7fe6&state=<state>Ověřte, že
statehodnota odpovídá původně zadané hodnotě. Pokud ne, zahoďte kód.Pokračujte vygenerování přístupového tokenu na úrovni účtu.
Generování autorizačního kódu na úrovni pracovního prostoru
V prohlížeči přejděte na adresu URL s následujícími nahrazeními:
-
<databricks-instance>: Vaše<databricks-instance>pracovní prostor Azure Databricks instance název, napříkladadb-1234567890123456.7.azuredatabricks.net -
<redirect-url>: Místní přesměrování (napříkladhttp://localhost:8020) -
<state>: Jakákoli hodnota prostého textu pro ověření odpovědi -
<code-challenge>: Řetězec výzvy z kroku 1
https://<databricks-instance>/oidc/v1/authorize ?client_id=databricks-cli &redirect_uri=<redirect-url> &response_type=code &state=<state> &code_challenge=<code-challenge> &code_challenge_method=S256 &scope=all-apis+offline_access-
Po zobrazení výzvy k přístupu k účtu Azure Databricks se přihlaste.
Po přihlášení prohlížeč přejde na adresu URL pro přesměrování. Pokud na tomto serveru a portu (například
http://localhost:8020) nic neposlouchá, zobrazí se na stránce chyba připojení, což se očekává. Zkopírujte autorizační kód z adresního řádku. Jedná se o podřetězce zacode=a před další&v řetězci dotazu.http://localhost:8020/?code=dcod...7fe6&state=<state>Ověřte, že
statehodnota odpovídá původně zadané hodnotě. Pokud ne, zahoďte kód.Pokračujte na vygenerování přístupového tokenu na úrovni pracovního prostoru.
Krok 3: Výměna autorizačního kódu pro přístupový token
Pokud chcete vyměnit autorizační kód pro přístupový token Azure Databricks OAuth, zvolte odpovídající úroveň:
- Úroveň účtu: Slouží k volání rozhraní REST API na úrovni účtu i pracovního prostoru ve všech pracovních prostorech, ke kterému má váš uživatel přístup.
- Úroveň pracovního prostoru: Slouží k volání rozhraní REST API v rámci jednoho pracovního prostoru.
Vygenerování přístupového tokenu na úrovni účtu
Slouží
curlk výměně autorizačního kódu na úrovni účtu pro přístupový token OAuth.V požadavku nahraďte následující položky:
-
<account-id>: ID vašeho účtu Azure Databricks -
<redirect-url>: Adresa URL přesměrování z předchozího kroku -
<code-verifier>: Ověřovatel, který jste vygenerovali dříve -
<authorization-code>: Autorizační kód z předchozího kroku
curl --request POST \ https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/token \ --data "client_id=databricks-cli" \ --data "grant_type=authorization_code" \ --data "scope=all-apis offline_access" \ --data "redirect_uri=<redirect-url>" \ --data "code_verifier=<code-verifier>" \ --data "code=<authorization-code>"-
access_tokenZkopírujte hodnotu z odpovědi. Například:{ "access_token": "eyJr...Dkag", "refresh_token": "doau...f26e", "scope": "all-apis offline_access", "token_type": "Bearer", "expires_in": 3600 }Token je platný po dobu jedné hodiny.
Pokračujte krokem 4: Volání rozhraní REST API Služby Azure Databricks
Generování přístupového tokenu na úrovni pracovního prostoru
Slouží
curlk výměně autorizačního kódu na úrovni pracovního prostoru pro přístupový token OAuth.V požadavku nahraďte následující položky:
-
<databricks-instance>: Vaše<databricks-instance>s názvem instance pracovního prostoru Azure Databricks, napříkladadb-1234567890123456.7.azuredatabricks.net -
<redirect-url>: Adresa URL přesměrování z předchozího kroku -
<code-verifier>: Ověřovatel, který jste vygenerovali dříve -
<authorization-code>: Autorizační kód na úrovni pracovního prostoru
curl --request POST \ https://<databricks-instance>/oidc/v1/token \ --data "client_id=databricks-cli" \ --data "grant_type=authorization_code" \ --data "scope=all-apis offline_access" \ --data "redirect_uri=<redirect-url>" \ --data "code_verifier=<code-verifier>" \ --data "code=<authorization-code>"-
access_tokenZkopírujte hodnotu z odpovědi. Například:{ "access_token": "eyJr...Dkag", "refresh_token": "doau...f26e", "scope": "all-apis offline_access", "token_type": "Bearer", "expires_in": 3600 }Token je platný po dobu jedné hodiny.
Krok 4: Volání rozhraní REST API služby Azure Databricks
Přístupový token použijte k volání rozhraní REST API na úrovni účtu nebo pracovního prostoru v závislosti na jeho rozsahu. Pokud chcete volat rozhraní API na úrovni účtu, musí být váš uživatel Azure Databricks správcem účtu.
Příklad požadavku rozhraní REST API na úrovni účtu
Tento příklad používá curl spolu s Bearer ověřováním k získání seznamu všech pracovních prostorů přidružených k účtu.
- Nahraďte
<oauth-access-token>přístupovým tokenem OAuth na úrovni účtu. - Nahraďte
<account-id>vaším ID účtu.
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://accounts.azuredatabricks.net/api/2.0/accounts/<account-id>/workspaces"
Příklad požadavku rozhraní REST API na úrovni pracovního prostoru
Tento příklad používá curl spolu s autentizací Bearer k zobrazení seznamu všech dostupných clusterů v zadaném pracovním prostoru.
- Nahraďte
<oauth-access-token>přístupovým tokenem OAuth na úrovni účtu nebo pracovního prostoru. - Nahraďte
<databricks-instance>názvem instance pracovního prostoru Azure Databricks, napříkladadb-1234567890123456.7.azuredatabricks.net.
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://<databricks-instance>/api/2.0/clusters/list"