Verificatie-instellingen voor het Databricks JDBC-stuurprogramma

Het Databricks JDBC-stuurprogramma ondersteunt meerdere verificatiemethoden, afhankelijk van uw use-case. Op deze pagina wordt beschreven hoe u elke methode configureert en de vereiste verbindingseigenschappen vermeldt.

Gebruik een van de volgende methoden om verificatie te configureren voor het Databricks JDBC-stuurprogramma:

Doorgeven van OAuth 2.0-token

Het JDBC-stuurprogramma accepteert OAuth-tokens in de Auth_AccessToken eigenschap. U kunt een Azure Databricks OAuth-token rechtstreeks doorgeven of een JSON-webtoken (JWT) van een externe id-provider. Als u een extern IdP-token doorgeeft, wisselt Azure Databricks dit automatisch uit voor een Azure Databricks-token met behulp van tokenfederatie.

Vervang in de volgende voorbeelden de volgende tijdelijke aanduidingen:

  • <oauth-token> met een Azure Databricks OAuth 2.0-token of een externe IdP JWT.
  • Zie <server-hostname> om de waarden voor <http-path> en op te halen.

De vereiste eigenschappen zijn:

  • AuthMech ingesteld op 11 (OAuth 2.0-verificatie)
  • Auth_Flow ingesteld op 0 (passthroughmodus voor tokens)
  • Auth_AccessToken ingesteld op een Azure Databricks OAuth-token of een externe IdP JWT

Zie verificatie-eigenschappen.

Voor een JDBC-verbindings-URL:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>

In Java-code:

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

Tokenfederatie met een externe id-provider

Als u verifieert met een token van een externe id-provider, zoals Okta, Microsoft Entra ID, Keycloak of een idP die compatibel is met OIDC, voert Azure Databricks het token automatisch uit. De JDBC-configuratie is hetzelfde als tokenpassthrough. Geef het IdP-token door via Auth_AccessToken, en het stuurprogramma verwerkt de rest.

Voordat u tokenfederatie gebruikt, moet u het volgende doen:

  1. Maak een federatiebeleid in uw Azure Databricks-account dat de externe IdP vertrouwt. Een federatiebeleid specificeert de URL van de uitgever, verwachte doelgroepwaarden en de JWT-claim die wordt gebruikt om toe te wijzen aan een Azure Databricks-gebruiker. Zie Verificatietoegang tot Azure Databricks met behulp van OAuth-tokenfederatie.
  2. Controleer of er een overeenkomende Azure Databricks-gebruiker bestaat. De e-mail of andere id van de gebruiker moet overeenkomen met de subject_claim waarde in de JWT.
  3. Controleer of het OIDC-detectie-eindpunt van de IdP openbaar bereikbaar is, zodat Azure Databricks ondertekeningssleutels kan ophalen om het token te verifiëren.

OAuth-verificatie van gebruikers-naar-machine (U2M)

Met OAuth U2M-verificatie kunt u zich via een browser aanmelden bij Azure Databricks. Het stuurprogramma opent een browservenster, u verifieert en het stuurprogramma ontvangt een OAuth-token. Het stuurprogramma maakt gebruik van de ingebouwde OAuth-client-id databricks-sql-jdbc.

Dit verificatietype heeft geen vereisten. Tokens hebben een standaardlevensduur van één uur en worden automatisch vernieuwd wanneer ze verlopen.

Opmerking

OAuth U2M werkt alleen met lokaal uitgevoerde toepassingen. Het werkt niet met server- of cloudtoepassingen.

Vervang in de volgende voorbeelden de volgende tijdelijke aanduidingen:

  • <passphrase> met een wachtwoordzin van uw keuze. Het stuurprogramma gebruikt deze sleutel voor het vernieuwen van tokenversleuteling.
  • Zie <server-hostname> om de waarden voor <http-path> en op te halen.

De vereiste eigenschappen zijn:

  • AuthMech ingesteld op 11 (OAuth 2.0-verificatie)
  • Auth_Flow ingesteld op 2 (U2M-browsermodus)
  • TokenCachePassPhrase ingesteld op de wachtwoordzin die wordt gebruikt voor het versleutelen van uw OAuth U2M-referenties in de cache. Dit voorkomt herhaalde verificaties op basis van een browser. Stel EnableTokenCache in op 0 om het opslaan van tokens in cache uit te schakelen.

Zie verificatie-eigenschappen.

In een JDBC-verbindings-URL:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0

In Java-code:

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

machine-naar-machine (M2M) OAuth-verificatie

Het JDBC-stuurprogramma ondersteunt OAuth-machine-to-machine (M2M) authenticatie met behulp van een van de volgende principes of identiteiten. Zie Autorisatie van toegang voor de service-principal tot Azure Databricks met OAuth.

M2M met een door Databricks beheerde service-principal

Verificatie configureren met behulp van een door Databricks beheerde service-principal:

  1. Maak een door Databricks beheerde service-principal en wijs deze toe aan Databricks-accounts en -werkruimten.

  2. Maak een Databricks OAuth-geheim voor de service-principal. Zie OAuth M2M-toegangstokens handmatig genereren.

  3. Toegangsmachtigingen verlenen aan clusters en SQL-warehouses.

  4. Voeg de volgende eigenschappen toe aan uw bestaande JDBC-verbindings-URL of java.util.Properties-object:

    • AuthMech ingesteld op 11 (OAuth 2.0-verificatie)
    • Auth_Flow ingesteld op 1 (M2M-clientreferentiemodus)
    • OAuth2ClientID ingesteld op de waarde van de toepassings-id (client) van de service-principal
    • OAuth2Secret ingesteld op het Databricks OAuth-geheim van de service-principal

    Zie verificatie-eigenschappen.

M2M met een door Azure beheerde service-principal

Verificatie configureren met behulp van een door Azure beheerde service-principal:

  1. Maak een Databricks OAuth-geheim voor de service-principal. Zie OAuth M2M-toegangstokens handmatig genereren.

  2. Toegangsmachtigingen verlenen aan clusters en SQL-warehouses.

  3. Voeg de volgende eigenschappen toe aan uw bestaande JDBC-verbindings-URL of java.util.Properties-object:

    • AuthMech ingesteld op 11 (OAuth 2.0-verificatie)
    • Auth_Flow ingesteld op 1 (M2M-clientreferentiemodus)
    • OAuth2ClientID ingesteld op de waarde van de toepassings-id (client) van de service-principal
    • AzureTenantID ingesteld op de Azure-tenant-id die is gevonden in Azure Active Directory
    • OAuth2Secret ingesteld op het Databricks OAuth-geheim van de service-principal

    Zie verificatie-eigenschappen.

M2M met behulp van door Azure beheerde identiteiten

Verificatie configureren met behulp van door Azure beheerde identiteiten:

  1. Beheerde identiteiten configureren voor uw Azure-resources.

  2. Toegangsmachtigingen verlenen aan clusters en SQL-warehouses.

  3. Voeg de volgende eigenschappen toe aan uw bestaande JDBC-verbindings-URL of java.util.Properties-object:

    • AuthMech ingesteld op 11 (OAuth 2.0-verificatie)
    • Auth_Flow ingesteld op 3 (modus beheerde identiteit)
    • OAuth2ClientID ingesteld op de client-id van de beheerde identiteit. Dit is alleen vereist als u een door de gebruiker toegewezen beheerde identiteit gebruikt.
    • Azure_workspace_resource_id ingesteld op de Azure-resource-id van uw Databricks-werkruimte

    Zie verificatie-eigenschappen.

Persoonlijk toegangstoken van Databricks

Opmerking

Persoonlijke toegangstokens zijn het beste voor testscenario's. Azure Databricks raadt veiligere verificatietypen aan voor productiescenario's.

Als u een persoonlijk toegangstoken voor Databricks wilt maken, volgt u de stappen in Persoonlijke toegangstokens maken voor werkruimtegebruikers.

Vervang in de volgende voorbeelden de volgende tijdelijke aanduidingen:

  • <personal-access-token> met het persoonlijke toegangstoken van Databricks voor uw werkruimtegebruiker.
  • Zie <server-hostname> om de waarden voor <http-path> en op te halen.

De vereiste eigenschappen zijn:

  • AuthMech ingesteld op 3 (tokenverificatie)
  • UID ingesteld op de letterlijke tekenreeks token
  • PWD of password ingesteld op de waarde van uw persoonlijke toegangstoken van Databricks.

Zie verificatie-eigenschappen.

In een JDBC-verbindings-URL:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=3;UID=token;PWD=<personal-access-token>

In Java-code:

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