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'nizinhttps://accounts.azuredatabricks.net
değ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ğinhttps://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
:
- Azure Databricks hesap düzeyinde işlemler için,
--host <account-console-url> --account-id <account-id>
. - Azure Databricks çalışma alanı düzeyinde işlemler için,
--host <workspace-url>
.
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şkeninicluster_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:
- Yapılandırma bölmesinde Databricks'i Yapılandır'a tıklayın.
- Komut Paleti'nde, Databricks Konağı için çalışma alanı başına URL'nizi (örneğin
https://adb-1234567890123456.7.azuredatabricks.net
) girin ve tuşuna basınEnter
. - OAuth (kullanıcıdan makineye) öğesini seçin.
- 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.net
değ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:
- Python için Databricks Connect istemcisini ayarlama
- Visual Studio Code için Databricks uzantısı için kimlik doğrulaması kurulumu
- Azure Databricks hesabınız veya çalışma alanınızla Python için Databricks SDK'sının kimliğini doğrulama
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.net
değ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:
- Scala için Databricks Connect istemcisini ayarlama (Scala için Databricks Connect istemcisi, kimlik doğrulaması için Java için Databricks SDK'sını kullanır)
- Azure Databricks hesabınız veya çalışma alanınızla Java için Databricks SDK'sının kimliğini doğrulama
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.net
değ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-9
ve 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
Sağ üst köşedeki kullanıcı adınızın yanındaki aşağı oka tıklayın.
Hesap Kimliğinizi kopyalayın.
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ğinhttp://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
- değerini kopyaladığınız Hesap Kimliği ile değiştirin
İstendiğinde, Azure Databricks hesabınızda oturum açmak için ekrandaki yönergeleri izleyin.
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 şöyledirdcod...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.Hesap düzeyinde erişim belirteci oluşturma'ya atlayın.
Çalışma alanı düzeyinde yetkilendirme kodu oluşturma
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ğinhttp://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
- değerini Azure Databricks çalışma alanı örneği adıyla değiştirin
İstendiğinde, Azure Databricks çalışma alanınızda oturum açmak için ekrandaki yönergeleri izleyin.
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 şöyledirdcod...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:
- 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 yetkilendirme kodunu kullanarak hesap düzeyinde bir erişim belirteci oluşturun.
- Kullanıcı hesabınızın erişimi olan tek bir çalışma alanında REST API'leri çağırmak için, çalışma alanı düzeyinde yetkilendirme kodunu kullanarak yalnızca bu çalışma alanı için çalışma alanı düzeyinde bir erişim belirteci oluşturabilirsiniz.
Hesap düzeyinde erişim belirteci oluşturma
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ğıdakicurl
ç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>"
- değerini 2. Adımdaki Hesap Kimliği ile değiştirin
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 şöyledireyJr...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 adımına geçin.
Çalışma alanı düzeyinde erişim belirteci oluşturma
Ç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ğıdakicurl
ç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>"
- değerini Azure Databricks çalışma alanı örneği adıyla değiştirin
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 şöyledireyJr...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"