Aracılığıyla paylaş


Belirteç doğrulaması kullanarak bir Databricks API uygulamasına bağlanma

OAuth 2.0 Taşıyıcı belirteç kimlik doğrulamasını kullanarak HTTP API'sini (örneğin FastAPI veya Gradio uygulaması) kullanıma sunan bir Databricks uygulamasını çağırabilirsiniz. Bu yöntem yerel geliştirme ortamınızdan, dış uygulamalardan ve diğer Azure Databricks uygulamalarından çalışır.

Uyarı

Bu yöntem yalnızca API'leri veya uç noktaları kullanıma sunan uygulamalar için geçerlidir (yollar kullanılarak /api/ erişilebilir). Yalnızca kullanıcı arabirimi veya arka plan işleme sağlayan uygulamalar için belirteç kimlik doğrulaması kullanarak bağlanamazsınız.

Gereksinimler

Belirteç kimlik doğrulaması kullanarak bir Databricks uygulamasına bağlanmak için aşağıdaki gereksinimleri karşılamanız gerekir:

  • Uygulama, yollar kullanılarak /api/ erişilebilen en az bir API uç noktasını kullanıma sunmalıdır.
  • Uygulamada CAN USE yetkisine sahip olmalısınız. Bkz . Databricks uygulaması için izinleri yapılandırma.
  • Desteklenen kimlik doğrulama yöntemlerinden birini kullanarak Azure Databricks erişim belirteci oluşturabilmeniz gerekir.

Kimlik doğrulama yöntemleri

Uyarı

Azure Entra Id belirtecini kullanarak bir Databricks uygulamasını doğrudan çağıramazsınız. Belirteç federasyonu, Azure Databricks'in sunucu tarafında gerçekleştirmediği bir müşteri taraflı belirteç değişim adımı gerektirir. Kimlik doğrulaması için Azure Entra Id belirteçlerini kullanmak için önce bunları OAuth belirteçleriyle değiştirmeniz gerekir. Bkz. Kimlik sağlayıcısı belirteci ile kimlik doğrulaması.

Bağlantı senaryonuzla eşleşen kimlik doğrulama yöntemini seçin:

Yerel geliştirme

Yerel geliştirme ortamınızdan bağlanmak için kullanıcı kimlik bilgilerinizle Databricks CLI veya SDK'ları kullanın.

  1. CLI ile oturum açın:

    databricks auth login --host https://<workspace-url> --profile my-env
    

    Azure Databricks , OAuth kullanıcıdan makineye (U2M) kimlik doğrulamasının kullanılmasını önerir.

  2. Erişim belirteci oluşturma:

    CLI

    databricks auth token --profile my-env
    

    Piton

    from databricks.sdk.core import Config
    config = Config(profile="my-env")
    token = config.oauth_token().access_token
    

Dış uygulamalar

Dış uygulamalardan programlı erişim için makineden makineye (M2M) kimlik bilgileriyle hizmet sorumlusu kimlik doğrulamasını kullanın. Bkz. OAuth ile Azure Databricks'e hizmet sorumlusu erişimini yetkilendirme.

  1. Bir hizmet yetkilisi oluşturun ve istemci kimliğini ve gizli anahtarı elde edin. Bkz. Hizmet sorumluları.

  2. Databricks SDK'sını kullanarak erişim belirteci oluşturma:

    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()
    

Diğer Databricks uygulamalarından

Bir Databricks uygulamasından diğerine bağlandığınızda uygulama, atanan hizmet sorumlusunu kullanarak kimlik doğrulamasını otomatik olarak işler.

from databricks.sdk import WorkspaceClient
import requests

# No explicit credentials needed, uses app's service principal
wc = WorkspaceClient()
headers = wc.config.authenticate()

Kullanıcı yetkilendirmesi için OAuth kapsamları belirtme

Önceki bölümde gösterildiği gibi Databricks CLI veya SDK'ları birleşik kimlik doğrulamasıyla kullandığınızda, araçlar otomatik olarak temel all-apis kapsamı ister. Ancak, uygulamanız kullanıcı yetkilendirmesi kullanıyorsa, özel bir OAuth akışı kullanarak ek kapsamlara sahip bir erişim belirtecini el ile istemeniz gerekir.

Erişim belirtecinizinKullanıcı yetkilendirmesini> bölümünde yapılandırılan kapsamları içerdiğinden emin olun. Belirteç gerekli kapsamlara sahip değilse istekler 401 veya 403 hatalarıyla başarısız olabilir.

Örneğin, aşağıdaki istek açıkça sql, file.files ve dashboards.genie kapsamlarıyla bir erişim belirteci istemektedir:

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"

Tam yönergeler için bkz. OAuth U2M erişim belirteçlerini el ile oluşturma.

Uygulamaya istek gönderme

Uygulamanızın API uç noktalarını çağırdığınızda, Yetkilendirme üst bilgisine Bearer belirtecini ekleyin ve <your-endpoint> etiketini uygulamanızın gerçek API yolu ile değiştirin:

CURL

curl "https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>" \
     -H "Authorization: Bearer <YOUR_TOKEN>"

İstekleri olan Python

import requests

response = requests.get(
    "https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>",
    headers={"Authorization": f"Bearer {token}"}
)

SDK ile Python

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
)

Güvenlikle ilgili dikkat edilmesi gerekenler

Yerel ortamınızdan uygulamalara bağlanırken şu en iyi güvenlik uygulamalarını izleyin:

  • Kaynak kodunuzda erişim belirteçlerini asla sabit kodlamayın. Ortam değişkenlerini veya güvenli kimlik bilgisi depolarını kullanın.
  • Risk altında olmaları durumunda güvenlik risklerini en aza indirmek için belirteçleri düzenli olarak yenileyin.
  • Uygulama günlüklerinizde erişim belirteçlerini veya hassas verileri günlüğe kaydetmekten kaçının.

Sorun giderme

Yerel bir makineden uygulamanıza bağlanırken sorunlarla karşılaşırsanız bu çözümleri deneyin.

Kimlik doğrulama hataları (401 hataları)

Aşağıdakileri doğrulayın:

  • Belirteciniz geçerli (çalıştır databricks auth token --profile my-env)
  • Profiliniz databricks auth login ile doğru yapılandırıldı.
  • Belirtecin süresi dolmadı
  • Jetonunuz gerekli OAuth kapsamlarını içerir. CLI ve SDK araçları yalnızca gibi all-apistemel kapsamlar sağlar ve bu kapsamlar kullanıcı yetkilendirmesi için yeterli olmayabilir.

İzin reddedildi (403 hataları)

Aşağıdakileri doğrulayın:

  • Uygulamada izniniz var CAN USE
  • Jetonunuz gerekli OAuth kapsamlarını içerir. Yetersiz kapsamlar, geçerli izinlerle bile 403 hatasına neden olabilir.

Uygulama bulunamadı (404 hataları)

Aşağıdakileri doğrulayın:

  • Kimlik ve çalışma alanı URL'si doğru
  • Uygulama dağıtıldı ve çalışıyor
  • Uç nokta yolu uygulamada var

Ağ bağlantısı sorunları

Aşağıdakileri doğrulayın:

  • Ağınız giden HTTPS bağlantılarına izin verir
  • *.databricksapps.com alan adı ağınızdan erişilebilir

Ayrıca, kuruluşunuzun yapılandırma gerektiren bir ara sunucu kullanıp kullanmadığını denetleyin.

Ek kaynaklar

Daha fazla bilgi için aşağıdaki kaynaklara bakın: