Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Federacja tokenów OAuth usługi Databricks umożliwia bezpieczny dostęp do interfejsów API usługi Databricks za pomocą tokenów dostarczanych przez dostawcę tożsamości. Aby włączyć federację tokenów OAuth, należy skonfigurować politykę federacyjną, na poziomie całego konta Databricks lub dla poszczególnych obciążeń.
Na tej stronie opisano sposób tworzenia i konfigurowania zasad federacji tokenu OAuth.
Federacja tożsamości zadaniowej
Federacja tożsamości obciążeń roboczych umożliwia automatycznym obciążeniom działającym poza Azure Databricks na uzyskanie dostępu do interfejsów API Azure Databricks bez potrzeby używania wpisów tajnych Azure Databricks. Administratorzy kont mogą skonfigurować federację tożsamości dla obciążenia roboczego przy użyciu polityki federacji jednostki usługi.
Polityka federacji jednostki usługi jest powiązana z jednostką usługi na koncie Azure Databricks i określa:
- Dostawca tożsamości (lub wystawca), za pomocą którego podmiot usługi może się uwierzytelniać.
- Tożsamość robocza (lub podmiot), która może uwierzytelniać się jako główny użytkownik usługi Azure Databricks.
Na przykład, biorąc pod uwagę następującą politykę federacji nazwy głównej usługi dla obciążenia GitHub Actions:
-
Emitenta:
https://token.actions.githubusercontent.com -
Odbiorców:
https://github.com/my-github-org -
Temat:
repo:my-github-org/my-repo:environment:prod
Tej treści JWT można użyć do uwierzytelniania w Azure Databricks:
{
"iss": "https://token.actions.githubusercontent.com",
"aud": "https://github.com/my-github-org",
"sub": "repo:my-github-org/my-repo:environment:prod"
}
Note
Przykłady GitHub Actions na tej stronie używają formatu „tylko nazwa” sub. Repozytoria utworzone, przemianowane lub przeniesione 15 lipca 2026 roku lub później używają niezmiennego formatu, który obejmuje numeryczne identyfikatory organizacji i repozytorium, podobnie jak wcześniejsze repozytoria, które się na to zgadzają. Ponieważ Azure Databricks dokładnie dopasowuje podmiot zasad do sub claim, użyj formatu odpowiadającego twojemu repozytorium. Zobacz Włączanie federacji tożsamości obciążenia dla funkcji GitHub Actions.
Konfigurowanie zasad federacyjnych podmiotu głównego usługi
Administratorzy konta mogą skonfigurować zasady federacji jednostki usługi przy użyciu interfejsu wiersza polecenia usługi Databricks lub interfejsu API usługi Databricks. Można utworzyć maksymalnie 20 zasad federacyjnych jednostki usługi dla jednostki usługi na platformie Azure Databricks. Ten limit jest zgodny z innymi standardowymi implementacjami branżowymi i nie może być zwiększany.
Aby skonfigurować zasady federacji jednostki usługi, należy określić następujące elementy:
Adres URL wystawcy: Adres URL HTTPS identyfikujący dostawcę tożsamości obciążenia określony w
issoświadczeniu tokena tożsamości obciążenia.Temat: Unikatowy identyfikator obciążenia w środowisku wykonawczym obciążenia. Jeśli nie zostanie określony, wartość domyślna to
sub.Odbiorcy: Zamierzony odbiorca tokenu, określony w oświadczeniu
aud. Token jest traktowany jako dopasowanie, jeśli jego odbiorcy pasują do przynajmniej jednej grupy odbiorców w polityce. Jeśli nie określono, wartością domyślną jest twój identyfikator konta Azure Databricks.Oświadczenie podmiotu: (opcjonalnie) Określa oświadczenie tokenu, które zawiera tożsamość zadania (nazywaną również podmiotem) tokenu. Jeśli nie jest ustawiona, Azure Databricks domyślnie używa
sub. Usługa Databricks zaleca zachowanie domyślnegosuboświadczenia dla federacji tożsamości obciążenia. Wybierz tylko inne oświadczenie, jeślisubnie jest odpowiednim lub stabilnym identyfikatorem podmiotu, co jest rzadkie. Aby uzyskać szczegółowe informacje, zobacz Przykładowe polityki federacyjne podmiotów usługi.Weryfikacja podpisu tokenu: (opcjonalnie) Klucze publiczne lub ich adres URL w formacie zestawów kluczy sieci Web JSON (JWKS) używane do sprawdzania poprawności podpisów tokenu. Kod JWKS JSON obsługuje maksymalnie 5 kluczy. Jeśli dostawca tożsamości publikuje dodatkowe informacje, zamiast tego użyj identyfikatora URI JWKS.
Jeśli nie określono, Azure Databricks pobiera klucze z dobrze znanego punktu końcowego wystawcy, co jest zalecanym podejściem. Dostawca tożsamości musi obsługiwać metadane dostawcy OpenID pod
<issuer-url>/.well-known/openid-configuration, które zawierająjwks_uriokreślające lokalizację kluczy publicznych używanych do weryfikacji podpisów tokenów.
Interfejs użytkownika usługi Databricks
- Jako administrator konta zaloguj się do konsoli konta Azure Databricks pod adresem
https://accounts.azuredatabricks.net. - Kliknij pozycję Zarządzanie użytkownikami.
- Przejdź do karty Podmioty usługi.
- Wybierz jednostkę usługi, dla której chcesz utworzyć politykę.
- Przejdź do karty Poświadczenia i wpisy tajne .
- Na karcie Zasady federacji kliknij pozycję Utwórz zasady.
- Wybierz dostawcę poświadczeń federacyjnych i skonfiguruj odpowiednie pola.
- Kliknij pozycję Create policy (Utwórz zasady).
Databricks CLI (Interfejs wiersza polecenia)
Nie można użyć Databricks CLI w terminalu web obszaru roboczego Azure Databricks do utworzenia polityki federacyjnej.
Zainstaluj lub zaktualizuj najnowszą wersję CLI Databricks.
Jako administrator konta uwierzytelnij się na koncie Azure Databricks przy użyciu interfejsu wiersza polecenia. Określ
ACCOUNT_CONSOLE_URLi Azure DatabricksACCOUNT_ID:databricks auth login --host ${ACCOUNT_CONSOLE_URL} --account-id ${ACCOUNT_ID}Pobierz identyfikator liczbowy podmiotu usługi, do którego zostanie zastosowana zasada federacji. (Na przykład
3659993829438643.)Jeśli z wyprzedzeniem znasz identyfikator aplikacji jednostki usługi (zazwyczaj wartość identyfikatora GUID, na przykład
bc3cfe6c-469e-4130-b425-5384c4aa30bb), możesz określić identyfikator liczbowy jednostki usługi przy użyciu interfejsu wiersza polecenia Databricks.databricks account service-principals list --filter 'applicationId eq "<service-principal-application-id>"'Utwórz politykę federacji głównego użytkownika usługi. Oto przykład tworzenia zasad federacyjnych dla akcji GitHub:
databricks account service-principal-federation-policy create ${SERVICE_PRINCIPAL_NUMERIC_ID} --json \ '{ "oidc_policy": { "issuer": "https://token.actions.githubusercontent.com", "audiences": [ "https://github.com/my-github-org" ], "subject": "repo:my-github-org/my-repo:environment:prod" } }'
Interfejs API dla konta Databricks
Pobierz identyfikator liczbowy jednostki usługi (na przykład
3659993829438643) z konsoli konta lub przy użyciu interfejsu API jednostki usługi.Utwórz politykę federacji głównego użytkownika usługi. Określ
ACCOUNT_CONSOLE_URL, Azure DatabricksACCOUNT_ID,SERVICE_PRINCIPAL_NUMERIC_IDi elementu nośnegoTOKENna potrzeby uwierzytelniania:curl --request POST \ --header "Authorization: Bearer $TOKEN" \ "${ACCOUNT_CONSOLE_URL}/api/2.0/accounts/${ACCOUNT_ID}/servicePrincipals/${SERVICE_PRINCIPAL_NUMERIC_ID}/federationPolicies" \ --data '{ "oidc_policy": { "issuer": "https://token.actions.githubusercontent.com", "audiences": [ "https://github.com/my-github-org" ], "subject": "repo:my-github-org/my-repo:environment:prod" } }'Aby uzyskać pełną dokumentację interfejsu API odniesienia, zobacz Account Federation Policy API.
Przykładowe zasady federacji usługowej jednostki Databricks
Poniższa tabela zawiera przykładowe zasady federacji jednostki usługi i zgodną treść JWT.
Aby uzyskać pełne instrukcje dotyczące włączenia federacji tożsamości dla obciążeń dla niektórych z tych powszechnie używanych dostawców tożsamości, zobacz Włączanie federacji tożsamości dla obciążeń w CI/CD.
| Tool | Zasady federacji | Przykład dopasowania tokenu |
|---|---|---|
| GitHub Actions |
Emitenta:https://token.actions.githubusercontent.comAudiencja:https://github.com/<github-org>Temat:repo:<github-org>/<repo>:environment:prod |
{
"iss": "https://token.actions.githubusercontent.com",
"aud": "https://github.com/<github-org>",
"sub": "repo:<github-org>/<repo>:environment:prod"
}
|
| Kubernetes |
Emitenta:https://kubernetes.default.svcAudiencja:https://kubernetes.default.svcTemat:system:serviceaccount:namespace:serviceaccountnameJWKS JSON:{"keys":[{"kty":"rsa","e":"AQAB","use":"sig","kid":"<key-id>","alg":"RS256","n":"uPUViFv..."}]} |
{
"iss": "https://kubernetes.default.svc",
"aud": ["https://kubernetes.default.svc"],
"sub": "system:serviceaccount:namespace:serviceaccountname"
}
|
| Azure DevOps |
Emitenta:https://vstoken.dev.azure.com/<org_id>Audiencja:api://AzureADTokenExchangeTemat:sc://my-org/my-project/my-connection |
{
"iss": "https://vstoken.dev.azure.com/<org_id>",
"aud": "api://AzureADTokenExchange",
"sub": "sc://my-org/my-project/my-connection"
}
|
| GitLab |
Emitenta:https://gitlab.example.comAudiencja:https://gitlab.example.comTemat:project_path:my-group/my-project:... |
{
"iss": "https://gitlab.example.com",
"aud": "https://gitlab.example.com",
"sub": "project_path:my-group/my-project:..."
}
|
| CircleCI |
Emitenta:https://oidc.circleci.com/org/<org_id>Audiencja:<org_id>Temat:7cc1d11b-46c8-4eb2-9482-4c56a910c7ceOświadczenie podmiotu:oidc.circleci.com/project-id |
{
"iss": "https://oidc.circleci.com/org/<org_id>",
"aud": "<org_id>",
"oidc.circleci.com/project-id": "7cc1d11b-46c8-4eb2-9482-4c56a910c7ce"
}
|
| Federacja tożsamości wychodzącej usługi AWS IAM |
Wystawca:https://<uuid>.tokens.sts.global.api.aws (adres URL wystawcy specyficzny dla konta) Odbiorca:databricks (lub dowolna uzgodniona wartość przekazana do GetWebIdentityToken) Podmiot:arn:aws:iam::<account>:role/<role-name> |
{
"iss": "https://<uuid>.tokens.sts.global.api.aws",
"aud": ["databricks"],
"sub": "arn:aws:iam::123456789012:role/my-workload-role"
}
|
Note
W przypadku federacji tożsamości wychodzącej AWS IAM deklaracja sub w tokenie to ARN roli IAM obciążenia wywołującego (na przykład roli wykonawczej AWS Lambda, roli zadania ECS lub roli instancji EC2).
Najlepsze praktyki dotyczące zasad federacyjnych podmiotu usługi
Każda jednostka usługi obsługuje maksymalnie 20 zasad federacyjnych. Ten limit jest zgodny z innymi standardowymi implementacjami branżowymi i nie może być zwiększany. Postępuj zgodnie z tymi wytycznymi, aby uniknąć osiągnięcia tego limitu.
Mapuj jedną tożsamość zewnętrzną na jednostkę usługi
Utwórz dedykowaną jednostkę usługi dla każdej odrębnej tożsamości obciążenia zewnętrznego. Wiele polityk federacyjnych na jednym głównym obiekcie usługi jest właściwych tylko wtedy, gdy ta sama tożsamość logiczna uwierzytelnia się za pośrednictwem różnych dostawców tożsamości. Na przykład obciążenie, które działa zarówno w GitHub Actions, jak i Azure DevOps, wymaga dwóch polityk, jednej na dostawcę, na tym samym użytkowniku usługi.
Nie używaj wielu zasad do mapowania różnych obciążeń (takich jak oddzielne zasobniki Kubernetes na region) na jedną jednostkę usługi. Zamiast tego utwórz oddzielny profil usługi dla każdego obciążenia. Pozwala to zachować przypisanie dziennika inspekcji i umożliwia odwoływanie dostępu dla jednego obciążenia bez wpływu na inne.
Usprawnij uprawnienia za pomocą grup
Jeśli wiele jednostek usługi wymaga tych samych uprawnień, dodaj je jako członków grupy Azure Databricks i przypisz uprawnienia do grupy. Zobacz Najlepsze rozwiązania dotyczące tożsamości.
Użyj właściwości subject_claim dla alternatywnych oświadczeń
Domyślnie Azure Databricks używa oświadczenia sub z tokenu tożsamości do identyfikacji obciążenia. Jeśli dostawca tożsamości nie używa sub jako stabilnego identyfikatora obciążenia, dokonaj ustawienia właściwości subject_claim na nazwę atrybutu używaną przez dostawcę. Aby zapoznać się z przykładem, zobacz konfigurację CircleCI w przykładowych zasadach federacji jednostki usługi Databricks. .
Federacja tokenów dla całego konta
Administratorzy kont mogą skonfigurować federację tokenów OAuth na koncie Azure Databricks przy użyciu zasad federacji kont. Zasady federacji kont umożliwiają wszystkim użytkownikom i jednostkom usługi na koncie Azure Databricks uzyskiwanie dostępu do interfejsów API usługi Databricks przy użyciu tokenów od dostawcy tożsamości. Zasady federacji kont określają:
- Dostawca tożsamości lub wystawca, od którego Azure Databricks będzie akceptować tokeny.
- Kryteria mapowania tokenu do odpowiadającego użytkownika lub jednostki usługi w Azure Databricks.
Na przykład, mając politykę federacji z następującymi polami:
-
Emitenta:
https://idp.mycompany.com/oidc -
Odbiorców:
databricks -
Oświadczenie podmiotu:
sub
Ta treść JWT służy do uwierzytelniania w Azure Databricks jako username@mycompany.com:
{
"iss": "https://idp.mycompany.com/oidc",
"aud": "databricks",
"sub": "username@mycompany.com"
}
Konfigurowanie zasad federacji kont
Administratorzy kont mogą skonfigurować zasady federacji kont przy użyciu interfejsu użytkownika Azure Databricks, interfejsu wiersza polecenia usługi
Aby skonfigurować zasady federacji kont, należy określić następujące elementy:
Adres URL wystawcy: Adres URL PROTOKOŁU HTTPS identyfikujący dostawcę tożsamości określony w oświadczeniu
isstokenów.Odbiorcy: Zamierzony odbiorca tokenu, określony w oświadczeniu
aud. Token jest traktowany jako dopasowanie, jeśli jego odbiorcy pasują do przynajmniej jednej grupy odbiorców w polityce. Jeśli nie określono, wartością domyślną jest twój identyfikator konta Azure Databricks.Roszczenie podmiotu: Oświadczenie tokenu zawierające nazwę użytkownika Azure Databricks, dla którego token został wystawiony. Jeśli nie zostanie określony, wartość domyślna to
sub.Weryfikacja podpisu tokenu: (opcjonalnie) Klucze publiczne lub ich adres URL w formacie zestawów kluczy sieci Web JSON (JWKS) używane do sprawdzania poprawności podpisów tokenu. Kod JWKS JSON obsługuje maksymalnie 5 kluczy. Jeśli dostawca tożsamości publikuje dodatkowe informacje, zamiast tego użyj identyfikatora URI JWKS.
Jeśli nie określono, Azure Databricks pobiera klucze z dobrze znanego punktu końcowego wystawcy, co jest zalecanym podejściem. Dostawca tożsamości musi obsługiwać metadane dostawcy OpenID pod
<issuer-url>/.well-known/openid-configuration, które zawierająjwks_uriokreślające lokalizację kluczy publicznych używanych do weryfikacji podpisów tokenów.
Important
W przypadku federacji dla całego konta zarejestruj tylko dostawcę tożsamości, który jest w pełni zarządzany i zaufany przez organizację, takie jak własny dostawca tożsamości firmy. Nie należy konfigurować federacji całego konta z zewnętrznymi dostawcami tożsamości, nad którymi nie masz kontroli, takimi jak dostawcy zarządzani przez klientów lub partnerów.
Interfejs użytkownika usługi Databricks
- Jako administrator konta zaloguj się do konsoli konta Azure Databricks pod adresem
https://accounts.azuredatabricks.net. - Kliknij Bezpieczeństwo i przejdź do zakładki Konfiguracja dostawcy tożsamości .
- W obszarze Zasady federacji kliknij pozycję Utwórz zasady.
- Wprowadź adres URL wystawcy, odbiorców, oświadczenie podmiotu i opcjonalną weryfikację podpisu tokenu.
- Kliknij pozycję Create policy (Utwórz zasady).
Databricks CLI (Interfejs wiersza polecenia)
Nie można użyć Databricks CLI w terminalu web obszaru roboczego Azure Databricks do utworzenia polityki federacyjnej.
Zainstaluj lub zaktualizuj do najnowszej wersji interfejsu wiersza polecenia usługi Databricks.
Jako administrator konta uwierzytelnij się na koncie Azure Databricks przy użyciu interfejsu wiersza polecenia. Określ
ACCOUNT_CONSOLE_URLi Azure DatabricksACCOUNT_ID.databricks auth login --host ${ACCOUNT_CONSOLE_URL} --account-id ${ACCOUNT_ID}Utwórz zasady federacji kont. Przykład:
databricks account federation-policy create --json \ '{ "oidc_policy": { "issuer": "https://idp.mycompany.com/oidc", "audiences": [ "databricks" ], "subject_claim": "sub" } }'
Interfejs API dla konta Databricks
Następujące wywołanie interfejsu API REST tworzy zasady federacji kont. Określ ACCOUNT_CONSOLE_URL, Azure Databricks ACCOUNT_ID i elementu nośnego TOKEN na potrzeby uwierzytelniania.
curl --request POST \
--header "Authorization: Bearer $TOKEN" \
"${ACCOUNT_CONSOLE_URL}/api/2.0/accounts/${ACCOUNT_ID}/federationPolicies" \
--data '{
"oidc_policy": {
"issuer": "https://idp.mycompany.com/oidc",
"audiences": [
"databricks"
],
"subject_claim": "sub"
}
}'
Aby uzyskać pełną dokumentację interfejsu API odniesienia, zobacz Account Federation Policy API.
Przykładowe zasady federacji kont
Poniższa tabela zawiera przykładowe zasady federacji kont i zgodną treść JWT.
| Zasady federacji | Przykład dopasowania tokenu |
|---|---|
Emitenta:https://idp.mycompany.com/oidcAudiencja:2ff814a6-3304-4ab8-85cb-cd0e6f879c1d |
{
"iss": "https://idp.mycompany.com/oidc",
"aud": "2ff814a6-3304-4ab8-85cb-cd0e6f879c1d",
"sub": "username@mycompany.com"
}
|
Wystawca:https://idp.mycompany.com/oidcOdbiorca:2ff814a6-3304-4ab8-85cb-cd0e6f879c1dRoszczenie podmiotu:preferred_username |
{
"iss": "https://idp.mycompany.com/oidc",
"aud": ["2ff814a6-3304-4ab8-85cb-cd0e6f879c1d", "other-audience"],
"preferred_username": "username@mycompany.com",
"sub": "some-other-ignored-value"
}
|
Wydawca:https://idp.mycompany.com/oidcOdbiorcy:2ff814a6-3304-4ab8-85cb-cd0e6f879c1dJWKS JSON:{"keys":[{"kty":"RSA","e":"AQAB","use":"sig","kid":"<key-id>","alg":"RS256","n":"uPUViFv..."}]} |
{
"iss": "https://idp.mycompany.com/oidc",
"aud": "2ff814a6-3304-4ab8-85cb-cd0e6f879c1d",
"sub": "username@mycompany.com"
} (podpis zweryfikowany przy użyciu klucza publicznego w zasadach) |
Wystawca:https://idp.mycompany.com/oidcOdbiorca:2ff814a6-3304-4ab8-85cb-cd0e6f879c1dIdentyfikator URI JWKS:https://idp.mycompany.com/jwks.json |
{
"iss": "https://idp.mycompany.com/oidc",
"aud": "2ff814a6-3304-4ab8-85cb-cd0e6f879c1d",
"sub": "username@mycompany.com"
} (podpis zweryfikowany przy użyciu klucza publicznego pobranego z jwks_uri) |
Dalsze kroki
Po skonfigurowaniu zasad federacji dla konta:
- Skonfiguruj dostawcę tożsamości (IdP), aby wygenerować tokeny, które użytkownicy mogą wymieniać za pomocą Azure Databricks. Aby uzyskać szczegółowe informacje o konfiguracji, zapoznaj się z dokumentacją dostawcy tożsamości. Aby uzyskać instrukcje dotyczące włączania federacji tożsamości dla obciążeń z typowymi IdP-ami, zobacz Włączanie federacji tożsamości dla obciążeń w CI/CD.
- Użyj tokenu JWT od dostawcy tożsamości, aby uzyskać dostęp do interfejsu API Azure Databricks, najpierw wymieniając go na token OAuth Azure Databricks. Dołącz token OAuth Azure Databricks do nagłówka
Bearer:wywołania interfejsu API, aby ukończyć żądanie. Zestaw JWT musi być prawidłowy i podpisany przy użyciu algorytmów RS256 lub ES256. Aby uzyskać szczegółowe informacje o implementacji, zobacz Uwierzytelnianie przy użyciu tokenu dostawcy tożsamości.