Udostępnij przez


Uwierzytelnianie za pomocą jednostek usługi Entra firmy Microsoft

Uwierzytelnianie jednostki usługi Microsoft Entra używa poświadczeń jednostki usługi Microsoft Entra do uwierzytelniania. Aby utworzyć i zarządzać głównymi danymi usługi (service principals) dla Azure Databricks, zobacz:

Uwaga

W większości scenariuszy usługa Databricks zaleca użycie uwierzytelniania maszynowego do maszyny OAuth (M2M ). Protokół OAuth M2M używa tokenów dostępu OAuth, które są bardziej niezawodne podczas uwierzytelniania tylko w usłudze Azure Databricks. Uwierzytelnianie za pomocą głównego użytkownika usługi Microsoft Entra należy stosować tylko wtedy, gdy trzeba jednocześnie uwierzytelnić się wobec usługi Azure Databricks i innych zasobów Azure.

Aby uzyskać więcej informacji, zobacz Używanie tożsamości zarządzanych platformy Azure z usługą Azure Databricks i Uwierzytelnianie za pomocą usługi Azure DevOps w usłudze Azure Databricks.

Aby skonfigurować uwierzytelnianie przy użyciu elementu głównego usługi Microsoft Entra w programie Azure Databricks, należy ustawić następujące powiązane zmienne środowiskowe, .databrickscfg pola, pola Terraform lub Config pola:

  • Host usługi Azure Databricks.

    • Aby wykonać operacje na koncie, określ https://accounts.azuredatabricks.net.
    • W przypadku operacji na obszarze roboczym Databricks zaleca określenie adresu URL przypisanego do obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net, oraz jawne przypisanie jednostki usługi Microsoft Entra do obszaru roboczego. Alternatywnie określ identyfikator zasobu platformy Azure. Takie podejście wymaga uprawnień współautora lub właściciela zasobu platformy Azure lub roli niestandardowej z określonymi uprawnieniami usługi Azure Databricks.
  • W przypadku operacji na koncie, identyfikator konta usługi Azure Databricks.

  • Identyfikator zasobu Azure.

  • Identyfikator dzierżawcy jednostki usługi Microsoft Entra.

  • Identyfikator klienta jednostki usługi Microsoft Entra.

  • Tajemnica klienta głównej jednostki usługi Microsoft Entra.

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

Zmienne środowiskowe

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

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

  • DATABRICKS_HOST, ustawiony na wartość URL konsoli konta Azure Databricks, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

Dla operacji na poziomie przestrzeni roboczej, ustaw następujące zmienne środowiskowe:

  • DATABRICKS_HOST, ustawione na wartość adresu URL przypisanego do każdego obszaru roboczego Azure Databricks, na przykład .
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

Databricks zaleca użycie DATABRICKS_HOST i jawne przypisanie elementu usługi Microsoft Entra do obszaru roboczego. Alternatywnie użyj identyfikatora DATABRICKS_AZURE_RESOURCE_ID zasobu platformy Azure. Takie podejście wymaga uprawnień współautora lub właściciela zasobu platformy Azure lub roli niestandardowej z określonymi uprawnieniami usługi Azure Databricks.

Profile konfiguracji

Utwórz lub zidentyfikuj profil konfiguracji Azure Databricks zawierający następujące pola w pliku . Jeśli tworzysz profil, zamień symbole zastępcze na odpowiednie wartości. Aby użyć profilu z narzędziem lub zestawem SDK, zobacz Autoryzowanie dostępu do zasobów usługi Azure Databricks lub dokumentacji narzędzia lub zestawu SDK. Zobacz również Zmienne środowiskowe i pola dotyczące ujednoliconego uwierzytelniania i priorytetu metody uwierzytelniania.

Dla operacji na poziomie konta ustaw następujące wartości w pliku . W tym przypadku, adres URL konsoli konta 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>

Dla operacji na poziomie przestrzeni roboczej ustaw następujące wartości w pliku .databrickscfg. W tym przypadku hostem jest URL per-workspace Azure Databricks, 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>

Databricks zaleca użycie host i jawne przypisanie elementu usługi Microsoft Entra do obszaru roboczego. Alternatywnie użyj identyfikatora azure_workspace_resource_id zasobu platformy Azure. Takie podejście wymaga uprawnień współautora lub właściciela zasobu platformy Azure lub roli niestandardowej z określonymi uprawnieniami usługi Azure Databricks.

Interfejs CLI usługi Databricks

Dla Databricks CLI, wykonaj jedną z następujących czynności:

  • Ustaw zmienne środowiskowe zgodnie z wartością określoną na karcie Środowisko .
  • Ustaw wartości w .databrickscfg pliku zgodnie z wartościami określonymi na karcie Profil .

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

Zobacz także Microsoft Entra ID service principal authentication.

Databricks Connect

Uwaga

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

  • Dla Pythona, Databricks Connect dla Databricks Runtime 13.1 i nowszych wersji.
  • W przypadku języka Scala użyj Databricks Connect dla środowiska Databricks Runtime od wersji 13.3 LTS i wyższych.

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

  • Użyj profilu konfiguracji: Ustaw wartości na poziomie obszaru roboczego w .databrickscfg pliku zgodnie z opisem na karcie Profil . cluster_id Ustaw również adres URL wystąpienia obszaru roboczego.
  • Użyj zmiennych środowiskowych: Ustaw te same wartości, jak pokazano na karcie Środowisko . DATABRICKS_CLUSTER_ID Ustaw również adres URL wystąpienia obszaru roboczego.

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

Aby zainicjować usługę Databricks Connect przy użyciu tych ustawień, zobacz Konfiguracja obliczeniowa dla usługi Databricks Connect.

Rozszerzenie programu Visual Studio Code

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, jak określono na karcie Profil .
  2. W panelu Konfiguracja rozszerzenia Databricks dla Visual Studio Code, kliknij Konfiguruj Databricks.
  3. W palecie poleceń, dla hosta Databricks, wprowadź swój URL dla poszczególnych przestrzeni roboczych, na przykład , a następnie naciśnij .
  4. W palecie poleceń wybierz nazwę profilu docelowego na liście przeznaczonej dla adresu URL.

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

Terraform

Dla operacji na poziomie konta, dla domyślnego uwierzytelniania:

provider "databricks" {
  alias = "accounts"
}

W przypadku konfiguracji bezpośredniej zastąp symbole zastępcze wartościami z konsoli lub innego magazynu konfiguracji, takiego jak HashiCorp Vault. Zobacz też Dostawca magazynu. W tym przypadku, adres URL konsoli konta Azure Databricks to https://accounts.azuredatabricks.net:

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

Dla operacji na poziomie przestrzeni roboczej, dla domyślnego uwierzytelniania:

provider "databricks" {
  alias = "workspace"
}

W przypadku konfiguracji bezpośredniej zastąp symbole zastępcze wartościami z konsoli lub innego magazynu konfiguracji, takiego jak HashiCorp Vault. Zobacz też Dostawca magazynu. W tym przypadku hostem jest URL per-workspace Azure Databricks, na przykład https://adb-1234567890123456.7.azuredatabricks.net:

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

Databricks zaleca użycie host i jawne przypisanie elementu usługi Microsoft Entra do obszaru roboczego. Alternatywnie użyj identyfikatora azure_workspace_resource_id zasobu platformy Azure. Takie podejście wymaga uprawnień współautora lub właściciela zasobu platformy Azure lub roli niestandardowej z określonymi uprawnieniami usługi Azure Databricks.

Aby uzyskać więcej informacji na temat uwierzytelniania przy użyciu dostawcy Databricks Terraform, zobacz Authentication.

Zestaw SDK usługi Databricks dla języka Python

Dla operacji na poziomie konta, dla domyślnego uwierzytelniania:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

W przypadku konfiguracji bezpośredniej zastąp wywołania funkcji kodem, który pobiera wartości z konsoli lub innego magazynu konfiguracji, takiego jak Azure KeyVault. W tym przypadku, adres URL konsoli konta Azure Databricks to https://accounts.azuredatabricks.net:

from databricks.sdk import AccountClient

a = AccountClient(
  host                = get_account_console_url(),
  account_id          = get_account_id(),
  azure_tenant_id     = get_azure_tenant_id(),
  azure_client_id     = get_azure_client_id(),
  azure_client_secret = get_azure_client_secret()
)
# ...

Dla operacji na poziomie przestrzeni roboczej, dla domyślnego uwierzytelniania:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

W przypadku konfiguracji bezpośredniej zastąp wywołania funkcji kodem, który pobiera wartości z konsoli lub innego magazynu konfiguracji, takiego jak Azure KeyVault. W tym przypadku hostem jest URL per-workspace Azure Databricks, na przykład https://adb-1234567890123456.7.azuredatabricks.net:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(
  host                = get_workspace_url(),
  azure_tenant_id     = get_azure_tenant_id(),
  azure_client_id     = get_azure_client_id(),
  azure_client_secret = get_azure_client_secret()
)
# ...

Databricks zaleca użycie host i jawne przypisanie elementu usługi Microsoft Entra do obszaru roboczego. Alternatywnie użyj identyfikatora azure_workspace_resource_id zasobu platformy Azure. Takie podejście wymaga uprawnień współautora lub właściciela zasobu platformy Azure lub roli niestandardowej z określonymi uprawnieniami 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 usługi Databricks, zobacz:

Databricks SDK dla Javy

Dla operacji na poziomie konta, dla domyślnego uwierzytelniania:

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

W przypadku konfiguracji bezpośredniej zastąp wywołania funkcji kodem, który pobiera wartości z konsoli lub innego magazynu konfiguracji, takiego jak Azure KeyVault. W tym przypadku, adres URL konsoli konta Azure Databricks to https://accounts.azuredatabricks.net:

import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(getAccountConsoleUrl())
  .setAccountId(getAccountId())
  .setAzureTenantId(getAzureTenantId())
  .setAzureClientId(getAzureClientId())
  .setAzureClientSecret(getAzureClientSecret())
AccountClient a = new AccountClient(cfg);
// ...

Dla operacji na poziomie przestrzeni roboczej, dla domyślnego uwierzytelniania:

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

W przypadku konfiguracji bezpośredniej zastąp wywołania funkcji kodem, który pobiera wartości z konsoli lub innego magazynu konfiguracji, takiego jak Azure KeyVault. W tym przypadku hostem jest URL per-workspace Azure Databricks, 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(getWorkspaceUrl())
  .setAzureTenantId(getAzureTenantId())
  .setAzureClientId(getAzureClientId())
  .setAzureClientSecret(getAzureClientSecret())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

Databricks zaleca użycie setHost i jawne przypisanie elementu usługi Microsoft Entra do obszaru roboczego. Alternatywnie użyj identyfikatora setAzureWorkspaceResourceId zasobu platformy Azure. Takie podejście wymaga uprawnień współautora lub właściciela zasobu platformy Azure lub roli niestandardowej z określonymi uprawnieniami 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 i implementujących ujednolicone uwierzytelnianie usługi Databricks, zobacz:

Zestaw SDK usługi Databricks dla języka Go

Dla operacji na poziomie konta, dla domyślnego uwierzytelniania:

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

W przypadku konfiguracji bezpośredniej zastąp wywołania funkcji kodem, który pobiera wartości z konsoli lub innego magazynu konfiguracji, takiego jak Azure KeyVault. W tym przypadku, adres URL konsoli konta Azure Databricks to https://accounts.azuredatabricks.net:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:              getAccountConsoleUrl(),
  AccountId:         getAccountId(),
  AzureTenantId:     getAzureTenantId(),
  AzureClientId:     getAzureClientId(),
  AzureClientSecret: getAzureClientSecret(),
}))
// ...

Dla operacji na poziomie przestrzeni roboczej, dla domyślnego uwierzytelniania:

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

W przypadku konfiguracji bezpośredniej zastąp wywołania funkcji kodem, który pobiera wartości z konsoli lub innego magazynu konfiguracji, takiego jak Azure KeyVault. W tym przypadku hostem jest URL per-workspace Azure Databricks, na przykład https://adb-1234567890123456.7.azuredatabricks.net:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host:              getWorkspaceUrl(),
  AzureTenantId:     getAzureTenantId(),
  AzureClientId:     getAzureClientId(),
  AzureClientSecret: getAzureClientSecret(),
}))
// ...

Databricks zaleca użycie Host i jawne przypisanie elementu usługi Microsoft Entra do obszaru roboczego. Alternatywnie użyj identyfikatora AzureWorkspaceResourceId zasobu platformy Azure. Takie podejście wymaga uprawnień współautora lub właściciela zasobu platformy Azure lub roli niestandardowej z określonymi uprawnieniami usługi Azure Databricks.

Aby uzyskać więcej informacji na temat uwierzytelniania za pomocą narzędzi i SDK Databricks wykorzystujących Go oraz implementujących zunifikowane uwierzytelnianie klienta Databricks, zapoznaj się z Uwierzytelnianie SDK Databricks dla Go za pomocą konta Azure Databricks lub obszaru roboczego.

Dodatkowe zasoby