Aracılığıyla paylaş


OAuth (OAuth U2M) kullanarak kullanıcı hesabıyla Azure Databricks'e erişimin kimliğini doğrulama

Azure Databricks, bir kullanıcı adına Azure Databricks hesabına ve çalışma alanı kaynaklarına CLI ve API erişimini etkinleştirmek için OAuth kullanıcıdan makineye (U2M) kimlik doğrulamasını kullanır. Bir kullanıcı başlangıçta oturum açıp OAuth kimlik doğrulama isteğini onayladıktan sonra, o zamandan itibaren kullanıcının adına belirteç tabanlı kimlik doğrulaması gerçekleştirmek için katılımcı araca veya SDK'ya bir OAuth belirteci verilir. OAuth belirteci bir saatlik bir kullanım ömrüne sahiptir ve bunu izleyen araç veya SDK, bir saat boyunca geçerli olan yeni bir belirteç elde etmek için otomatik bir arka plan girişiminde bulunur.

Azure Databricks, OAuth ile kullanıcı hesabı için erişimin kimliğini doğrulamanın iki yolunu destekler:

  • Databricks birleşik istemci kimlik doğrulaması desteğini kullanarak çoğunlukla otomatik olarak. Belirli Azure Databricks SDK'ları (Databricks Terraform SDK'sı gibi) ve araçları kullanıyorsanız bu basitleştirilmiş yaklaşımı kullanın. Desteklenen araçlar ve SDK'lar Databricks birleşik istemci kimlik doğrulamasında listelenir.
  • El ile, doğrudan bir OAuth kod doğrulayıcı/sınama çifti ve yetkilendirme kodu oluşturarak ve bunları kullanarak yapılandırmanızda sağlayacağınız ilk OAuth belirtecini oluşturun. Databricks birleşik istemci kimlik doğrulaması tarafından desteklenen bir API kullanmıyorsanız bu yaklaşımı kullanın. Daha fazla ayrıntı için bkz. OAuth kullanıcıdan makineye (U2M) kimlik doğrulaması için erişim belirteçlerini el ile oluşturma ve kullanma.

Databricks birleşik istemci kimlik doğrulaması ile U2M kimlik doğrulaması

Not

Kimlik doğrulamanızı yapılandırmaya başlamadan önce, çalışma alanı nesnelerindeki belirli bir işlem kategorisi için ACL izinlerini gözden geçirin ve hesabınızın ihtiyacınız olan erişim düzeyine sahip olup olmadığını belirleyin. Diğer ayrıntılar için bkz . Erişim denetim listeleri.

Azure Databricks SDK'ları ve birleşik istemci kimlik doğrulamasını destekleyen araçlarla OAuth U2M kimlik doğrulaması gerçekleştirmek için 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 erişimin kimliğini doğrulama veya aracın ya da SDK'nın belgeleri. Ayrıca bkz. İstemci birleşik kimlik doğrulaması için ortam değişkenleri ve alanları ve istemci birleşik kimlik doğrulaması için Varsayılan yöntemler.

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

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

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

  • DATABRICKS_HOST, çalışma alanı başına Azure Databricks URL'nizin değerine (örneğin https://adb-1234567890123456.7.azuredatabricks.net) ayarlayın.

Profil

Dosyanızda .databrickscfg aşağıdaki alanlarla bir Azure Databricks yapılandırma profili oluşturun veya tanımlayın. Profili oluşturursanız yer tutucuları uygun değerlerle değiştirin. Profili bir araç veya SDK ile kullanmak için Bkz . Azure Databricks kaynaklarına erişimin kimliğini doğrulama veya aracın ya da SDK'nın belgeleri. Ayrıca bkz. İstemci birleşik kimlik doğrulaması için ortam değişkenleri ve alanları ve istemci birleşik kimlik doğrulaması için Varsayılan yöntemler.

Hesap düzeyinde işlemler için dosyanızda .databrickscfg 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>

Çalışma alanı düzeyinde işlemler için dosyanızda .databrickscfg 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>

CLI

Databricks CLI için komutunu aşağıdaki seçeneklerle çalıştırın databricks auth login :

Bu komutu çalıştırdıktan sonra Web tarayıcınızdaki yönergeleri izleyerek Azure Databricks hesabınızda veya çalışma alanınızda oturum açın.

Diğer ayrıntılar için bkz . Databricks CLI ile OAuth U2M kimlik doğrulaması.

Bağlan

Not

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

  • Python için Databricks Runtime 13.1 ve üzeri için Databricks Connect.
  • Scala için Databricks Runtime 13.3 LTS ve üzeri için Databricks Connect.

Databricks Connect için aşağıdakilerden birini yapabilirsiniz:

  • Bu makalenin "Profil" bölümünde belirtildiği gibi Azure Databricks çalışma alanı düzeyinde işlemler için dosyanızdaki .databrickscfg değerleri ayarlayın. Ayrıca profilinizdeki ortam değişkenini cluster_id çalışma alanı başına URL'nize ayarlayın, örneğinhttps://adb-1234567890123456.7.azuredatabricks.net.
  • Bu makalenin "Ortam" bölümünde belirtildiği gibi Azure Databricks çalışma alanı düzeyinde işlemler için ortam değişkenlerini ayarlayın. Ayrıca ortam değişkenini DATABRICKS_CLUSTER_ID çalışma alanı başına URL'nize ayarlayın, örneğinhttps://adb-1234567890123456.7.azuredatabricks.net.

Dosyanızdaki .databrickscfg değerler her zaman ortam değişkenlerinden önceliklidir.

Databricks Connect istemcisini dosyanızdaki .databrickscfg bu ortam değişkenleri veya değerlerle başlatmak için aşağıdakilerden birine bakın:

  • Python için bkz . Python için bağlantı özelliklerini yapılandırma.
  • Scala için bkz . Scala için bağlantı özelliklerini yapılandırma.

VS Code

Visual Studio Code için Databricks uzantısı için aşağıdakileri yapın:

  1. Yapılandırma bölmesinde Databricks'i Yapılandır'a tıklayın.
  2. Komut Paleti'nde, Databricks Konağı için çalışma alanı başına URL'nizi (örneğinhttps://adb-1234567890123456.7.azuredatabricks.net) girin ve tuşuna basınEnter.
  3. OAuth (kullanıcıdan makineye) öğesini seçin.
  4. Azure Databricks hesabınızla kimlik doğrulamasını tamamlamak ve tüm api'lere erişim izni vermek için web tarayıcınızda ekrandaki yönergeleri tamamlayın.

Diğer ayrıntılar için bkz . Databricks CLI ile OAuth U2M kimlik doğrulaması.

Terraform

Not

OAuth U2M kimlik doğrulaması henüz desteklenmiyor.

Python

Hem hesap düzeyinde hem de çalışma alanı düzeyindeki işlemlerde, Python kodunuzu çalıştırmadan önce aşağıdaki komutu çalıştırmak için Databricks CLI'yi kullanmanız gerekir. Bu komut, Databricks CLI'sına, makinenizdeki kullanıcınızın giriş klasöründeki yolda .databricks/token-cache.json gerekli OAuth belirtecini oluşturmasını ve önbelleğe almalarını sağlar:

Databricks hesap düzeyinde işlemler için yapılandırma

databricks auth login --host <account-console-url> --account-id <account-id>

Aşağıdaki yer tutucuları değiştirin:

  • değerini değeriyle https://accounts.azuredatabricks.netdeğiştirin<account-console-url>. (Bunu Azure Databricks çalışma alanı URL'nizin değerine ayarlamayın.)
  • değerini Azure Databricks hesabınızın değeriyle değiştirin <account-id> . Bkz . Hesap kimliğinizi bulma.

Not

ve alanlarının ayarlanmış olduğu mevcut bir Azure Databricks yapılandırma profiliniz host varsa ile değiştirebilirsiniz--profile <profile-name>--host <account-console-url> --account-id <account-id>.account_id

Komutu çalıştırdıktan auth login sonra, hesap oturum açma URL'sini ve hesap kimliğini Azure Databricks yapılandırma profili olarak kaydetmeniz istenir. İstendiğinde, dosyanıza .databrickscfg yeni veya mevcut bir profilin adını girin. Dosyanızda .databrickscfg aynı ada sahip mevcut tüm profillerin üzerine yazılır.

İstenirse, oturum açma işlemini tamamlamak için web tarayıcınızın ekrandaki yönergelerini tamamlayın. Ardından aşağıdaki kod parçacıklarından birine benzer Python kodunu kullanın:

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

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Doğrudan yapılandırma için (değerleri konsoldan veya Azure KeyVault gibi başka bir yapılandırma deposundan almak için yer tutucuları kendi uygulamanızla değiştirinretrieve). Bu durumda Azure Databricks hesap konsolu URL'si şöyledir https://accounts.azuredatabricks.net:

from databricks.sdk import AccountClient

a = AccountClient(
  host       = retrieveAccountConsoleUrl(),
  account_id = retrieveAccountId()
)
# ...

Databricks çalışma alanı düzeyinde işlemler için yapılandırma

databricks auth login --host <worskpace-url>

Yer tutucuyu <workspace-url> çalışma alanı başına hedef Azure Databricks URL'si ile değiştirin, örneğin https://adb-1234567890123456.7.azuredatabricks.net.

Not

Alanı önceden ayarlanmış bir Azure Databricks yapılandırma profiliniz host varsa, ile --profile <profile-name>değiştirebilirsiniz--host <workspace-url>.

Komutu çalıştırdıktan auth login sonra, çalışma alanı URL'sini Azure Databricks yapılandırma profili olarak kaydetmeniz istenir. İstendiğinde, dosyanıza .databrickscfg yeni veya mevcut bir profilin adını girin. Dosyanızda .databrickscfg aynı ada sahip mevcut tüm profillerin üzerine yazılır.

İstenirse, oturum açma işlemini tamamlamak için web tarayıcınızın ekrandaki yönergelerini tamamlayın. Ardından aşağıdaki kod parçacıklarından birine benzer Python kodunu kullanın:

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

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Doğrudan yapılandırma için (değerleri konsoldan veya Azure KeyVault gibi başka bir yapılandırma deposundan almak için yer tutucuları kendi uygulamanızla değiştirinretrieve). Bu durumda konak, çalışma alanı başına Azure Databricks URL'sidir, örneğin https://adb-1234567890123456.7.azuredatabricks.net:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(host = retrieveWorkspaceUrl())
# ...

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

Java

Hem hesap düzeyinde hem de çalışma alanı düzeyindeki işlemlerde, Java kodunuzu çalıştırmadan önce aşağıdaki komutu çalıştırmak için Databricks CLI'yi kullanmanız gerekir. Bu komut, Databricks CLI'sına, makinenizdeki kullanıcınızın giriş klasöründeki yolda .databricks/token-cache.json gerekli OAuth belirtecini oluşturmasını ve önbelleğe almasını sağlar:

Databricks hesap düzeyinde işlemler için yapılandırma

databricks auth login --host <account-console-url> --account-id <account-id>

Aşağıdaki yer tutucuları değiştirin:

  • değerini değeriyle https://accounts.azuredatabricks.netdeğiştirin<account-console-url>. (Bunu Azure Databricks çalışma alanı URL'nizin değerine ayarlamayın.)
  • değerini Azure Databricks hesabınızın değeriyle değiştirin <account-id> . Bkz . Hesap kimliğinizi bulma.

Not

ve alanlarının ayarlanmış olduğu mevcut bir Azure Databricks yapılandırma profiliniz host varsa ile değiştirebilirsiniz--profile <profile-name>--host <account-console-url> --account-id <account-id>.account_id

Komutu çalıştırdıktan auth login sonra, hesap oturum açma URL'sini ve hesap kimliğini Azure Databricks yapılandırma profili olarak kaydetmeniz istenir. İstendiğinde, dosyanıza .databrickscfg yeni veya mevcut bir profilin adını girin. Dosyanızda .databrickscfg aynı ada sahip mevcut tüm profillerin üzerine yazılır.

İstenirse, oturum açma işlemini tamamlamak için web tarayıcınızın ekrandaki yönergelerini tamamlayın. Ardından aşağıdaki kod parçacıklarından birine benzer bir Java kodu kullanın:

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

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

Doğrudan yapılandırma için (değerleri konsoldan veya Azure KeyVault gibi başka bir yapılandırma deposundan almak için yer tutucuları kendi uygulamanızla değiştirinretrieve). Bu durumda Azure Databricks hesap konsolu URL'si şöyledir https://accounts.azuredatabricks.net:

import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveAccountConsoleUrl())
  .setAccountId(retrieveAccountId());
AccountClient a = new AccountClient(cfg);
// ...

Databricks çalışma alanı düzeyinde işlemler için yapılandırma

Çalışma alanı düzeyinde işlemler için, Java kodunuzu çalıştırmadan önce aşağıdaki komutu çalıştırmak için önce Databricks CLI'yi kullanmanız gerekir. Bu komut, Databricks CLI'sına, makinenizdeki kullanıcınızın giriş klasöründeki yolda .databricks/token-cache.json gerekli OAuth belirtecini oluşturmasını ve önbelleğe almalarını sağlar:

databricks auth login --host <worskpace-url>

Yer tutucuyu <workspace-url> çalışma alanı başına hedef Azure Databricks URL'si ile değiştirin, örneğin https://adb-1234567890123456.7.azuredatabricks.net.

Not

Alanı önceden ayarlanmış bir Azure Databricks yapılandırma profiliniz host varsa, ile --profile <profile-name>değiştirebilirsiniz--host <workspace-url>.

Komutu çalıştırdıktan auth login sonra, çalışma alanı URL'sini Azure Databricks yapılandırma profili olarak kaydetmeniz istenir. İstendiğinde, dosyanıza .databrickscfg yeni veya mevcut bir profilin adını girin. Dosyanızda .databrickscfg aynı ada sahip mevcut tüm profillerin üzerine yazılır.

İstenirse, oturum açma işlemini tamamlamak için web tarayıcınızın ekrandaki yönergelerini tamamlayın. Ardından aşağıdaki kod parçacıklarından birine benzer bir Java kodu kullanın:

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

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

Doğrudan yapılandırma için (değerleri konsoldan veya Azure KeyVault gibi başka bir yapılandırma deposundan almak için yer tutucuları kendi uygulamanızla değiştirinretrieve). Bu durumda konak, çalışma alanı başına Azure Databricks URL'sidir, örneğin https://adb-1234567890123456.7.azuredatabricks.net:

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

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

Go

Hem hesap düzeyinde hem de çalışma alanı düzeyindeki işlemlerde, Go kodunuzu çalıştırmadan önce aşağıdaki komutu çalıştırmak için Databricks CLI'yi kullanmanız gerekir. Bu komut, Databricks CLI'sına, makinenizdeki kullanıcınızın giriş klasöründeki yolda .databricks/token-cache.json gerekli OAuth belirtecini oluşturmasını ve önbelleğe almalarını sağlar:

Databricks hesap düzeyinde işlemler için yapılandırma

databricks auth login --host <account-login-url> --account-id <account-id>

Aşağıdaki yer tutucuları değiştirin:

  • değerini değeriyle https://accounts.azuredatabricks.netdeğiştirin<account-console-url>. (Bunu Azure Databricks çalışma alanı URL'nizin değerine ayarlamayın.)
  • değerini Azure Databricks hesabınızın değeriyle değiştirin <account-id> . Bkz . Hesap kimliğinizi bulma.

Not

ve alanlarının ayarlanmış olduğu mevcut bir Azure Databricks yapılandırma profiliniz host varsa ile değiştirebilirsiniz--profile <profile-name>--host <account-console-url> --account-id <account-id>.account_id

Komutu çalıştırdıktan auth login sonra, hesap oturum açma URL'sini ve hesap kimliğini Azure Databricks yapılandırma profili olarak kaydetmeniz istenir. İstendiğinde, dosyanıza .databrickscfg yeni veya mevcut bir profilin adını girin. Dosyanızda .databrickscfg aynı ada sahip mevcut tüm profillerin üzerine yazılır.

İstenirse, oturum açma işlemini tamamlamak için web tarayıcınızın ekrandaki yönergelerini tamamlayın. Ardından aşağıdaki kod parçacıklarından birine benzer go kodunu kullanın:

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

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

Doğrudan yapılandırma için (değerleri konsoldan veya Azure KeyVault gibi başka bir yapılandırma deposundan almak için yer tutucuları kendi uygulamanızla değiştirinretrieve). Bu durumda Azure Databricks hesap konsolu URL'si şöyledir https://accounts.azuredatabricks.net:

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

Databricks çalışma alanı düzeyinde işlemler için yapılandırma

Çalışma alanı düzeyindeki işlemler için, Go kodunuzu çalıştırmadan önce aşağıdaki komutu çalıştırmak için Databricks CLI'yi kullanmanız gerekir. Bu komut, Databricks CLI'sına, makinenizdeki kullanıcınızın giriş klasöründeki yolda .databricks/token-cache.json gerekli OAuth belirtecini oluşturmasını ve önbelleğe almalarını sağlar:

databricks auth login --host <worskpace-url>

Yer tutucuyu <workspace-url> çalışma alanı başına hedef Azure Databricks URL'si ile değiştirin, örneğin https://adb-1234567890123456.7.azuredatabricks.net.

Not

Alanı önceden ayarlanmış bir Azure Databricks yapılandırma profiliniz host varsa, ile --profile <profile-name>değiştirebilirsiniz--host <workspace-url>.

Komutu çalıştırdıktan auth login sonra, çalışma alanı URL'sini Azure Databricks yapılandırma profili olarak kaydetmeniz istenir. İstendiğinde, dosyanıza .databrickscfg yeni veya mevcut bir profilin adını girin. Dosyanızda .databrickscfg aynı ada sahip mevcut tüm profillerin üzerine yazılır.

İstenirse, oturum açma işlemini tamamlamak için web tarayıcınızın ekrandaki yönergelerini tamamlayın. Ardından aşağıdaki kod parçacıklarından birine benzer go kodunu kullanın:

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

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

Doğrudan yapılandırma için (değerleri konsoldan veya Azure KeyVault gibi başka bir yapılandırma deposundan almak için yer tutucuları kendi uygulamanızla değiştirinretrieve). Bu durumda konak, çalışma alanı başına Azure Databricks URL'sidir, örneğin https://adb-1234567890123456.7.azuredatabricks.net:

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

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 kullanıcıdan makineye (U2M) kimlik doğrulaması için el ile erişim belirteçleri oluşturma ve kullanma

Databricks istemcisi birleşik kimlik doğrulama standardını uygulayan Azure Databricks araçları ve SDK'ları, OAuth U2M kimlik doğrulaması için gerektiğinde sizin yerinize Azure Databricks OAuth erişim belirteçlerini otomatik olarak oluşturur, yeniler ve kullanır.

Bir nedenle OAuth U2M kimlik doğrulaması için Azure Databricks OAuth erişim belirteçlerini el ile oluşturmanız, yenilemeniz veya kullanmanız gerekiyorsa, bu bölümdeki yönergeleri izleyin.

1. Adım: OAuth kod doğrulayıcı ve kod sınama çifti oluşturma

OAuth U2M kimlik doğrulaması için erişim belirteçlerini el ile oluşturmak ve kullanmak için önce bir OAuth kod doğrulayıcısına ve kod doğrulayıcıdan türetilen bir OAuth kod sınamasına sahip olmanız gerekir. OAuth yetkilendirme kodu oluşturmak için 2. Adım'daki kod sınamasını kullanırsınız. OAuth erişim belirtecini oluşturmak için 3. Adım'daki kod doğrulayıcıyı ve yetkilendirme kodunu kullanırsınız.

Not

Kod doğrulayıcı ve kod sınaması için kodlanmamış düz metin dizeleri kullanmak teknik olarak mümkün olsa da, Databricks bunun yerine kod doğrulayıcı ve kod sınaması oluşturmak için OAuth standardını uygulamayı kesinlikle önerir.

Özel olarak, kod doğrulayıcı, 43 ile 128 karakter uzunluğundaki kümelerdeki A-Z, a-z, 0-9ve noktalama işaretlerinden -._~ (kısa çizgi, nokta, alt çizgi ve tilde) karakterleri kullanan şifreli rastgele bir dize olmalıdır. Kod sınaması, kod doğrulayıcının SHA256 karması için Base64 URL ile kodlanmış bir dize olmalıdır. Daha fazla bilgi için bkz . Yetkilendirme İsteği.

Hızlı bir şekilde benzersiz bir kod doğrulayıcı ve kod sınama çifti oluşturmak için aşağıdaki Python betiğini çalıştırabilirsiniz. Bu oluşturulan kod doğrulayıcıyı ve kod sınama çiftini birden çok kez yeniden kullanabilirsiniz ancak Databricks, OAuth U2M kimlik doğrulaması için el ile erişim belirteçleri oluşturduğunuzda yeni bir kod doğrulayıcı ve kod sınaması çifti oluşturmanızı önerir.

import uuid, hashlib, base64

# Generate a UUID.
uuid1 = uuid.uuid4()

# Convert the UUID to a string.
uuid_str1 = str(uuid1).upper()

# Create the code verifier.
code_verifier = uuid_str1 + "-" + uuid_str1

# Create the code challenge based on the code verifier.
code_challenge = base64.urlsafe_b64encode(hashlib.sha256(code_verifier.encode()).digest()).decode('utf-8')

# Remove all padding from the code challenge.
code_challenge = code_challenge.replace('=', '')

# Print the code verifier and the code challenge.
# Use these in your calls to manually generate
# access tokens for OAuth U2M authentication.
print(f"code_verifier:  {code_verifier}")
print(f"code_challenge: {code_challenge}")

2. Adım: Yetkilendirme kodu oluşturma

Azure Databricks OAuth erişim belirteci oluşturmak için OAuth yetkilendirme kodu kullanırsınız. Yetkilendirme kodunu azure databricks OAuth erişim belirteci oluşturmak için kullandıktan hemen sonra sona erer. Yetkilendirme kodunun kapsamı, oluşturduğunuz düzeye bağlıdır. Aşağıdaki gibi Azure Databricks hesap düzeyinde veya çalışma alanı düzeyinde bir yetkilendirme kodu oluşturabilirsiniz:

  • Azure Databricks kullanıcı hesabınızın erişimi olan hesaplar ve çalışma alanları içinde hesap düzeyinde ve çalışma alanı düzeyinde REST API'leri çağırmak için hesap düzeyinde bir yetkilendirme kodu oluşturun.
  • Kullanıcı hesabınızın erişimi olan tek bir çalışma alanında REST API'lerini çağırmak için, yalnızca bu çalışma alanı için çalışma alanı düzeyinde bir yetkilendirme kodu oluşturabilirsiniz.

Hesap düzeyinde yetkilendirme kodu oluşturma

  1. Hesap yöneticisi olarak hesap konsolunda oturum açın.

  2. Sağ üst köşedeki kullanıcı adınızın yanındaki aşağı oka tıklayın.

  3. Hesap Kimliğinizi kopyalayın.

  4. Web tarayıcınızın adres çubuğunda aşağıdaki URL'ye göz atın. Okunabilirlik için satır sonları eklendi. URL'niz bu satır sonlarını içermemelidir.

    Aşağıdaki URL'de aşağıdakileri değiştirin:

    • değerini kopyaladığınız Hesap Kimliği ile değiştirin<account-id>.
    • yerine <redirect-url> yerel makinenizin yeniden yönlendirme URL'sini yazın, örneğin http://localhost:8020.
    • değerini yetkilendirme kodunun bütünlüğünü doğrulamak için kullanabileceğiniz bir düz metin dizesiyle değiştirin <state> .
    • değerini 1. Adımda oluşturduğunuz kod sınamasıyla değiştirin <code-challenge> .
    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
    
  5. İstendiğinde, Azure Databricks hesabınızda oturum açmak için ekrandaki yönergeleri izleyin.

  6. Web tarayıcınızın adres çubuğunda yetkilendirme kodunu kopyalayın. Yetkilendirme kodu, URL'deki karakter ile arasındaki code= & tam karakter dizesidir. Örneğin, aşağıdaki URL'deki yetkilendirme kodu şöyledir dcod...7fe6:

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    Bu yanıt URL'sindeki değerin istek URL'nizde sağladığınız değerle eşleşdiğini <state> state görsel olarak onaylayarak bu yetkilendirme kodunun bütünlüğünü doğrulamanız gerekir. Değerler farklıysa, bu yetkilendirme kodunu kullanmamalısınız, bunun güvenliği aşılabilir.

  7. Hesap düzeyinde erişim belirteci oluşturma'ya atlayın.

Çalışma alanı düzeyinde yetkilendirme kodu oluşturma

  1. Web tarayıcınızın adres çubuğunda aşağıdaki URL'ye göz atın. Okunabilirlik için satır sonları eklendi. URL'niz bu satır sonlarını içermemelidir.

    Aşağıdaki URL'de aşağıdakileri değiştirin:

    • değerini Azure Databricks çalışma alanı örneği adıyla değiştirin<databricks-instance>, örneğinadb-1234567890123456.7.azuredatabricks.net.
    • yerine <redirect-url> yerel makinenizin yeniden yönlendirme URL'sini yazın, örneğin http://localhost:8020.
    • değerini yetkilendirme kodunun bütünlüğünü doğrulamak için kullanabileceğiniz bir düz metin dizesiyle değiştirin <state> .
    • değerini 1. Adımda oluşturduğunuz kod sınamasıyla değiştirin <code-challenge> .
    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
    
  2. İstendiğinde, Azure Databricks çalışma alanınızda oturum açmak için ekrandaki yönergeleri izleyin.

  3. Web tarayıcınızın adres çubuğunda yetkilendirme kodunu kopyalayın. Yetkilendirme kodu, URL'deki karakter ile arasındaki code= & tam karakter dizesidir. Örneğin, aşağıdaki URL'deki yetkilendirme kodu şöyledir dcod...7fe6:

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    Bu yanıt URL'sindeki değerin istek URL'nizde sağladığınız değerle eşleşdiğini <state> state görsel olarak onaylayarak bu yetkilendirme kodunun bütünlüğünü doğrulamanız gerekir. Değerler farklıysa, bu yetkilendirme kodunu kullanmamalısınız, bunun güvenliği aşılabilir.

3. Adım: OAuth erişim belirteci oluşturmak için yetkilendirme kodunu kullanma

Azure Databricks OAuth erişim belirteci oluşturmak için önceki adımdaki OAuth yetkilendirme kodunu aşağıdaki gibi kullanırsınız:

Hesap düzeyinde erişim belirteci oluşturma

  1. Hesap düzeyinde OAuth erişim belirtecini oluşturmak için hesap düzeyi yetkilendirme koduyla birlikte gibi curl bir istemci kullanın. Aşağıdaki curl çağrıda aşağıdaki yer tutucuları değiştirin:

    • değerini 2. Adımdaki Hesap Kimliği ile değiştirin<account-id>.
    • değerini 2. Adımdaki yeniden yönlendirme URL'si ile değiştirin <redirect-url> .
    • değerini 1. Adımda oluşturduğunuz kod doğrulayıcıyla değiştirin <code-verifier> .
    • değerini 2. Adımda oluşturduğunuz hesap düzeyi yetkilendirme koduyla değiştirin <authorization-code> .
    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>"
    
  2. Yanıtta hesap düzeyinde OAuth erişim belirtecini kopyalayın. Erişim belirteci, nesnedeki access_token karakterlerin tam dizesidir. Örneğin, aşağıdaki yanıttaki erişim belirteci şöyledir eyJr...Dkag:

    {
      "access_token": "eyJr...Dkag",
      "refresh_token": "doau...f26e",
      "scope": "all-apis offline_access",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    Bu erişim belirtecinin süresi bir saat içinde dolar. Yeni bir erişim belirteci oluşturmak için 1. Adım'da bu yordamı yineleyin.

  3. 4. Adım: Databricks REST API'sini çağırma adımına geçin.

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

  1. Çalışma alanı düzeyinde OAuth erişim belirtecini oluşturmak için çalışma alanı düzeyinde yetkilendirme koduyla birlikte gibi curl bir istemci kullanın. Aşağıdaki curl çağrıda aşağıdaki yer tutucuları değiştirin:

    • değerini Azure Databricks çalışma alanı örneği adıyla değiştirin<databricks-instance>, örneğinadb-1234567890123456.7.azuredatabricks.net.
    • değerini 2. Adımdaki yeniden yönlendirme URL'si ile değiştirin <redirect-url> .
    • değerini 1. Adımda oluşturduğunuz kod doğrulayıcıyla değiştirin <code-verifier> .
    • değerini 2. Adımda oluşturduğunuz çalışma alanı düzeyinde yetkilendirme koduyla değiştirin <authorization-code> .
    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>"
    
  2. Yanıtta çalışma alanı düzeyinde OAuth erişim belirtecini kopyalayın. Erişim belirteci, nesnedeki access_token karakterlerin tam dizesidir. Örneğin, aşağıdaki yanıttaki erişim belirteci şöyledir eyJr...Dkag:

    {
     "access_token": "eyJr...Dkag",
     "refresh_token": "doau...f26e",
     "scope": "all-apis offline_access",
     "token_type": "Bearer",
     "expires_in": 3600
    }
    

    Bu erişim belirtecinin süresi bir saat içinde dolar. Yeni bir erişim belirteci oluşturmak için 1. Adım'da bu yordamı yineleyin.

4. Adım: Databricks REST API'sini çağırma

Erişim belirtecinin kapsamına bağlı olarak Azure Databricks hesap düzeyi REST API'lerinde ve çalışma alanı düzeyinde REST API'lerinde kimlik doğrulaması yapmak için hesap düzeyinde veya çalışma alanı düzeyinde OAuth erişim belirtecini kullanırsınız. Azure Databricks kullanıcı hesabınızın hesap düzeyinde REST API'leri çağırmak için bir hesap yöneticisi olması gerekir.

Örnek hesap düzeyinde REST API isteği

Bu örnek, bir hesapla ilişkili tüm çalışma alanlarının listesini almak için kimlik doğrulamasıyla Bearer birlikte kullanırcurl.

  • değerini hesap düzeyi OAuth erişim belirteci ile değiştirin <oauth-access-token> .
  • değerini hesap kimliğiniz ile değiştirin <account-id> .
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 örnek, belirtilen çalışma alanında kullanılabilir tüm kümeleri listelemek için kimlik doğrulamasıyla Bearer birlikte kullanırcurl.

  • değerini hesap düzeyi veya çalışma alanı düzeyinde OAuth erişim belirteci ile değiştirin <oauth-access-token> .
  • değerini Azure Databricks çalışma alanı örneği adıyla değiştirin<databricks-instance>, örneğinadb-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"