Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Databricks JDBC-drivrutinen stöder flera autentiseringsmetoder beroende på ditt användningsfall. På den här sidan beskrivs hur du konfigurerar varje metod och visar de anslutningsegenskaper som krävs.
Om du vill konfigurera autentisering för Databricks JDBC-drivrutinen använder du någon av följande metoder:
- OAuth 2.0-token genomströmning (inklusive token federation med externa identitetsleverantörer)
- OAuth-autentisering från användare till dator (U2M)
- OAuth-autentisering från dator till dator (M2M)
- Personlig åtkomsttoken för Databricks
OAuth 2.0-token genomströmning
JDBC-drivrutinen accepterar OAuth-token i egenskapen Auth_AccessToken . Du kan skicka antingen en Azure Databricks OAuth-token direkt eller en JSON-webbtoken (JWT) från en extern identitetsprovider. Om du skickar en extern IdP-token byter Azure Databricks automatiskt ut den mot en Azure Databricks-token med hjälp av tokenfederation.
I följande exempel ersätter du följande platshållare:
-
<oauth-token>med en Azure Databricks OAuth 2.0-token eller en extern IdP JWT. - Information om hur du hämtar värdena för
<server-hostname>och<http-path>finns i Konfigurera en anslutning till Databricks med hjälp av Databricks JDBC-drivrutinen.
De egenskaper som krävs är:
-
AuthMechinställd på11(OAuth 2.0-autentisering) -
Auth_Flowinställd på0(token-genomströmningsläge) -
Auth_AccessTokeninställd på en Azure Databricks OAuth-token eller en extern IdP JWT
För en JDBC-anslutnings-URL:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>
I Java-kod:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "0");
p.put("Auth_AccessToken", "<oauth-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
Tokenfederation med en extern identitetsprovider
Om du autentiserar med en token från en extern identitetsprovider, till exempel Okta, Microsoft Entra ID, Keycloak eller någon OIDC-kompatibel IdP, utför Azure Databricks tokenutbytet automatiskt. JDBC-konfigurationen är samma som token vidarebefordran. Skicka IdP-tokenen i Auth_AccessToken och drivrutinen hanterar resten.
Innan du använder tokenfederation måste du:
- Skapa en federationsprincip i ditt Azure Databricks-konto som litar på den externa IdP:en. En federationsprincip anger utfärdarens URL, förväntade målgruppsvärden och JWT-anspråket som används för att mappa till en Azure Databricks-användare. Se Autentisera åtkomst till Azure Databricks med hjälp av OAuth-tokenfederation.
- Kontrollera att det finns en matchande Azure Databricks-användare. Användarens e-post eller annan identifierare måste matcha
subject_claimvärdet i JWT. - Kontrollera att IdP:ts OIDC-identifieringsslutpunkt kan nås offentligt så att Azure Databricks kan hämta signeringsnycklar för att verifiera token.
OAuth-autentisering från användare till maskin (U2M)
Med OAuth U2M-autentisering kan du logga in på Azure Databricks via en webbläsare. Drivrutinen öppnar ett webbläsarfönster, du autentiserar och drivrutinen tar emot en OAuth-token. Drivrutinen använder det inbyggda OAuth-klient-ID:t databricks-sql-jdbc.
Den här autentiseringstypen har inga krav. Token har en standardlivslängd på en timme och uppdateras automatiskt när de upphör att gälla.
Anmärkning
OAuth U2M fungerar endast med lokalt körda program. Det fungerar inte med serverbaserade eller molnbaserade program.
I följande exempel ersätter du följande platshållare:
-
<passphrase>med valfri lösenfras. Föraren använder den här nyckeln för kryptering av uppdateringstoken. - Information om hur du hämtar värdena för
<server-hostname>och<http-path>finns i Konfigurera en anslutning till Databricks med hjälp av Databricks JDBC-drivrutinen.
De egenskaper som krävs är:
-
AuthMechinställd på11(OAuth 2.0-autentisering) -
Auth_Flowinställd på2(U2M-webbläsarbaserat läge) -
TokenCachePassPhraseange den lösenfras som används för att kryptera dina cachelagrade OAuth U2M-autentiseringsuppgifter. Detta förhindrar upprepade webbläsarbaserade autentiseringar. Om du vill välja bort cachelagring av token anger duEnableTokenCachetill0.
I en JDBC-anslutnings-URL:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0
I Java-kod:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "2");
p.put("TokenCachePassPhrase", "<passphrase>");
p.put("EnableTokenCache", "0");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
OAuth-autentisering från dator till dator (M2M)
JDBC-drivrutinen stöder OAuth-autentisering för maskin-till-maskin (M2M) med hjälp av någon av följande principaler eller identiteter. Se Auktorisera tjänstens huvudnamnsåtkomst till Azure Databricks med OAuth.
- Ett tjänstehuvudkonto för Databricks
- En Azure-hanterad tjänstehuvudman
- En Hanterad Azure-identitet (systemtilldelad eller användartilldelad)
M2M med hanterade tjänsthuvud för Databricks
Så här konfigurerar du autentisering med en Databricks Managed Service Principal:
Skapa ett Databricks-hanterat huvudnamn för tjänsten och tilldela det till Databricks-konton och arbetsytor.
Skapa en Databricks OAuth-hemlighet för tjänstens huvudkonto. Se Generera OAuth M2M-åtkomsttoken manuellt.
Lägg till följande egenskaper i din befintliga JDBC-anslutnings-URL eller
java.util.Properties-objekt:-
AuthMechinställd på11(OAuth 2.0-autentisering) -
Auth_Flowinställd på1(M2M-klientuppgifter-läge) -
OAuth2ClientIDange värdet för tjänstens huvudnamns program-ID (klient) -
OAuth2Secretinställd på tjänstens huvudkontos Databricks OAuth-lösenord
-
M2M med Azure hanterad tjänstehuvud
Så här konfigurerar du autentisering med en Azure-hanterad tjänstprincip:
Skapa en Databricks OAuth-hemlighet för tjänstens huvudkonto. Se Generera OAuth M2M-åtkomsttoken manuellt.
Lägg till följande egenskaper i din befintliga JDBC-anslutnings-URL eller
java.util.Properties-objekt:-
AuthMechinställd på11(OAuth 2.0-autentisering) -
Auth_Flowinställd på1(M2M-klientuppgifter-läge) -
OAuth2ClientIDange värdet för tjänstens huvudnamns program-ID (klient) -
AzureTenantIDinställt på azure-klientorganisations-ID:t som finns i Azure Active Directory -
OAuth2Secretinställd på tjänstens huvudkontos Databricks OAuth-lösenord
-
M2M med azure-hanterade identiteter
Så här konfigurerar du autentisering med azure-hanterade identiteter:
Konfigurera hanterade identiteter för dina Azure-resurser.
Lägg till följande egenskaper i din befintliga JDBC-anslutnings-URL eller
java.util.Properties-objekt:-
AuthMechinställd på11(OAuth 2.0-autentisering) -
Auth_Flowinställd på3(hanterat identitetsläge) -
OAuth2ClientIDinställd på klient-ID för den hanterade identiteten. Detta krävs endast om du använder en användartilldelad hanterad identitet. -
Azure_workspace_resource_idange till Databricks-arbetsytans Azure-resurs-ID
-
Personlig åtkomsttoken för Databricks
Anmärkning
Personliga åtkomsttoken är bäst för testningsscenarier. Azure Databricks rekommenderar säkrare autentiseringstyper för produktionsscenarier.
Om du vill skapa en personlig Databricks-åtkomsttoken följer du stegen i Skapa personliga åtkomsttoken för arbetsyteanvändare.
I följande exempel ersätter du följande platshållare:
-
<personal-access-token>med Databricks personliga åtkomsttoken för din arbetsyteanvändare. - Information om hur du hämtar värdena för
<server-hostname>och<http-path>finns i Konfigurera en anslutning till Databricks med hjälp av Databricks JDBC-drivrutinen.
De egenskaper som krävs är:
-
AuthMechinställd på3(tokenautentisering) -
UIDinställd på den bokstavliga strängentoken -
PWDellerpasswordange värdet för din personliga Databricks-åtkomsttoken
I en JDBC-anslutnings-URL:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=3;UID=token;PWD=<personal-access-token>
I Java-kod:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "3");
p.put("UID", "token");
p.put("PWD", "<personal-access-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...