Uwierzytelnianie jednostki usługi MS Entra

Uwierzytelnianie jednostki usługi MS Entra używa poświadczeń jednostki usługi MS Entra do uwierzytelniania. Aby utworzyć jednostki usługi dla usługi Azure Databricks i zarządzać nimi, zobacz:

Uwaga

Usługa Databricks zaleca użycie uwierzytelniania maszyny do maszyny OAuth (M2M) w większości scenariuszy zamiast uwierzytelniania jednostki usługi MS Entra. Dzieje się tak, ponieważ uwierzytelnianie OAuth M2M korzysta z tokenów dostępu OAuth usługi Azure Databricks, które są wykazują większą niezawodność tylko podczas uwierzytelniania w usłudze Azure Databricks.

Należy używać uwierzytelniania jednostki usługi MS Entra tylko w przypadkach, gdy musisz uwierzytelnić się w usłudze Azure Databricks i innych zasobach platformy Azure w tym samym czasie.

Aby użyć uwierzytelniania OAuth M2M zamiast uwierzytelniania jednostki usługi MS Entra, pomiń ten artykuł i zobacz Uwierzytelnianie dostępu do usługi Azure Databricks przy użyciu jednostki usługi przy użyciu protokołu OAuth (OAuth M2M).

Jednostki usługi MS Entra różnią się od tożsamości zarządzanych dla zasobów platformy Azure, które usługa Azure Databricks obsługuje również na potrzeby uwierzytelniania. Aby dowiedzieć się, jak używać tożsamości zarządzanych dla zasobów platformy Azure zamiast jednostek usługi MS Entra na potrzeby uwierzytelniania usługi Azure Databricks, zobacz Konfigurowanie i używanie uwierzytelniania tożsamości zarządzanych platformy Azure na potrzeby automatyzacji usługi Azure Databricks.

Aby uzyskać szczegółowe informacje na temat uwierzytelniania usługi Microsoft Entra w usłudze Databricks za pomocą usługi Azure DevOps, zobacz Uwierzytelnianie za pomocą usługi Azure DevOps w usłudze Databricks.

Aby skonfigurować uwierzytelnianie jednostki usługi MS Entra za pomocą usługi Azure Databricks, należy ustawić następujące skojarzone zmienne środowiskowe, .databrickscfg pola, pola programu Terraform lub Config pola:

  • Host usługi Azure Databricks.

    • W przypadku operacji konta określ wartość https://accounts.azuredatabricks.net.

    • W przypadku operacji obszaru roboczego określ adres URL dla każdego obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net.

      Jeśli jednostka usługi MS Entra nie została jeszcze dodana do obszaru roboczego, określ zamiast tego identyfikator zasobu platformy Azure. W takim przypadku jednostka usługi MS Entra musi mieć co najmniej uprawnienia Współautor lub Właściciel w zasobie platformy Azure.

  • W przypadku operacji konta identyfikator konta usługi Azure Databricks.

  • Identyfikator zasobu platformy Azure.

  • Identyfikator dzierżawy jednostki usługi MS Entra.

  • Identyfikator klienta jednostki usługi MS Entra.

  • Wpis tajny klienta jednostki usługi MS Entra.

Aby przeprowadzić uwierzytelnianie jednostki usługi MS Entra w usłudze Azure Databricks, zintegruj następujące elementy w kodzie na podstawie uczestniczących narzędzi lub zestawu SDK:

Aby użyć zmiennych środowiskowych dla określonego typu uwierzytelniania usługi Azure Databricks za pomocą narzędzia lub zestawu SDK, zobacz Uwierzytelnianie dostępu do zasobów usługi Azure Databricks lub dokumentacji narzędzia lub zestawu SDK. Zobacz również Zmienne środowiskowe i pola dla ujednoliconego uwierzytelniania klienta oraz domyślne metody ujednoliconego uwierzytelniania klienta.

W przypadku operacji na poziomie konta ustaw następujące zmienne środowiskowe:

  • DATABRICKS_HOST, ustaw wartość adresu URL konsoli konta usługi Azure Databricks, https://accounts.azuredatabricks.net.

    • DATABRICKS_ACCOUNT_ID
    • ARM_TENANT_ID
    • ARM_CLIENT_ID
    • ARM_CLIENT_SECRET

    W przypadku operacji na poziomie obszaru roboczego ustaw następujące zmienne środowiskowe:

    • DATABRICKS_HOST, ustaw wartość adresu URL usługi Azure Databricks na obszar roboczy, na przykład https://adb-1234567890123456.7.azuredatabricks.net.
    • ARM_TENANT_ID
    • ARM_CLIENT_ID
    • ARM_CLIENT_SECRET

    W przypadku operacji na poziomie obszaru roboczego, jeśli jednostka usługi MS Entra nie została jeszcze dodana do obszaru roboczego, określ DATABRICKS_AZURE_RESOURCE_ID razem z identyfikatorem zasobu platformy Azure dla obszaru roboczego usługi Azure Databricks, a nie HOST adresem URL obszaru roboczego. W takim przypadku jednostka usługi MS Entra musi mieć co najmniej uprawnienia Współautor lub Właściciel w zasobie platformy Azure dla obszaru roboczego usługi Azure Databricks.

Utwórz lub zidentyfikuj profil konfiguracji usługi Azure Databricks z następującymi polami w .databrickscfg pliku. Jeśli utworzysz profil, zastąp symbole zastępcze odpowiednimi wartościami. Aby użyć profilu za pomocą narzędzia lub zestawu SDK, zobacz Uwierzytelnianie dostępu do zasobów usługi Azure Databricks lub dokumentacji narzędzia lub zestawu SDK. Zobacz również Zmienne środowiskowe i pola dla ujednoliconego uwierzytelniania klienta oraz domyślne metody ujednoliconego uwierzytelniania klienta.

W przypadku operacji na poziomie konta ustaw następujące wartości w .databrickscfg pliku. W takim przypadku adres URL konsoli konta usługi Azure Databricks to https://accounts.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host                = <account-console-url>
account_id          = <account-id>
azure_tenant_id     = <azure-service-principal-tenant-id>
azure_client_id     = <azure-service-principal-application-id>
azure_client_secret = <azure-service-principal-client-secret>

W przypadku operacji na poziomie obszaru roboczego ustaw następujące wartości w .databrickscfg pliku. W takim przypadku hostem jest adres URL usługi Azure Databricks dla obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host                = <workspace-url>
azure_tenant_id     = <azure-service-principal-tenant-id>
azure_client_id     = <azure-service-principal-application-id>
azure_client_secret = <azure-service-principal-client-secret>

W przypadku operacji na poziomie obszaru roboczego, jeśli jednostka usługi MS Entra nie została jeszcze dodana do obszaru roboczego, określ azure_workspace_resource_id razem z identyfikatorem zasobu platformy Azure dla obszaru roboczego usługi Azure Databricks, a nie host adresem URL obszaru roboczego. W takim przypadku jednostka usługi MS Entra musi mieć co najmniej uprawnienia Współautor lub Właściciel w zasobie platformy Azure dla obszaru roboczego usługi Azure Databricks.

W przypadku interfejsu wiersza polecenia usługi Databricks wykonaj jedną z następujących czynności:

  • Ustaw zmienne środowiskowe zgodnie z opisem w sekcji "Środowisko" tego artykułu.
  • Ustaw wartości w pliku zgodnie z opisem w .databrickscfg sekcji "Profil" tego artykułu.

Zmienne środowiskowe zawsze mają pierwszeństwo przed wartościami w .databrickscfg pliku.

Zobacz też Uwierzytelnianie jednostki usługi Microsoft Entra ID.

Uwaga

Uwierzytelnianie jednostki usługi MS Entra jest obsługiwane w następujących wersjach programu Databricks Connect:

  • W przypadku języka Python usługa Databricks Connect dla środowiska Databricks Runtime 13.1 lub nowszego.
  • W przypadku języka Scala usługa Databricks Connect dla środowiska Databricks Runtime 13.3 LTS lub nowszego.

W przypadku usługi Databricks Connect można wykonać jedną z następujących czynności:

Wartości w .databrickscfg pliku zawsze mają pierwszeństwo przed zmiennymi środowiskowymi.

Aby zainicjować klienta usługi Databricks Connect przy użyciu tych zmiennych środowiskowych lub wartości w .databrickscfg pliku, zobacz jedną z następujących opcji:

W przypadku rozszerzenia usługi Databricks dla programu Visual Studio Code wykonaj następujące czynności:

  1. Ustaw wartości w .databrickscfg pliku dla operacji na poziomie obszaru roboczego usługi Azure Databricks zgodnie z opisem w sekcji "Profil" tego artykułu.
  2. W okienku Konfiguracja rozszerzenia usługi Databricks dla programu Visual Studio Code kliknij pozycję Konfiguruj usługę Databricks.
  3. W palecie poleceń w polu Host usługi Databricks wprowadź adres URL obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net, a następnie naciśnij Enter.
  4. W palecie poleceń wybierz nazwę profilu docelowego na liście adresu URL.

Aby uzyskać więcej informacji, zobacz Konfigurowanie uwierzytelniania dla rozszerzenia usługi Databricks dla programu Visual Studio Code.

W przypadku operacji na poziomie konta dla uwierzytelniania domyślnego:

provider "databricks" {
  alias = "accounts"
}

W przypadku konfiguracji bezpośredniej (zastąp retrieve symbole zastępcze własną implementacją, aby pobrać wartości z konsoli lub innego magazynu konfiguracji, takiego jak HashiCorp Vault. Zobacz też Dostawca magazynu). W takim przypadku adres URL konsoli konta usługi Azure Databricks to https://accounts.azuredatabricks.net:

provider "databricks" {
  alias               = "accounts"
  host                = <retrieve-account-console-url>
  account_id          = <retrieve-account-id>
  azure_tenant_id     = <retrieve-azure-tenant-id>
  azure_client_id     = <retrieve-azure-client-id>
  azure_client_secret = <retrieve-azure-client-secret>
}

W przypadku operacji na poziomie obszaru roboczego dla uwierzytelniania domyślnego:

provider "databricks" {
  alias = "workspace"
}

W przypadku konfiguracji bezpośredniej (zastąp retrieve symbole zastępcze własną implementacją, aby pobrać wartości z konsoli lub innego magazynu konfiguracji, takiego jak HashiCorp Vault. Zobacz też Dostawca magazynu). W takim przypadku hostem jest adres URL usługi Azure Databricks dla obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net:

provider "databricks" {
  alias               = "workspace"
  host                = <retrieve-workspace-url>
  azure_tenant_id     = <retrieve-azure-tenant-id>
  azure_client_id     = <retrieve-azure-client-id>
  azure_client_secret = <retrieve-azure-client-secret>
}

W przypadku operacji na poziomie obszaru roboczego, jeśli jednostka usługi MS Entra nie została jeszcze dodana do obszaru roboczego, określ azure_workspace_resource_id razem z identyfikatorem zasobu platformy Azure dla obszaru roboczego usługi Azure Databricks, a nie host adresem URL obszaru roboczego. W takim przypadku jednostka usługi MS Entra musi mieć co najmniej uprawnienia Współautor lub Właściciel w zasobie platformy Azure dla obszaru roboczego usługi Azure Databricks.

Aby uzyskać więcej informacji na temat uwierzytelniania za pomocą dostawcy narzędzia Terraform usługi Databricks, zobacz Authentication (Uwierzytelnianie).

W przypadku operacji na poziomie konta dla uwierzytelniania domyślnego:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

W przypadku konfiguracji bezpośredniej (zastąp retrieve symbole zastępcze własną implementacją, aby pobrać wartości z konsoli lub innego magazynu konfiguracji, takiego jak Azure KeyVault). W takim przypadku adres URL konsoli konta usługi Azure Databricks to https://accounts.azuredatabricks.net:

from databricks.sdk import AccountClient

a = AccountClient(
  host                = retrieve_account_console_url(),
  account_id          = retrieve_account_id(),
  azure_tenant_id     = retrieve_azure_tenant_id(),
  azure_client_id     = retrieve_azure_client_id(),
  azure_client_secret = retrieve_azure_client_secret()
)
# ...

W przypadku operacji na poziomie obszaru roboczego dla uwierzytelniania domyślnego:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

W przypadku konfiguracji bezpośredniej (zastąp retrieve symbole zastępcze własną implementacją, aby pobrać wartości z konsoli lub innego magazynu konfiguracji, takiego jak Azure KeyVault). W takim przypadku hostem jest adres URL usługi Azure Databricks dla obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(
  host                = retrieve_workspace_url(),
  azure_tenant_id     = retrieve_azure_tenant_id(),
  azure_client_id     = retrieve_azure_client_id(),
  azure_client_secret = retrieve_azure_client_secret()
)
# ...

W przypadku operacji na poziomie obszaru roboczego, jeśli jednostka usługi MS Entra nie została jeszcze dodana do obszaru roboczego, określ azure_workspace_resource_id razem z identyfikatorem zasobu platformy Azure dla obszaru roboczego usługi Azure Databricks, a nie host adresem URL obszaru roboczego. W takim przypadku jednostka usługi MS Entra musi mieć co najmniej uprawnienia Współautor lub Właściciel w zasobie platformy Azure dla obszaru roboczego usługi Azure Databricks.

Aby uzyskać więcej informacji na temat uwierzytelniania za pomocą narzędzi i zestawów SDK usługi Databricks korzystających z języka Python i implementujących ujednolicone uwierzytelnianie klienta usługi Databricks, zobacz:

W przypadku operacji na poziomie konta dla uwierzytelniania domyślnego:

import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...

W przypadku konfiguracji bezpośredniej (zastąp retrieve symbole zastępcze własną implementacją, aby pobrać wartości z konsoli lub innego magazynu konfiguracji, takiego jak Azure KeyVault). W takim przypadku adres URL konsoli konta usługi Azure Databricks to https://accounts.azuredatabricks.net:

import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveAccountConsoleUrl())
  .setAccountId(retrieveAccountId())
  .setAzureTenantId(retrieveAzureTenantId())
  .setAzureClientId(retrieveAzureClientId())
  .setAzureClientSecret(retrieveAzureClientSecret())
AccountClient a = new AccountClient(cfg);
// ...

W przypadku operacji na poziomie obszaru roboczego dla uwierzytelniania domyślnego:

import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...

W przypadku konfiguracji bezpośredniej (zastąp retrieve symbole zastępcze własną implementacją, aby pobrać wartości z konsoli lub innego magazynu konfiguracji, takiego jak Azure KeyVault). W takim przypadku hostem jest adres URL usługi Azure Databricks dla obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net:

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveWorkspaceUrl())
  .setAzureTenantId(retrieveAzureTenantId())
  .setAzureClientId(retrieveAzureClientId())
  .setAzureClientSecret(retrieveAzureClientSecret())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

W przypadku operacji na poziomie obszaru roboczego, jeśli jednostka usługi MS Entra nie została jeszcze dodana do obszaru roboczego, określ setAzureWorkspaceResourceId razem z identyfikatorem zasobu platformy Azure dla obszaru roboczego usługi Azure Databricks, a nie setHost adresem URL obszaru roboczego. W takim przypadku jednostka usługi MS Entra musi mieć co najmniej uprawnienia Współautor lub Właściciel w zasobie platformy Azure dla obszaru roboczego usługi Azure Databricks.

Aby uzyskać więcej informacji na temat uwierzytelniania za pomocą narzędzi i zestawów SDK usługi Databricks korzystających z języka Java oraz implementujących ujednolicone uwierzytelnianie klienta usługi Databricks, zobacz:

W przypadku operacji na poziomie konta dla uwierzytelniania domyślnego:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...

W przypadku konfiguracji bezpośredniej (zastąp retrieve symbole zastępcze własną implementacją, aby pobrać wartości z konsoli lub innego magazynu konfiguracji, takiego jak Azure KeyVault). W takim przypadku adres URL konsoli konta usługi Azure Databricks to https://accounts.azuredatabricks.net:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:              retrieveAccountConsoleUrl(),
  AccountId:         retrieveAccountId(),
  AzureTenantId:     retrieveAzureTenantId(),
  AzureClientId:     retrieveAzureClientId(),
  AzureClientSecret: retrieveAzureClientSecret(),
}))
// ...

W przypadku operacji na poziomie obszaru roboczego dla uwierzytelniania domyślnego:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...

W przypadku konfiguracji bezpośredniej (zastąp retrieve symbole zastępcze własną implementacją, aby pobrać wartości z konsoli lub innego magazynu konfiguracji, takiego jak Azure KeyVault). W takim przypadku hostem jest adres URL usługi Azure Databricks dla obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host:              retrieveWorkspaceUrl(),
  AzureTenantId:     retrieveAzureTenantId(),
  AzureClientId:     retrieveAzureClientId(),
  AzureClientSecret: retrieveAzureClientSecret(),
}))
// ...

W przypadku operacji na poziomie obszaru roboczego, jeśli jednostka usługi MS Entra nie została jeszcze dodana do obszaru roboczego, określ AzureWorkspaceResourceId razem z identyfikatorem zasobu platformy Azure dla obszaru roboczego usługi Azure Databricks, a nie Host adresem URL obszaru roboczego. W takim przypadku jednostka usługi MS Entra musi mieć co najmniej uprawnienia Współautor lub Właściciel w zasobie platformy Azure dla obszaru roboczego usługi Azure Databricks.

Aby uzyskać więcej informacji na temat uwierzytelniania za pomocą narzędzi i zestawów SDK usługi Databricks korzystających z języka Go i implementujących ujednolicone uwierzytelnianie klienta usługi Databricks, zobacz Uwierzytelnianie zestawu SDK usługi Databricks dla języka Go przy użyciu konta lub obszaru roboczego usługi Azure Databricks.