Nastavení ověřování pro ovladač Databricks JDBC

Ovladač Databricks JDBC podporuje více metod ověřování v závislosti na vašem případu použití. Tato stránka popisuje, jak nakonfigurovat jednotlivé metody a vypíše požadované vlastnosti připojení.

Pokud chcete nakonfigurovat ověřování pro ovladač Databricks JDBC, použijte jednu z následujících metod:

Token OAuth 2.0 pro předávání

Ovladač JDBC přijímá tokeny OAuth ve Auth_AccessToken vlastnosti. Můžete předat buď token Azure Databricks OAuth přímo, nebo webový token JSON (JWT) z externího poskytovatele identity. Pokud předáte externí token IdP, Azure Databricks automaticky jej vymění za Azure Databricks token pomocí federace tokenů.

V následujících příkladech nahraďte následující zástupné symboly:

Požadované vlastnosti:

  • AuthMech nastaveno na 11 (ověřování OAuth 2.0)
  • Auth_Flow nastaveno na 0 (průchozí režim tokenu)
  • Auth_AccessToken Nastaveno na token OAuth Azure Databricks nebo externí JWT IdP

Viz Vlastnosti ověřování.

Pro adresu URL připojení JDBC:

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

V kódu Javy:

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

Federace tokenů s externím zprostředkovatelem identity

Pokud se ověřujete pomocí tokenu z externího zprostředkovatele identity, jako je Okta, Microsoft Entra ID, Keycloak nebo jakýkoli zprostředkovatele identity kompatibilní s OIDC, Azure Databricks provede výměnu tokenů automaticky. Konfigurace JDBC je stejná jako průchod tokenu. Předejte IdP token v Auth_AccessToken a ovladač zpracuje zbytek.

Před použitím federace tokenů musíte:

  1. Vytvořte ve svém účtu Azure Databricks politiku federace, která důvěřuje externímu poskytovateli identity. Zásady federace určují adresu URL vystavitele, očekávané hodnoty cílové skupiny a deklaraci identity JWT použitou k mapování na uživatele Azure Databricks. Viz Ověřování přístupu k Azure Databricks pomocí federace tokenů OAuth.
  2. Ověřte, že existuje odpovídající uživatel Azure Databricks. E-mail uživatele nebo jiný identifikátor musí odpovídat subject_claim hodnotě v JWT.
  3. Ověřte, že koncový bod zjišťování OIDC zprostředkovatele identity je veřejně dostupný, aby služba Azure Databricks mohla načíst podpisové klíče k ověření tokenu.

Ověřování uživatele pomocí OAuth pro přístup k počítači (U2M)

Ověřování OAuth U2M umožňuje přihlásit se k Azure Databricks prostřednictvím prohlížeče. Ovladač otevře okno prohlížeče, ověříte se a ovladač obdrží token OAuth. Ovladač používá integrované ID databricks-sql-jdbcklienta OAuth .

Tento typ ověřování nemá žádné požadavky. Tokeny mají výchozí dobu životnosti jednu hodinu a aktualizují se automaticky, když vyprší jejich platnost.

Poznámka:

OAuth U2M funguje jenom s místně spouštěnými aplikacemi. Nefunguje s serverovými nebo cloudovými aplikacemi.

V následujících příkladech nahraďte následující zástupné symboly:

Požadované vlastnosti:

  • AuthMech nastaveno na 11 (ověřování OAuth 2.0)
  • Auth_Flow nastaveno na 2 (režim prohlížeče U2M)
  • TokenCachePassPhrase nastavte heslo použité k šifrování přihlašovacích údajů OAuth U2M uložených v mezipaměti. Tím se zabrání opakovanému ověřování na základě prohlížeče. Pokud chcete vypnout ukládání tokenů do mezipaměti, nastavte EnableTokenCache na 0.

Viz Vlastnosti ověřování.

V adrese URL připojení JDBC:

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

V kódu Javy:

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

Ověřování OAuth mezi stroji (M2M)

Ovladač JDBC podporuje ověřování OAuth typu machine-to-machine (M2M) pomocí jednoho z následujících objektů zabezpečení nebo identity. Viz Autorizace přístupu servisního principála k Azure Databricks pomocí OAuth.

Stroj-strojová komunikace (M2M) s využitím spravovaného instančního hlavního objektu Databricks

Konfigurace ověřování pomocí spravovaného servisního principálu Databricks:

  1. Vytvořte instanční objekt spravovaný službou Databricks a přiřaďte ho k účtům a pracovním prostorům Databricks.

  2. Vytvořte tajný klíč OAuth pro aplikační objekt Databricks. Viz Ruční generování přístupových tokenů OAuth M2M.

  3. Udělte přístupová oprávnění ke clusterům a skladům SQL.

  4. Do existující adresy URL připojení JDBC nebo objektu java.util.Properties přidejte následující vlastnosti:

    • AuthMech nastaveno na 11 (ověřování OAuth 2.0)
    • Auth_Flow nastaveno na 1 (režim přihlašovacích údajů klienta M2M)
    • OAuth2ClientID nastavená na hodnotu ID aplikace (klienta) hlavního objektu služby
    • OAuth2Secret nastavte tajný klíč OAuth pro služební účet Databricks.

    Viz Vlastnosti ověřování.

M2M s využitím spravovaného aplikačního objektu služby Azure

Konfigurace ověřování pomocí služebního účtu spravovaného Azure:

  1. Vytvořte tajný klíč OAuth pro aplikační objekt Databricks. Viz Ruční generování přístupových tokenů OAuth M2M.

  2. Udělte přístupová oprávnění ke clusterům a skladům SQL.

  3. Do existující adresy URL připojení JDBC nebo objektu java.util.Properties přidejte následující vlastnosti:

    • AuthMech nastaveno na 11 (ověřování OAuth 2.0)
    • Auth_Flow nastaveno na 1 (režim přihlašovacích údajů klienta M2M)
    • OAuth2ClientID nastavená na hodnotu ID aplikace (klienta) hlavního objektu služby
    • AzureTenantID nastaveno na ID tenanta Azure , které se nachází v Azure Active Directory
    • OAuth2Secret nastavte tajný klíč OAuth pro služební účet Databricks.

    Viz Vlastnosti ověřování.

M2M s využitím spravovaných identit Azure

Konfigurace ověřování pomocí spravovaných identit Azure:

  1. Nakonfigurujte spravované identity pro vaše prostředky Azure.

  2. Udělte přístupová oprávnění ke clusterům a skladům SQL.

  3. Do existující adresy URL připojení JDBC nebo objektu java.util.Properties přidejte následující vlastnosti:

    • AuthMech nastaveno na 11 (ověřování OAuth 2.0)
    • Auth_Flow nastaveno do režimu 3 (spravovaná identita)
    • OAuth2ClientID nastaveno na ID klienta spravované identity. To se vyžaduje jenom v případě, že používáte spravovanou identitu přiřazenou uživatelem.
    • Azure_workspace_resource_id nastavte na ID prostředku Azure pracovního prostoru Databricks

    Viz Vlastnosti ověřování.

Osobní přístupový token Databricks

Poznámka:

Osobní přístupové tokeny jsou nejvhodnější pro testovací scénáře. Azure Databricks doporučuje bezpečnější typy ověřování pro produkční scénáře.

Pokud chcete vytvořit osobní přístupový token Databricks, postupujte podle pokynů v tématu Vytvoření osobních přístupových tokenů pro uživatele pracovního prostoru.

V následujících příkladech nahraďte následující zástupné symboly:

Požadované vlastnosti:

  • AuthMech nastavit na 3 (ověřování tokenu)
  • UID nastaveno na literálový řetězec token
  • PWD nebo password nastavte hodnotu osobního přístupového tokenu Databricks.

Viz Vlastnosti ověřování.

V adrese URL připojení JDBC:

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

V kódu Javy:

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