Autentiseringsinställningar för Databricks JDBC-drivrutinen

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

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:

De egenskaper som krävs är:

  • AuthMech inställd på 11 (OAuth 2.0-autentisering)
  • Auth_Flow inställd på 0 (token-genomströmningsläge)
  • Auth_AccessToken inställd på en Azure Databricks OAuth-token eller en extern IdP JWT

Se Autentiseringsegenskaper.

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:

  1. 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.
  2. Kontrollera att det finns en matchande Azure Databricks-användare. Användarens e-post eller annan identifierare måste matcha subject_claim värdet i JWT.
  3. 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:

De egenskaper som krävs är:

  • AuthMech inställd på 11 (OAuth 2.0-autentisering)
  • Auth_Flow inställd på 2 (U2M-webbläsarbaserat läge)
  • TokenCachePassPhrase ange 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 du EnableTokenCache till 0.

Se Autentiseringsegenskaper.

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.

M2M med hanterade tjänsthuvud för Databricks

Så här konfigurerar du autentisering med en Databricks Managed Service Principal:

  1. Skapa ett Databricks-hanterat huvudnamn för tjänsten och tilldela det till Databricks-konton och arbetsytor.

  2. Skapa en Databricks OAuth-hemlighet för tjänstens huvudkonto. Se Generera OAuth M2M-åtkomsttoken manuellt.

  3. Bevilja åtkomstbehörigheter till kluster och SQL-lager.

  4. Lägg till följande egenskaper i din befintliga JDBC-anslutnings-URL eller java.util.Properties -objekt:

    • AuthMech inställd på 11 (OAuth 2.0-autentisering)
    • Auth_Flow inställd på 1 (M2M-klientuppgifter-läge)
    • OAuth2ClientIDange värdet för tjänstens huvudnamns program-ID (klient)
    • OAuth2Secret inställd på tjänstens huvudkontos Databricks OAuth-lösenord

    Se Autentiseringsegenskaper.

M2M med Azure hanterad tjänstehuvud

Så här konfigurerar du autentisering med en Azure-hanterad tjänstprincip:

  1. Skapa en Databricks OAuth-hemlighet för tjänstens huvudkonto. Se Generera OAuth M2M-åtkomsttoken manuellt.

  2. Bevilja åtkomstbehörigheter till kluster och SQL-lager.

  3. Lägg till följande egenskaper i din befintliga JDBC-anslutnings-URL eller java.util.Properties -objekt:

    • AuthMech inställd på 11 (OAuth 2.0-autentisering)
    • Auth_Flow inställd på 1 (M2M-klientuppgifter-läge)
    • OAuth2ClientIDange värdet för tjänstens huvudnamns program-ID (klient)
    • AzureTenantID inställt på azure-klientorganisations-ID:t som finns i Azure Active Directory
    • OAuth2Secret inställd på tjänstens huvudkontos Databricks OAuth-lösenord

    Se Autentiseringsegenskaper.

M2M med azure-hanterade identiteter

Så här konfigurerar du autentisering med azure-hanterade identiteter:

  1. Konfigurera hanterade identiteter för dina Azure-resurser.

  2. Bevilja åtkomstbehörigheter till kluster och SQL-lager.

  3. Lägg till följande egenskaper i din befintliga JDBC-anslutnings-URL eller java.util.Properties -objekt:

    • AuthMech inställd på 11 (OAuth 2.0-autentisering)
    • Auth_Flow inställd på 3 (hanterat identitetsläge)
    • OAuth2ClientID instä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_id ange till Databricks-arbetsytans Azure-resurs-ID

    Se Autentiseringsegenskaper.

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:

De egenskaper som krävs är:

  • AuthMech inställd på 3 (tokenautentisering)
  • UID inställd på den bokstavliga strängen token
  • PWD eller password ange värdet för din personliga Databricks-åtkomsttoken

Se Autentiseringsegenskaper.

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);
// ...