共用方式為


使用 Open ID Connect (OIDC) 聯盟來啟用 Delta Sharing 分享的驗證(公開分享)

此頁面說明 Azure Databricks 中的數據提供者如何將驗證與識別提供者 (IdP) 同盟,以控管 Azure Databricks 中建立之 Delta Sharing 共用的存取權。 此驗證流程會使用 OIDC 同盟,允許由收件者 IdP 發出的 JSON Web 令牌作為 Azure Databricks 所驗證的短期 OAuth 令牌。 此 Databricks-to-open 共用 驗證方法旨在為沒有存取 Unity Catalog 功能的 Databricks 工作區的收件者所設計。

在 OIDC 同盟中,收件者的 IdP 負責發行 JWT 令牌並強制執行安全策略,例如 Multi-Factor Authentication (MFA)。 同樣地,JWT 令牌的存留期由收件者的IdP控管。 Databricks 不會產生或管理這些令牌。 它只會對收件者的IdP進行同盟驗證,並針對收件者的已設定同盟原則驗證JWT。 數據提供者也可以在與組織中的其他使用者或部門內部共享數據時,選擇將驗證同盟至自己的IdP。

OIDC 同盟是一種將非 Databricks 使用者連線至提供者的替代方案,相較於使用由 Azure Databricks 發行且長期有效的持有人令牌。 它可啟用更細緻的訪問控制、支援 MFA,並藉由消除收件者管理和保護共用認證的需求,來降低安全性風險。 如需使用承載令牌改為管理分享驗證的資訊,請參閱 使用承載令牌為非 Databricks 使用者建立收件者物件 (開放分享)

OIDC 聯盟如何在 Delta Sharing 中運作?

  1. 當數據提供者在 Azure Databricks 上的 Delta Sharing 中建立收件者時,他們會設定 OIDC 令牌同盟原則,以指定收件者 IdP 的簽發者 URL,例如Microsoft Entra ID 或 Okta,並定義應該具有共用存取權的收件者使用者、群組、服務主體或 OAuth 應用程式。

  2. Azure Databricks 會根據原則產生 OIDC 配置檔 Web 入口網站 URL,而提供者會與收件者共用該 URL。

    用戶會根據慣用的平臺複製端點 URL 或下載配置檔案,並將 URL 或設定檔檔提供給他們將查詢共用數據的平臺。 從 Databricks OIDC 入口網站下載的這個共用配置檔檔案不包含任何敏感性資訊。

    • 針對使用者對計算機 (U2M) 驗證,收件者會將收件者端點從 OIDC 配置檔入口網站輸入到其 U2M 應用程式。
    • 針對計算機對電腦 (M2M) 驗證,收件者應用程式開發人員會下載配置檔,並在收件者用戶端應用程式中參考它。
  3. 當接收者嘗試使用慣用的平台存取分享數據時,驗證會與其身份提供者(IdP)進行聯合。

    Databricks 不會產生或管理任何令牌或認證。 相反地,接收者的 IdP 會生成包含身份聲明的 JWT。 此短期令牌的有效期由收件者的IdP管理。 Delta Sharing 服務接著會根據收件者的策略驗證 JWT,以確保其符合預期的聲明,包括簽發者、受眾和主體。 如果驗證成功,則會驗證要求,並根據 Unity 目錄許可權授與存取權。

開始之前

若要建立收件者,您必須符合下列需求:

  • 您必須是中繼存放區管理員,或擁有 CREATE RECIPIENT 您要共享數據的 Unity 目錄中繼存放區的許可權。
  • 您必須使用附加有 Unity Catalog 中繼存放區的 Azure Databricks 工作區來創建收件者。
  • 如果您使用 Databricks 筆記本來建立收件者,您的計算必須使用 Databricks Runtime 11.3 LTS 或更新版本,以及標準或專用存取模式(先前共用和單一使用者存取模式)。

要使用的識別提供者?

視您的共用案例而定,您可以搭配內部或外部識別提供者使用 OIDC 同盟:

  • 內部識別提供者 (Provider-Managed)

    • 這對於大型組織中不同部門沒有直接存取 Databricks 但共用相同 IdP 的情況下進行資料共享非常有用。
    • 此方法可讓提供者代表收件者管理存取權。
    • 提供者的IdP會強制執行安全策略,例如MFA和角色型訪問控制。
  • 外部識別提供者 (Recipient-Managed)

    • 提供者會設定共享原則來信任收件者的IdP。
    • 收件者組織會保留可存取共用數據的人員的完整控制權。
    • 收件者的 IdP 會執行安全策略,例如 MFA 和基於角色的訪問控制。

驗證情境 U2M 或 M2M

使用 OIDC 令牌聯邦的安全開放共享,支援使用者對電腦(U2M)和機器對機器(M2M)驗證流程,以促成各種安全的數據共享場景。

用戶對電腦 (U2M) 驗證

來自收件者組織的使用者會使用其IdP進行驗證。 如果已設定 MFA,則會在登入期間強制執行它。

驗證之後,使用者可以使用Power BI或Tableau等工具來存取共享數據。 數據提供者可以定義存取原則,以限制收件者組織內特定使用者或群組的數據存取,確保精確控制誰可以存取共用資源。 U2M 用戶端應用程式 (例如 Power BI) 會使用 OAuth 授權碼授與流程,從 IdP 取得存取令牌。

計算機對電腦 (M2M) 驗證

M2M 非常適合用於不需要使用者互動的自動化工作負載,例如夜間作業或背景服務。 收件者組織在其 IdP 中註冊了一個服務主體。 此服務身分識別可讓應用程式或腳本以程式設計方式安全地存取資源。 Databricks、提供者或收件者之間不會交換任何秘密或認證。 所有秘密管理都會保留在每個組織內部。 M2M 用戶端,例如 Python Delta Sharing Client 或 Spark Delta Sharing Client,使用 OAuth 客戶端憑證授權流程,從 IdP 擷取存取令牌。

建立使用 OIDC 同盟原則的收件者

步驟 1. 建立 Open OIDC 聯盟接收方

若要建立使用 OIDC 進行驗證的收件者:

  1. 在您的 Azure Databricks 工作區中,按兩下 [資料] 圖示。目錄

  2. 在 [ 目錄 ] 窗格頂端,按兩下 齒輪圖示。齒輪圖示 ,然後選取 [ 差異共用]。

    或者,從 快速存取 頁面,按一下 Delta Sharing > 按鈕。

  3. 由我共用 標籤上,按一下 新增收件者

  4. 輸入 收件者名稱

  5. 針對 收件者類型,選取 開啟

  6. 選擇 [OIDC 聯邦] 作為開放驗證方法

  7. 點擊 建立

  8. (選擇性)建立自定義 收件者屬性。 在 [收件者 詳細數據] 索引標籤上,按兩下 [ 編輯屬性 > + 新增屬性]。 然後新增屬性名稱 () 和 。 如需詳細資訊,請參閱 管理收件者屬性

步驟 2. 建立 OIDC 同盟原則

建立原則之前,請先從收件者收集其IdP的相關必要資訊,包括使用者、群組、服務主體或應具有共用存取權的OAuth應用程式。 如果您使用自己的 (內部) IdP 進行內部共用,請從您自己的身分識別系統擷取此資訊。

您必須先向收件者要求資訊,了解其 IdP 和應有權限存取共用的使用者、群組、服務主體或 OAuth 應用程式。 接著,當您建立收件者時,您會在 Azure Databricks 中提供該資訊。

在收件者編輯頁面上,在 OIDC 同盟原則底下,按兩下 [新增原則]

OIDC 原則設定對話框

輸入下列內容:

  • 政策名稱:政策的人類可讀名稱。

  • 簽發者 URL:發出 JWT 令牌之 IdP 的 HTTPS URL。

  • 主體宣告:JWT 中識別驗證身分識別類型的宣告。 在 Microsoft Entra ID 中,您可以設定下列值:

    • oid (物件識別碼):選取使用者是否打算透過 U2M 應用程式存取資料,例如 PowerBI。
    • groups:選取使用者群組是否打算透過U2M應用程式存取資料,例如PowerBI。
    • azp:選取 OAuth 應用程式是否打算透過 M2M 應用程式存取數據,例如 Python Delta Sharing Client 或 Spark Delta Sharing Client。

    在某些其他 IdP 中,可能會使用子或其他聲明。 請參閱 IdP 文件,以確定符合您使用案例的正確宣稱。

  • 主旨:允許存取共用的特定使用者、群組或應用程式。

  • 受眾:JWT 必須符合的一或多個資源識別碼。 如果令牌的 aud 宣告符合任何列出的受眾,則令牌會被視為有效。

如果您不確定要使用的值(簽發者、主旨、主體、對象),請參閱下列範例。 您必須先確定 OIDC 同盟政策的詳細資訊,再建立它。

如果您使用由外部收件者管理的 IdP,請通過安全通道向收件者要求以下資訊。 如果您使用由內部提供者管理的 IdP,這些資訊是根據您正在共用的身份識別,來自您自己的 IdP。

當 IdP 是 Entra ID 時,U2M 的範例:

在 Entra ID 租用者 11111111-2222-3333-4444-555555555555 中,這些是與具有物件識別碼 aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee 的特定使用者共用的範例組態。

  • 簽發者:https://login.microsoftonline.com/aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee/v2.0
  • 主體宣告:oid (對象識別符)
  • 主旨:11111111-2222-3333-4444-555555555555
  • 受眾:64978f70-f6a6-4204-a29e-87d74bfea138 (這是由 Entra ID 中 Databricks 註冊的多租用戶應用程式的客戶端識別碼)

以下是在 Entra ID 租戶中,與對象識別碼 66666666-2222-3333-4444-555555555555 的特定群組分享的範例設置 aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee

  • 簽發者:https://login.microsoftonline.com/aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee/v2.0
  • 主體宣告:groups
  • 主旨:66666666-2222-3333-4444-555555555555
  • 受眾:64978f70-f6a6-4204-a29e-87d74bfea138 (這是由 Entra ID 中 Databricks 註冊的多租用戶應用程式的客戶端識別碼)

備註

針對 Power BI 和 Tableau 等 U2M 應用程式,對象應該是 Databricks 在 Entra ID 中註冊的多租使用者應用程式識別碼,也就是 64978f70-f6a6-4204-a29e-87d74bfea138

如需 U2M 應用程式及其 OIDC 聯盟政策的詳細資訊,請參閱 使用 Open ID Connect (OIDC) 聯盟在使用者到機器的流程中接收 Delta 分享的共用

當 IdP 為 Entra ID 時,提供 M2M 的範例:

zh-TW: 針對在 Entra ID 租戶11111111-2222-3333-4444-555555555555中具有應用程式用戶端識別碼aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee的 M2M OAuth 應用程式:

  • 簽發者:https://login.microsoftonline.com/aaaaaaaa-bbbb-4ccc-dddd-eeeeeeeeeeee/v2.0
  • 主旨宣告:azp
  • 主旨: 11111111-2222-3333-4444-555555555555 (這是應用程式(用戶端)標識符,這是已註冊 OAuth 應用程式的用戶端識別碼,可以在收件者的 Entra ID 入口網站中找到)
  • 受眾:66666666-2222-3333-4444-555555555555(這可以是收件者定義的任何有效受眾識別碼,例如已註冊的 OAuth 應用程式的用戶端 ID)。如需有關 M2M 應用程式及其 OIDC 同盟原則的詳細資訊,請參閱 使用 Python 用戶端和 OpenID Connect(OIDC)同盟,在機器對機器流程(開放共用)中接收 Delta Sharing

步驟 3. 賦予收件者對共享資源的存取權

建立收件者並 建立共享之後,您可以將這些共用的存取權授與收件者。

若要授與收件者的共用存取權,您可以使用目錄總管、Databricks Unity 目錄 CLI,或 GRANT ON SHARE Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中的 SQL 命令。

所需權限:下列其中一個:

  • Metastore 管理員。
  • 共用以及收件者物件的委派權限或所有權 ((USE SHARE + SET SHARE PERMISSION) 或共用擁有者) 和 (USE RECIPIENT 或收件者擁有者)。

如需指示,請參閱管理對 Delta Sharing 數據共用的存取權(適用於提供者)。

收件者工作流程

若要瞭解收件者如何使用 OIDC 令牌同盟來驗證身份和存取共享資源,請參閱: