OAuth ile Azure Databricks'e hizmet sorumlusu erişimini yetkilendirme

Bu sayfada, otomatik CLI komutları veya betiklerden veya uygulamalardan yapılan REST API çağrıları gibi katılımsız işlemlerden Azure Databricks kaynaklarına erişimin nasıl yetkilendirildiği açıklanır.

Azure Databricks, kullanıcı arabirimi dışında hizmet sorumlusu yetkilendirmesi ve kimlik doğrulaması için tercih edilen protokol olarak OAuth 2.0 kullanır. Birleşik istemci kimlik doğrulaması, belirteç oluşturmayı ve yenilemeyi otomatikleştirir. Bir hizmet sorumlusu oturum açtığında ve onay verildiğinde, OAuth CLI, SDK veya onun adına kullanılacak başka bir araç için bir erişim belirteci yayınlar. Her erişim belirteci bir saat boyunca geçerlidir ve bundan sonra otomatik olarak yeni bir belirteç istenir.

Bu sayfada yetkilendirme , Azure Databricks kaynaklarına hizmet sorumlusu erişimi vermek için OAuth kullanmayı, kimlik doğrulaması ise erişim belirteçleri aracılığıyla kimlik bilgilerini doğrulamayı ifade eder.

Daha üst düzey ayrıntılar için bkz. Azure Databricks kaynaklarına erişimi yetkilendirme.

Not

Bu sayfa, Databricks tarafından yönetilen hizmet sorumluları için OAuth M2M kimlik doğrulamasını kapsar. Microsoft Entra ile yönetilen hizmet sorumlularını kullanıyorsanız bkz. Microsoft Entra hizmet sorumlularıyla kimlik doğrulaması.

Hizmet sorumlusunu yetkilendirmenin yolları

Azure Databricks, hizmet sorumlusu yetkilendirmek için iki yolu destekler:

  • Otomatik (önerilir): Azure Databricks Terraform SDK'sı gibi desteklenen araçlar ve SDK'larla birleşik kimlik doğrulaması kullanın. Bu yaklaşım belirteç oluşturmayı ve otomatik olarak yenilemeyi işler ve otomasyon veya diğer katılımsız iş yükleri için idealdir.

  • El ile: Bir kod doğrulayıcı ve sınama oluşturun, ardından bunları OAuth belirteci ile değiştirin. Aracınız veya API'niz birleşik kimlik doğrulamayı desteklemiyorsa bu yöntemi kullanın. Uygulamanız için kendi belirteç yenileme mekanizmanızı oluşturmanız gerekebilir. Ayrıntılar için bkz. OAuth M2M erişim belirteçlerini el ile oluşturma.

Önkoşullar

OAuth'u yapılandırmadan önce aşağıdaki adımları uygulayın:

  1. Azure Databricks hizmet sorumlusu oluşturun. Bkz. Hesabınıza hizmet sorumluları ekleme.
  2. Hizmet sorumlusunun Yapılandırma sekmesine gidin ve bu çalışma alanı için sahip olması gereken yetkilendirmeleri seçin.
  3. İzinler sekmesine gidin ve bu hizmet sorumlusunu yönetmek ve kullanmak istediğiniz tüm Azure Databricks kullanıcılarına, hizmet sorumlularına ve gruplara erişim verin. Bkz . Hizmet sorumlularını kimler yönetebilir ve kullanabilir?.

Adım 1: OAuth gizli anahtarı oluşturma

Azure Databricks kaynaklarınıza OAuth ile erişim yetkisi vermek için bir OAuth gizli dizisi oluşturmanız gerekir. Gizli anahtar, kimlik doğrulaması için OAuth erişim belirteçleri oluşturmak için kullanılır. Bir hizmet sorumlusu en fazla beş OAuth gizli dizisine sahip olabilir ve her gizli dizi iki yıla kadar geçerli olabilir.

Hesap yöneticileri ve çalışma alanı yöneticileri, hizmet sorumlusu için bir OAuth gizli anahtarı oluşturabilir.

  1. Üst çubukta kullanıcı adınıza tıklayın ve Ayarlar'ı seçin.
  2. Kimlik ve erişim sekmesine tıklayın.
  3. Hizmet sorumluları yanındaki Yönet seçeneğine tıklayın.
  4. Hizmet sorumlusunu seçin.
  5. Gizlilik sekmesine tıklayın.
  6. Gizli anahtar oluştur seçeneğine tıklayın.
  7. Sırrın süresini gün cinsinden (en fazla 730 gün) olarak ayarlayın.
  8. Oluştur'a tıklayın.
  9. Görüntülenen anahtar ve istemci kimliğini kopyalayın, sonra Bitti'ye tıklayın. Sır yalnızca bir kez gösterilir. İstemci kimliği, hizmet sorumlusunun uygulama kimliğiyle aynıdır.

Hesap yöneticileri, hesap konsolundan bir OAuth gizli anahtarı da oluşturabilir. Kullanıcı yönetimi sekmesinden hizmet sorumlusunu seçin ve ardından Kimlik Bilgileri ve gizli diziler sekmesine gidin.

Not

Hizmet sorumlusunun kümeleri veya SQL ambarlarını kullanmasını sağlamak için hizmet sorumlusuna bunlara erişim vermeniz gerekir. Bkz. İşlem izinleri veya SQL ambarı yönetme.

2. Adım: OAuth yetkilendirmesini kullanma

Birleşik kimlik doğrulama aracıyla OAuth yetkilendirmesini kullanmak için aşağıdaki ilişkili ortam değişkenlerini, alanları, .databrickscfg Terraform alanlarını veya Config alanları ayarlamanız gerekir:

  • Azure Databricks konağı, hesap operasyonları için https://accounts.azuredatabricks.net olarak belirtilmiş veya örneğin çalışma alanı operasyonları için hedef çalışma alanı başına URL, https://adb-1234567890123456.7.azuredatabricks.net.
  • Azure Databricks hesap işlemleri için Azure Databricks hesap kimliği.
  • Hizmet sorumlusu istemci kimliği.
  • Hizmet temsili sırrı.

OAuth hizmet sorumlusu kimlik doğrulamasını gerçekleştirmek için, katılan aracı veya SDK'yı temel alarak aşağıdakileri kodunuzla tümleştirin:

Ortam

Belirli bir Azure Databricks kimlik doğrulama türü için ortam değişkenlerini bir araç veya SDK ile kullanmak için bkz. Azure Databricks kaynaklarına veya aracın ya da SDK'nın belgelerine erişimi yetkilendirme. Ayrıca bkz . Birleşik kimlik doğrulaması veKimlik doğrulama yöntemi önceliği için ortam değişkenleri ve alanları.

hesap düzeyinde işlemler için aşağıdaki ortam değişkenlerini ayarlayın:

  • DATABRICKS_HOST, Azure Databricks hesap konsolu URL'nizin değerine https://accounts.azuredatabricks.net ayarlayın.
  • DATABRICKS_ACCOUNT_ID
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

çalışma alanı düzeyinde işlemler için aşağıdaki ortam değişkenlerini ayarlayın:

  • DATABRICKS_HOST, Azure Databricks çalışma alanı özel URL değerine ayarlayın, örneğin https://adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

Profil

Dosyanızda aşağıdaki alanlarla bir Azure Databricks .databrickscfg oluşturun veya tanımlayın. Profili oluşturduğunuzda, yer tutucuları uygun değerlerle değiştirin. Profili bir araç veya SDK ile kullanmak için Azure Databricks kaynaklarına erişimi yetkilendirme veya aracın ya da SDK'nın belgelerine bakın. Ayrıca bkz . Birleşik kimlik doğrulaması veKimlik doğrulama yöntemi önceliği için ortam değişkenleri ve alanları.

hesap düzeyinde işlemler için dosyanızda aşağıdaki değerleri ayarlayın. Bu durumda Azure Databricks hesap konsolu URL'si şöyledir https://accounts.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host          = <account-console-url>
account_id    = <account-id>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

çalışma alanı düzeyinde işlemler için dosyanızda aşağıdaki değerleri ayarlayın. Bu durumda konak, çalışma alanı başına Azure Databricks URL'sidir, örneğin https://adb-1234567890123456.7.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host          = <workspace-url>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

CLI

Databricks CLI için aşağıdakilerden birini yapın:

  • Ortam sekmesinde belirtildiği gibi ortam değişkenlerini ayarlayın.
  • .databrickscfg dosyasındaki değerlerini Profil sekmesinde belirtildiği gibi ayarlayın.

Ortam değişkenleri her zaman .databrickscfg dosyanızdaki değerlerden önceliklidir.

Ayrıca bkz. OAuth makineden makineye (M2M) kimlik doğrulaması.

Bağlan

Not

OAuth hizmet sorumlusu kimlik doğrulaması aşağıdaki Databricks Connect sürümlerinde desteklenir:

  • Python için, Databricks Runtime 14.0 ve üzeri sürümler için Databricks Connect.
  • Scala için Databricks Runtime 13.3 LTS ve üzeri için Databricks Connect. Databricks Runtime 13.3 LTS ve üzeri için Databricks Connect'e dahil olan Java için Databricks SDK'sı, Java 0.17.0 veya üzeri için Databricks SDK'sına yükseltilmelidir.

Databricks Connect için şunları yapabilirsiniz:

  • Yapılandırma profili kullanın: Çalışma alanı düzeyi değerleri, dosyanızda .databrickscfg, Profil sekmesinde açıklandığı şekilde ayarlayın. Ayrıca cluster_id öğesini, çalışma alanı örneği URL'niz olarak ayarlayın.
  • Ortam değişkenlerini kullanın:Ortam sekmesinde gösterildiği gibi aynı değerleri ayarlayın. ayrıca öğesini DATABRICKS_CLUSTER_ID çalışma alanı örneği URL'niz olarak ayarlayın.

içindeki .databrickscfg değerler ortam değişkenlerinden önceliklidir.

Databricks Connect'i bu ayarlarla başlatmak için bkz. Databricks Connect için işlem yapılandırması.

VS Code

Databricks IDE uzantısı için şunları yapın:

  1. dosyanızdaki Azure Databricks çalışma alanı düzeyindeki işlemler için Profil sekmesinde belirtilen değerleri ayarlayın.
  2. Databricks IDE uzantısı Yapılandırma panelinde, Configure Databricks seçeneğine tıklayın.
  3. Komut Paleti'nde, Databricks Sunucusu için çalışma alanı başına URL'nizi girin, örneğin , ardından tuşuna basın.
  4. Komut Paleti'nde, URL'niz için listeden hedef profilinizin adını seçin.

Daha fazla bilgi için bkz. Databricks IDE uzantısı için yetkilendirme kur.

Terraform yazılımı

Hesap düzeyinde işlemler

Varsayılan kimlik doğrulaması için:

provider "databricks" {
  alias = "accounts"
}

Doğrudan yapılandırma için:

provider "databricks" {
  alias         = "accounts"
  host          = <retrieve-account-console-url>
  account_id    = <retrieve-account-id>
  client_id     = <retrieve-client-id>
  client_secret = <retrieve-client-secret>
}

retrieve Değerleri konsoldan veya HashiCorp Vault gibi başka bir yapılandırma deposundan almak için yer tutucuları kendi uygulamanızla değiştirin. Ayrıca bkz. Kasa Sağlayıcısı. Bu durumda Azure Databricks hesap konsolu URL'si şeklindedir https://accounts.azuredatabricks.net.

Çalışma alanı düzeyinde işlemler

Varsayılan yapılandırma için:

provider "databricks" {
  alias = "workspace"
}

Doğrudan yapılandırma için:

provider "databricks" {
  alias         = "workspace"
  host          = <retrieve-workspace-url>
  client_id     = <retrieve-client-id>
  client_secret = <retrieve-client-secret>
}

retrieve Değerleri konsoldan veya HashiCorp Vault gibi başka bir yapılandırma deposundan almak için yer tutucuları kendi uygulamanızla değiştirin. Ayrıca bkz. Kasa Sağlayıcısı. Bu durumda konak, her çalışma alanı için Azure Databricks URL'sini ifade eder (örneğin ).

Databricks Terraform sağlayıcısıyla kimlik doğrulaması hakkında daha fazla bilgi için bkz . Kimlik doğrulaması.

Piton

Hesap düzeyinde işlemler

Varsayılan yapılandırma için:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Doğrudan yapılandırma için:

from databricks.sdk import AccountClient

a = AccountClient(
  host          = retrieve_account_console_url(),
  account_id    = retrieve_account_id(),
  client_id     = retrieve_client_id(),
  client_secret = retrieve_client_secret()
)
# ...

retrieve Değerleri konsoldan veya Azure KeyVault gibi başka bir yapılandırma deposundan almak için yer tutucuları kendi uygulamanızla değiştirin. Bu durumda Azure Databricks hesap konsolu URL'si şeklindedir https://accounts.azuredatabricks.net.

Çalışma alanı düzeyinde işlemler

Varsayılan yapılandırma için:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Doğrudan yapılandırma için:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(
  host          = retrieve_workspace_url(),
  client_id     = retrieve_client_id(),
  client_secret = retrieve_client_secret()
)
# ...

retrieve Değerleri konsoldan veya Azure KeyVault gibi başka bir yapılandırma deposundan almak için yer tutucuları kendi uygulamanızla değiştirin. Bu durumda konak, her çalışma alanı için Azure Databricks URL'sini ifade eder (örneğin ).

Python kullanan ve birleşik kimlik doğrulaması uygulayan Databricks araçları ve SDK'ları ile kimlik doğrulaması hakkında daha fazla bilgi için bkz:

Not

Databricks IDE uzantısı Python kullanır ancak henüz OAuth hizmet ana doğrulamasını uygulamamıştır.

Java

Çalışma alanı düzeyinde işlemler

Varsayılan yapılandırma için:

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

Doğrudan yapılandırma için:

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveWorkspaceUrl())
  .setClientId(retrieveClientId())
  .setClientSecret(retrieveClientSecret());
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

retrieve Değerleri konsoldan veya Azure KeyVault gibi başka bir yapılandırma deposundan almak için yer tutucuları kendi uygulamanızla değiştirin. Bu durumda konak, her çalışma alanı için Azure Databricks URL'sini ifade eder (örneğin ).

Java kullanan ve birleşik kimlik doğrulaması uygulayan Databricks araçları ve SDK'ları ile kimlik doğrulaması hakkında daha fazla bilgi için bkz:

Başlayın

Hesap düzeyinde işlemler

Varsayılan yapılandırma:

import "github.com/databricks/databricks-sdk-go"

// Uses environment configuration automatically
a := databricks.Must(databricks.NewAccountClient())

Doğrudan yapılandırma için:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:         retrieveWorkspaceUrl(),
  ClientId:     retrieveClientId(),
  ClientSecret: retrieveClientSecret(),
}))
// ...

retrieve Değerleri konsoldan veya Azure KeyVault gibi başka bir yapılandırma deposundan almak için yer tutucuları kendi uygulamanızla değiştirin. Bu durumda Azure Databricks hesap konsolu URL'si şeklindedir https://accounts.azuredatabricks.net.

Çalışma alanı düzeyinde işlemler

Varsayılan yapılandırma için:

import "github.com/databricks/databricks-sdk-go"

// Uses environment configuration automatically
w := databricks.Must(databricks.NewWorkspaceClient())

Doğrudan yapılandırma için:

import "github.com/databricks/databricks-sdk-go"
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
    Host:         retrieveAccountConsoleUrl(),
    ClientId:     retrieveClientId(),
    ClientSecret: retrieveClientSecret(),
}))
// ...

retrieve Değerleri konsoldan veya Azure KeyVault gibi başka bir yapılandırma deposundan almak için yer tutucuları kendi uygulamanızla değiştirin. Bu durumda konak, her çalışma alanı için Azure Databricks URL'sini ifade eder (örneğin ).

Go kullanan ve Databricks istemcisi birleşik kimlik doğrulaması uygulayan Databricks araçları ve SDK'ları ile kimlik doğrulaması hakkında daha fazla bilgi için bkz . Azure Databricks hesabınız veya çalışma alanınızla Go için Databricks SDK'sının kimliğini doğrulama.

OAuth M2M erişim belirteçlerini el ile oluşturma

Bu bölüm, Databricks birleşik kimlik doğrulamasını desteklemeyen araçlara veya hizmetlere yöneliktir. M2M kimlik doğrulaması için Azure Databricks OAuth belirteçlerini el ile oluşturmanız, yenilemeniz veya kullanmanız gerekiyorsa aşağıdaki adımları izleyin.

OAuth M2M erişim belirteci oluşturmak için hizmet sorumlusunun istemci kimliğini ve OAuth gizli dizisini kullanın. Her erişim belirteci bir saat geçerlidir. Süresi dolduktan sonra yeni bir belirteç isteyin. Hesap veya çalışma alanı düzeyinde belirteçler oluşturabilirsiniz:

Hesap düzeyinde erişim belirteci oluşturma

Hesap ve hizmet sorumlusunun erişebileceği tüm çalışma alanları için REST API'lerini çağırmak için hesap düzeyinde bir belirteç kullanın.

  1. Hesap kimliğinizi bulun.

  2. Aşağıdaki URL'deki <account-id> öğesini hesap kimliğinizle değiştirerek belirteç uç noktası URL'sini oluşturun.

    https://accounts.azuredatabricks.net/oidc/accounts/<my-account-id>/v1/token
    
  3. OAuth erişim belirteci istemek için kullanın curl . Replace:

    • Yukarıdaki URL ile.
    • <client-id> hizmet sorumlusunun istemci kimliği (uygulama kimliği) ile birlikte.
    • <client-secret> hizmet temsilcisinin OAuth sırrıyla birlikte.
    export CLIENT_ID=<client-id>
    export CLIENT_SECRET=<client-secret>
    
      curl --request POST \
      --url <token-endpoint-URL> \
      --user "$CLIENT_ID:$CLIENT_SECRET" \
      --data 'grant_type=client_credentials&scope=all-apis'
    

    Bu, şuna benzer bir yanıt oluşturur:

    {
      "access_token": "eyJraWQiOiJkYTA4ZTVjZ…",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    all-apis kapsamı, hizmet sorumlusunun erişim iznine sahip olduğu herhangi bir Databricks REST API'sini çağırmasına izin veren bir OAuth erişim belirteci talep etmektedir.

  4. Yanıttan access_token değeri kopyalayın.

Çalışma alanı düzeyinde erişim belirteci oluşturma

Çalışma alanı düzeyinde bir belirteci yalnızca bu çalışma alanında REST API'leriyle kullanın.

  1. Azure Databricks <databricks-instance>'inizi <databricks-instance> çalışma alanı örneği adıyla değiştirerek belirteç uç noktası URL'sini oluşturun, örneğin adb-1234567890123456.7.azuredatabricks.net:

    https://<databricks-instance>/oidc/v1/token
    
  2. OAuth erişim belirteci istemek için kullanın curl . Replace:

    • Yukarıdaki URL ile.
    • <client-id> hizmet sorumlusunun istemci kimliği (uygulama kimliği) ile birlikte.
    • <client-secret> hizmet temsilcisinin OAuth sırrıyla birlikte.
    export CLIENT_ID=<client-id>
    export CLIENT_SECRET=<client-secret>
    
    curl --request POST \
    --url <token-endpoint-URL> \
    --user "$CLIENT_ID:$CLIENT_SECRET" \
    --data 'grant_type=client_credentials&scope=all-apis'
    

    Bu, şuna benzer bir yanıt oluşturur:

    {
      "access_token": "eyJraWQiOiJkYTA4ZTVjZ…",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    
  3. Yanıttan access_token değeri kopyalayın.

Not

Bir sunum uç noktası için belirteç oluşturmak için isteğinize uç nokta kimliğini ve eylem adını ekleyin. Bkz OAuth belirtecini el ile getirme.

Rolü üstlen

Hizmet sorumlusu, çalışma alanı düzeyinde bir erişim belirteci istediğinde bir rol üstlenebilir. Bir servis sorumlusu bir rolü üstlendiğinde, rolün izinleri servis sorumlusunun kendi izinlerinin yerini alır. Azure Databricks'te bir rol, grup olarak uygulanır ve hizmet sorumlusunun bu grup üzerinde Assume iznine sahip olması gerekir. Daha fazla bilgi için bkz . Rol tabanlı erişim denetimi (RBAC).

Rol varsaymak için parametresini assume_group belirteç isteğine ekleyin:

export CLIENT_ID=<client-id>
export CLIENT_SECRET=<client-secret>

curl --request POST \
--url <token-endpoint-URL> \
--user "$CLIENT_ID:$CLIENT_SECRET" \
--data 'grant_type=client_credentials&scope=all-apis&assume_group=<group-id>'

<group-id> öğesini, rolü destekleyen grubun sayısal kimliğiyle değiştirin.

Bir rolün aşağıdaki gereksinimlere ve sınırlamalara sahip olduğu varsayılır:

  • Yalnızca çalışma alanı düzeyindeki belirteçler için desteklenir. assume_group öğesini hesap düzeyindeki bir belirteç isteğine eklerseniz, istek başarısız olur.
  • Hizmet sorumlusunun grupta Varsay izni olmalıdır. Aksi takdirde istek başarısız olur. Assume’a izin vermek için bkz. Bir grubun izinlerini yönetme.

Roller arasında geçiş yapma hakkında daha fazla bilgi için bkz. Rolleri değiştirme.

Azure Databricks REST API'sini çağırma

Hesap düzeyi veya çalışma alanı düzeyinde REST API'leri çağırmak için OAuth erişim belirtecini kullanın. Hesap düzeyi API'leri çağırmak için hizmet sorumlusunun bir hesap yöneticisi olması gerekir.

Kimlik doğrulamasıyla Bearer yetkilendirme üst bilgisine belirteci ekleyin.

Örnek hesap düzeyinde REST API isteği

Bu örnekte bir hesabın tüm çalışma alanları listelenir. Replace:

  • <oauth-access-token> hizmet sorumlusunun OAuth erişim belirteci ile.
  • <account-id> hesap kimliğiniz ile birlikte.
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'

Örnek çalışma alanı düzeyinde REST API isteği

Bu örnekte, bir çalışma alanında kullanılabilen tüm kümeler listelenir. Replace:

  • <oauth-access-token> hizmet sorumlusunun OAuth erişim belirteci ile.
  • <databricks-instance> Azure Databricks çalışma alanı örneği adını, örneğin adb-1234567890123456.7.azuredatabricks.net ile.
export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
'https://<workspace-URL>/api/2.0/clusters/list'

OAuth M2M kimlik doğrulaması sorunlarını giderme

Hizmet sorumluları için Databricks OAuth M2M kimlik doğrulamasıyla ilgili en yaygın sorunları düzeltmek için bu adımları kullanın.

Hızlı denetimler

OAuth M2M kimlik doğrulaması hatalarına neden olan bu yaygın yapılandırma sorunlarını doğrulayarak başlayın:

  • Kimlik bilgiler:DATABRICKS_CLIENT_ID, hizmet sorumlusunun uygulama kimliğine (istemci kimliği) ayarlanır ve DATABRICKS_CLIENT_SECRET, her ikisi de fazladan boşluk olmadan OAuth gizli dizi değerine ayarlanır.
  • Host:DATABRICKS_HOST hesap işlemleri veya hedef https://accounts.azuredatabricks.net için işaret eder, örneğin çalışma alanı işlemleri için https://adb-1234567890123456.7.azuredatabricks.net. eklemeyin /api.
  • Atama: Hizmet sorumlusu hedef çalışma alanına atanır.
  • İzinler: Hizmet sorumlusu, hedef kaynak üzerinde gerekli izinlere sahiptir.
  • Çakışma: gibi DATABRICKS_TOKENDATABRICKS_USERNAMEçakışan değişkenler ayarlanmadı. Çalıştır env | grep DATABRICKS ve çakışmaları kaldır.
  • Araçları:Birleşik kimlik doğrulaması ve geçerli CLI veya SDK sürümlerini kullanın.

401 Yetkisiz

Olası nedenler ve düzeltmeler:

  • Hatalı istemci kimliği veya gizli dizi:DATABRICKS_CLIENT_ID ve DATABRICKS_CLIENT_SECRET öğelerini yeniden kopyalayın. Emin değilseniz gizli anahtarı yeniden oluşturun.
  • Süresi dolan gizli dizi: Geçerli gizli dizinin süresi dolduysa yeni bir gizli dizi oluşturun.
  • Yanlış token sağlayıcı: M2M için IdP veya bulut token uç noktasını değil, Databricks OAuth token uç noktasını kullanın.
  • Konak uyuşmazlığı: Çalışma alanı API'leri için kimlik doğrulaması yaparsanız, DATABRICKS_HOST çağırdığınız çalışma alanı URL'si olmalıdır.

403 Yasak

Olası nedenler ve düzeltmeler:

  • Eksik kaynak izinleri: Hizmet sorumlusuna, kümelerde veya SQL ambarlarında ve not defterleri, işler veya veri nesneleri için gerekli nesne düzeyinde izinlerin verilmesini sağlayın.
  • Çalışma alanı ataması yok: Hizmet sorumlusunu hesap konsolundaki çalışma alanına atayın.
  • Yönetici API'si erişimi: Yalnızca yönetici API'leri için hizmet sorumlusunu çalışma alanı yönetici grubuna atayın veya hesap yöneticisi izinleri verin.

Yapılandırma sorunları

Belirtiler arasında zaman aşımları, "konak bulunamadı", "hesap bulunamadı" veya "çalışma alanı bulunamadı".

Fixes:

  • Konak kuralları: Hesap API'leri için hesap konsolu URL'sini kullanın. Çalışma alanı API'leri için çalışma alanı URL'sini kullanın. /api son ekini eklemeyin.
  • Hesap Kimliği: Yalnızca hesap düzeyinde işlemler için sağlayın DATABRICKS_ACCOUNT_ID . Hesap konsolundan UUID kullanın.
  • Profil seçimi: Birden çok profil kullanıyorsanız geçirin --profile <name> veya ayarlayın DATABRICKS_CONFIG_PROFILE.

Connectivity

Ağ sorunları nedeniyle OAuth M2M kimlik doğrulaması başarısız olursa, ortamınızın Databricks uç noktalarına ulaşabildiğini doğrulamak için şu testleri kullanın:

  • DNS:nslookup <your-host> (ana bilgisayar adı için IP adresleri döndürmelidir)
  • TLS ve ulaşılabilirlik:curl -I https://<your-host> (HTTP durumu 200, 401 veya 403 döndürmelidir)
  • Şirket ağı: Proxy veya güvenlik duvarı kurallarının Databricks uç noktalarına HTTPS'ye izin verdiğini onaylayın

Ek kaynaklar