Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda dapat memanggil aplikasi Databricks yang mengekspos API HTTP (misalnya, aplikasi FastAPI atau Gradio) menggunakan autentikasi token Pembawa OAuth 2.0. Metode ini berfungsi dari lingkungan pengembangan lokal Anda, aplikasi eksternal, dan aplikasi Azure Databricks lainnya.
Nota
Metode ini hanya berlaku untuk aplikasi yang mengekspos API atau titik akhir (dapat diakses menggunakan /api/ rute). Untuk aplikasi yang hanya menyediakan antarmuka pengguna atau pemrosesan latar belakang, Anda tidak dapat tersambung menggunakan autentikasi token.
Persyaratan
Untuk menyambungkan ke aplikasi Databricks menggunakan autentikasi token, Anda harus memenuhi persyaratan berikut:
- Aplikasi harus mengekspos setidaknya satu titik akhir API yang dapat diakses menggunakan
/api/rute. - Anda harus memiliki
CAN USEizin di aplikasi. Lihat Mengonfigurasi izin untuk aplikasi Databricks. - Anda harus dapat menghasilkan token akses Azure Databricks menggunakan salah satu metode autentikasi yang didukung.
Metode autentikasi
Nota
Anda tidak dapat memanggil aplikasi Databricks secara langsung menggunakan token ID Azure Entra. Federasi token memerlukan langkah pertukaran token sisi klien, yang tidak dilakukan Azure Databricks di sisi server. Untuk menggunakan token ID Azure Entra untuk autentikasi, Anda harus terlebih dahulu menukarnya dengan token OAuth. Lihat Mengautentikasi dengan token penyedia identitas.
Pilih metode autentikasi yang cocok dengan skenario koneksi Anda:
Pengembangan lokal
Untuk menyambungkan dari lingkungan pengembangan lokal Anda, gunakan Azure Databricks CLI atau SDK dengan kredensial pengguna Anda.
Masuk dengan CLI:
databricks auth login --host https://<workspace-url> --profile my-envAzure Databricks merekomendasikan penggunaan autentikasi pengguna ke komputer (U2M) OAuth.
Hasilkan token akses:
antarmuka baris perintah (CLI)
databricks auth token --profile my-envPhyton
from databricks.sdk.core import Config config = Config(profile="my-env") token = config.oauth_token().access_token
Aplikasi eksternal
Untuk akses terprogram dari aplikasi eksternal, gunakan autentikasi prinsipal layanan dengan kredensial antar mesin (M2M). Lihat Mengotorisasi akses perwakilan layanan ke Azure Databricks dengan OAuth.
Buat perwakilan layanan dan dapatkan ID dan rahasia klien. Lihat Service principals.
Hasilkan token akses menggunakan Azure Databricks SDK:
from databricks.sdk import WorkspaceClient import requests # Option 1: Explicit credentials wc = WorkspaceClient( host="https://<workspace-url>", client_id="<service-principal-client-id>", client_secret="<service-principal-client-secret>" ) # Option 2: Environment variables # Set DATABRICKS_HOST, DATABRICKS_CLIENT_ID, DATABRICKS_CLIENT_SECRET wc = WorkspaceClient() # Generate Bearer token headers = wc.config.authenticate()
Dari aplikasi Databricks lainnya
Saat Anda terhubung dari satu aplikasi Databricks ke aplikasi lain, aplikasi menangani autentikasi secara otomatis menggunakan perwakilan layanan yang ditetapkan.
from databricks.sdk import WorkspaceClient
import requests
# No explicit credentials needed, uses app's service principal
wc = WorkspaceClient()
headers = wc.config.authenticate()
Tentukan cakupan OAuth untuk otorisasi pengguna
Saat Anda menggunakan Azure Databricks CLI atau SDK dengan autentikasi terpadu, seperti yang ditunjukkan bagian sebelumnya, alat secara otomatis meminta cakupan dasar all-apis . Namun, jika aplikasi Anda menggunakan otorisasi pengguna, Anda harus meminta token akses secara manual dengan cakupan tambahan menggunakan alur OAuth kustom.
Pastikan token akses Anda menyertakan cakupan yang dikonfigurasi dalam Edit>otorisasi Pengguna. Jika token tidak memiliki cakupan yang diperlukan, permintaan dapat gagal dengan kesalahan 401 atau 403.
Misalnya, permintaan berikut secara eksplisit meminta token akses dengan cakupan sql, file.files, dan dashboards.genie.
curl --request POST \
https://<databricks-instance>/oidc/v1/token \
--data "client_id=databricks-cli" \
--data "grant_type=authorization_code" \
--data "redirect_uri=<redirect-url>" \
--data "code_verifier=<code-verifier>" \
--data "code=<authorization-code>" \
--data "scope=sql+file.files+dashboards.genie"
Untuk petunjuk lengkap, lihat Membuat token akses OAuth U2M secara manual.
Mengirim permintaan ke aplikasi
Saat Anda memanggil titik akhir API aplikasi, sertakan token Pembawa di header Otorisasi dan ganti <your-endpoint> dengan jalur API aktual aplikasi Anda:
CURL
curl "https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>" \
-H "Authorization: Bearer <YOUR_TOKEN>"
Python dengan permintaan
import requests
response = requests.get(
"https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>",
headers={"Authorization": f"Bearer {token}"}
)
Python dengan SDK
from databricks.sdk import WorkspaceClient
import requests
wc = WorkspaceClient()
headers = wc.config.authenticate()
response = requests.get(
"https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>",
headers=headers
)
Pertimbangan keamanan
Saat Anda terhubung ke aplikasi dari lingkungan lokal Anda, ikuti praktik terbaik keamanan berikut:
- Jangan pernah menyematkan token akses secara langsung dalam kode sumber Anda. Gunakan variabel lingkungan atau penyimpanan kredensial yang aman.
- Perbarui token secara teratur untuk meminimalkan risiko keamanan jika dikompromikan.
- Hindari pencatatan token akses atau data sensitif di log aplikasi Anda.
Troubleshooting
Jika Anda mengalami masalah saat menyambungkan ke aplikasi dari komputer lokal, coba solusi ini.
Kegagalan autentikasi (kesalahan 401)
Verifikasi hal berikut:
- Token Anda berlaku (jalankan
databricks auth token --profile my-env) - Profil Anda dikonfigurasi dengan benar dengan
databricks auth login - Token belum kedaluwarsa
- Token Anda mencakup cakupan OAuth yang diperlukan. Alat CLI dan SDK hanya menyediakan cakupan dasar seperti
all-apis, yang mungkin tidak cukup untuk otorisasi pengguna.
Izin ditolak (kesalahan 403)
Verifikasi hal berikut:
- Anda memiliki izin
CAN USEpada aplikasi - Token Anda mencakup cakupan OAuth yang diperlukan. Cakupan yang tidak mencukupi dapat menyebabkan 403 kesalahan bahkan dengan izin yang valid.
Aplikasi tidak ditemukan (kesalahan 404)
Verifikasi hal berikut:
- ID dan URL ruang kerja sudah benar
- Aplikasi ini disebarkan dan berjalan
- Jalur titik akhir ada di aplikasi
Masalah konektivitas jaringan
Verifikasi hal berikut:
- Jaringan Anda mengizinkan koneksi HTTPS keluar
- Domain
*.databricksapps.comdapat diakses dari jaringan Anda
Selain itu, periksa apakah organisasi Anda menggunakan proksi yang memerlukan konfigurasi.
Sumber daya tambahan
Untuk informasi selengkapnya, lihat sumber daya berikut ini:
- Cookbook: Menghubungkan dari mesin lokal
- Cookbook: Menghubungkan dari aplikasi eksternal
- Cookbook: Menghubungkan dari aplikasi lain
- Mengonfigurasi izin untuk aplikasi Databricks
- Menyiapkan ruang kerja dan lingkungan pengembangan Databricks Apps Anda
- Autentikasi untuk Databricks CLI
- Autentikasi terpadu Databricks