MCP 認證

Model Context Protocol(MCP)客戶端會向 Azure Databricks 驗證身分以呼叫工具。 當工具存取外部服務時,會有一個獨立的憑證決定它使用的提供者帳號。

本頁說明了 Databricks 應用程式中 Unity Gateway 與 MCP 伺服器所支援的認證方法。 請使用 設定指南 來設定客戶端、代理程式或 MCP 伺服器的認證。 關於 IP 存取清單、網路政策及私人連線,請參見 MCP 網路功能。

下圖顯示了透過 Unity Gateway 存取的外部 MCP 的兩個認證步驟。

入站與出站 MCP 認證方法:Databricks 令牌可達 Unity 閘道,提供者令牌則可至外部 MCP。

  1. 入站驗證:用戶端會傳送 Azure Databricks 權杖,以識別使用者或服務主體。
  2. 出站認證: Unity Gateway 將外部提供者的權杖傳送給 MCP。 Unity 目錄連線中設定的認證方式決定是使用每位使用者的提供者帳號還是共用帳號。

尋找您的設定指南

請選擇一份針對你使用情境的前置條件、設定步驟和程式碼的指南。

Guide 內容涵蓋
將程式碼代理程式連接到 MCP 工具 新增 MCP、授權提供者存取權限及呼叫工具。 如果你的代理還沒連接到 Azure Databricks,建議先從 coding agent quickstart 開始。
使用 Claude 桌面版或網頁版 設定一個 OAuth 用戶端並新增 MCP 連接器。 如需瞭解另一個商業用戶端,請參見 其他 MCP 用戶端。
將你的應用程式連接到 MCP 工具 你的應用程式服務多個使用者。 使用每位使用者的令牌,檢查他們的服務提供者登入狀況,並以他們的權限呼叫工具。
建立並執行一個 Python 代理程式 在本地建立或測試代理程式。 用 CLI 登入,載入 MCP 工具,然後用你選擇的框架執行代理程式。
將 REST API 公開為 MCP 工具 在 Databricks 應用程式上部署 MCP 伺服器,啟用使用者授權,並設定 HTTP 連線到你的 API。
使用服務主體驗證無人值守的代理程式 先設定 OAuth M2M 憑證,然後搭配 Python MCP 用戶端使用。
在 Unity Gateway 註冊一個外部 MCP 註冊伺服器,選擇其認證方式,並測試工具。

使用具備 Consumer 存取權限的 MCP 工具

編碼代理、自訂應用程式及具備 Consumer access 權限的商業客戶端可透過 Unity Gateway 呼叫 MCP 工具。 他們不需要 Workspace 存取 權限,這項權限可授與對工作區製作工具(例如筆記本和作業)的存取權。

管理員授權 消費者存取 並 授權呼叫 MCP。 對於使用每用戶 OAuth 的 MCP,使用者需透過 MCP 登入頁面授權其提供者帳號。

使用者存取支援 MCP 工具的使用。 在 Unity Gateway UI 管理 MCP 需要 存取 Workspace 權限。 請參見 消費者取用功能。

支援的入站認證

當客戶端透過 Unity Gateway 或 Databricks 應用程式呼叫 MCP 時,客戶端會發送 Azure Databricks 代幣。 此權杖用以識別提出請求的 Azure Databricks 使用者或服務主體。

你的使用案例 用於驗證
一個人從程式碼代理程式或商業客戶登入。 OAuth 使用者對機器(U2M)呼叫以已登入的使用者身分呼叫 MCP。
無人值守的代理程式或服務在沒有使用者的情況下運行。 OAuth 機器對機器(M2M)會以服務主體身分呼叫 MCP。
你的應用程式或工作負載已經有來自身份提供者的令牌。 OAuth token federation 會將該 token 交換為供映射的使用者或服務主體使用的 Azure Databricks OAuth token。
現有的整合則使用個人存取權杖。 個人存取權杖(PAT)會以該權杖擁有者的身分呼叫 MCP。 由 Unity Gateway 提供支援。 Databricks 應用程式上的 MCP 伺服器不受支援。

支援的出站認證

出站認證決定外部 MCP 或後端接收哪種憑證。 Unity Gateway 透過 Unity Catalog 連線管理憑證。 Databricks Apps 上的 MCP 伺服器可以使用連線或實作自己的後端認證。

透過 Unity Catalog 連線

Unity Gateway 透過已設定或透過其 Unity 目錄連線取得的提供者權杖,向外部 MCP 進行認證。

Unity Gateway 支援 Unity 目錄 HTTP 連線可用的五種認證方法。 外部 MCP 必須支援所選方法:

受支援的方法 何時使用 外部 MCP 身分
持有人令牌 所有來電者共用一個令牌來存取 MCP。 由共享權杖所代表的帳戶。
OAuth 機器對機器 MCP 支援共享服務身份的 OAuth 用戶端憑證。 在連線中設定的服務識別。
OAuth 使用者對機器共用 MCP 要求用戶登入,所有呼叫端應使用一個共用的服務提供者帳號。 授權此連線的服務提供者帳號。
動態用戶端註冊(DCR) MCP 支援自動 OAuth 用戶端註冊及逐用戶登入。 來電者授權的服務提供者帳號。
OAuth 使用者對機器(每位使用者) 每位使用者都必須透過自己的提供者帳號,使用已設定的 OAuth 用戶端存取。 來電者授權的服務提供者帳號。

Databricks 提供的 MCPs

對於像 Databricks SQL 這類資料 MCP,呼叫者的 Azure Databricks 身份決定了對底層資料的存取權限。 外部服務的 MCP,如 GitHub,則使用如 Through Unity Catalog connections所述的提供者認證。 請參閱 Databricks 提供的 MCP 以了解每台伺服器的需求。

Databricks 應用程式上的代理與 MCP 伺服器

Databricks Apps 上的代理程式或 MCP 伺服器可以以應用程式的服務主體身分使用應用程式授權來呼叫 Azure Databricks,或以目前使用者身分使用使用者授權。

目的地決定如何驗證外撥電話:

  • 透過 Unity Gateway 使用 Azure Databricks API 或其他 MCP:使用應用程式授權以應用程式身分呼叫,或使用使用者授權以目前使用者身分呼叫。
  • 透過 HTTP 連線代理的外部 REST API: 代理伺服器會使用所選的連接方法對外部 API 進行認證。 要以各個使用者身分呼叫,請將 Apps 的使用者授權與連線上的每個使用者 OAuth 合併。
  • 直接呼叫的外部 API 或 MCP: 在您的伺服器中實作該服務所支援的認證流程。

關於設定、所需範圍及程式碼,請參閱「配置代理認證」及「作為 MCP 工具公開 REST API」。