OAuth kullanarak kullanıcı hesabıyla Azure Databricks kaynaklarına etkileşimli erişim yetkisi verme
Bu konu başlığında, Azure Databricks CLI komutlarını etkileşimli olarak çalıştırırken veya Azure Databricks REST API'lerini çağırırken Azure Databricks kaynaklarına erişimi yetkilendirme adımları ve ayrıntıları sağlanır.
Azure Databricks, kullanıcı arabirimi dışındaki Azure Databricks kaynaklarıyla etkileşim kurarken kullanıcı yetkilendirmesi ve kimlik doğrulaması için tercih edilen protokol olarak OAuth kullanır. Azure Databricks, OAuth kimlik doğrulama yönteminin bir parçası olarak oluşturulan erişim belirteçlerinin yenilenmesini otomatikleştirmek için birleşik istemci kimlik doğrulama aracı da sağlar.
Daha üst düzey ayrıntılar için bkz. Azure Databricks kaynaklarına erişimi yetkilendirme.
Azure Databricks kaynaklarına erişirken yetkilendirme ve kimlik doğrulaması seçeneklerim nelerdir?
Bu konu başlığında yetkilendirme, temsilci seçme yoluyla belirli Azure Databricks kaynaklarına erişim anlaşması yapmak için kullanılan protokolü (OAuth) ifade eder. Kimlik Doğrulaması, kimlik doğrulama bilgilerinin temsili, iletimi ve doğrulamasını sağlayan mekanizmayı ifade eder; bu durumda, bu mekanizma erişim belirteçleriile çalışır.
Azure Databricks, bu kaynaklara erişim izinleri olan bir kullanıcı adına komut satırından veya koddan Azure Databricks hesabına ve çalışma alanı kaynaklarına erişimi etkinleştirmek için OAuth 2.0tabanlı yetkilendirme 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 erişim belirtecinin bir saatlik bir ömrü vardır ve bu sürenin ardından söz konusu araç veya SDK, bir saat için de geçerli olan yeni bir belirteci almak için otomatik bir arka plan girişiminde bulunur.
Azure Databricks, OAuth ile bir kullanıcı hesabı için erişim yetkilendirmek için iki yolu 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 etkileşimli kullanıcı yetkilendirmesi
Not
Yetkilendirmenizi yapılandırmaya başlamadan önce, çalışma alanı nesnelerinde gerçekleştirdiğiniz belirli 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 yetkilendirmesi 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 azure databricks kaynaklarına erişimi yetkilendirme veya aracın ya da SDK'nın belgelerine bakın. 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 aşağıdaki alanlarla bir Azure Databricks .databrickscfg
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 Azure Databricks kaynaklarına erişimi yetkilendirme veya aracın ya da SDK'nın belgelerine bakın. 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 ileOAuth yetkilendirmesi.
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
.databrickscfg
için dosyanızdaki 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ğerleriyle başlatmak için bkz . Databricks Connect için işlem yapılandırması.
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) girin ve tuşuna basın
https://adb-1234567890123456.7.azuredatabricks.net
.Enter
- 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.
Daha fazla ayrıntı için bkz. OAuth U2M yetkilendirmesi Databricks CLIile.
Terraform
Hem hesap düzeyinde hem de çalışma alanı düzeyinde işlemleri için, Terraform yapılandırmanızı uygulamadan ö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
<account-console-url>
değiştirinhttps://accounts.azuredatabricks.net
. (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 varsa ile değiştirebilirsinizhost
account_id
.--host <account-console-url> --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 terraform kodunu aşağıdaki kod parçacıklarından birine benzer şekilde kullanın:
Varsayılan kimlik doğrulaması için:
provider "databricks" {
alias = "account"
}
Doğrudan yapılandırma için aşağıdaki yapılandırmayı kullanarak provider
ayarlayın. konsoldan veya retrieve-
gibi başka bir yapılandırma deposundan değerleri almak için yer tutucularını kendi uygulamanızla değiştirin. Ayrıca bkz. Kasa Sağlayıcısı). Bu örnekte, account_id
'ı Azure Databricks hesabınızın konsol URL'sine ayarlayabilirsiniz.
provider "databricks" {
alias = "account"
host = <retrieve-account-console-url>
account_id = <retrieve-account-id>
}
Databricks çalışma alanı düzeyinde işlemler için yapılandırma
databricks auth login --host <workspace-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 profilinizhost
varsa, ile --host <workspace-url>
değiştirebilirsiniz--profile <profile-name>
.
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 terraform kodunu aşağıdaki kod parçacıklarından birine benzer şekilde kullanın:
Varsayılan kimlik doğrulaması için:
provider "databricks" {
alias = "workspace"
}
Doğrudan yapılandırma için, konsoldan veya retrieve
gibi başka bir yapılandırma deposundan değerleri almak amacıyla, yer tutucularını kendi uygulamanızla değiştirin. Ayrıca bkz. Vault Sağlayıcısı. Bu durumda konak, çalışma alanı başına Azure Databricks URL'sidir, örneğin https://adb-1234567890123456.7.azuredatabricks.net
:
provider "databricks" {
alias = "workspace"
host = <retrieve-workspace-url>
}
Databricks Terraform sağlayıcısıyla kimlik doğrulaması hakkında daha fazla bilgi için bkz . Kimlik doğrulaması.
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
<account-console-url>
değiştirinhttps://accounts.azuredatabricks.net
. (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 varsa ile değiştirebilirsinizhost
account_id
.--host <account-console-url> --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:
Databricks birleşik istemci kimlik doğrulamasını kullanarak varsayılan yetkilendirme için:
from databricks.sdk import AccountClient
a = AccountClient()
# ...
Doğrudan yapılandırma için (değerleri konsoldan veya Azure KeyVaultretrieve
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 şö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 profilinizhost
varsa, ile --host <workspace-url>
değiştirebilirsiniz--profile <profile-name>
.
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:
Databricks birleşik istemci kimlik doğrulamasını kullanarak varsayılan yetkilendirme için:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# ...
Doğrudan yapılandırma için (değerleri konsoldan veya Azure KeyVaultretrieve
başka bir yapılandırma deposundan almak için yer tutucuları kendi uygulamanızla değiştirin). 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 yetkilendirmeyi ayarlama
- 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
<account-console-url>
değiştirinhttps://accounts.azuredatabricks.net
. (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 varsa ile değiştirebilirsinizhost
account_id
.--host <account-console-url> --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:
Databricks birleşik istemci kimlik doğrulamasını kullanarak varsayılan yetkilendirme için:
import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...
Doğrudan yapılandırma için (değerleri konsoldan veya Azure KeyVaultretrieve
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 şö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 profilinizhost
varsa, ile --host <workspace-url>
değiştirebilirsiniz--profile <profile-name>
.
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:
Databricks birleşik istemci kimlik doğrulamasını kullanarak varsayılan yetkilendirme için:
import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...
Doğrudan yapılandırma için (değerleri konsoldan veya Azure KeyVaultretrieve
başka bir yapılandırma deposundan almak için yer tutucuları kendi uygulamanızla değiştirin). 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ıuygulayan Databricks araçları ve SDK'ları ile yetkilendirme ve 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
<account-console-url>
değiştirinhttps://accounts.azuredatabricks.net
. (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 varsa ile değiştirebilirsinizhost
account_id
.--host <account-console-url> --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:
Databricks birleşik istemci kimlik doğrulamasını kullanarak varsayılan yetkilendirme 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 KeyVaultretrieve
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 şö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 profilinizhost
varsa, ile --host <workspace-url>
değiştirebilirsiniz--profile <profile-name>
.
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 KeyVaultretrieve
başka bir yapılandırma deposundan almak için yer tutucuları kendi uygulamanızla değiştirin). 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
Not
Bu bölüm, Databricks istemcisi birleşik kimlik doğrulama standardıyla çalışmayan üçüncü taraf araçlarına veya hizmetlerine sahip kullanıcılar için sağlanı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
<account-id>
değiştirin. - 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
İ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
<databricks-instance>
değiştirin, ö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
İ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
<account-id>
ile değiştirin. - 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
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
<databricks-instance>
değiştirin, ö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
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 curl
birlikte kullanırBearer
.
- 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 curl
birlikte kullanırBearer
.
- 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
<databricks-instance>
değiştirin, ö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"