驗證機制
注意
AKS 上的 Azure HDInsight 將於 2025 年 1 月 31 日退場。 請於 2025 年 1 月 31 日之前,將工作負載移轉至 Microsoft Fabric 或對等的 Azure 產品,以免工作負載突然終止。 訂用帳戶中剩餘的叢集將會停止,並會從主機移除。
在淘汰日期之前,只有基本支援可用。
重要
此功能目前為預覽功能。 Microsoft Azure 預覽版增補使用規定包含適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的更多法律條款。 若需此特定預覽版的相關資訊,請參閱 Azure HDInsight on AKS 預覽版資訊。 如有問題或功能建議,請在 AskHDInsight 上提交要求並附上詳細資料,並且在 Azure HDInsight 社群上追蹤我們以獲得更多更新資訊。
採用 HDInsight on AKS 的 Trino 提供 CLI 用戶端、JDBC 驅動程式等工具,以存取與 Microsoft Entra ID 整合的叢集,進而簡化使用者的驗證。 支援的工具或用戶端必須使用 Microsoft Entra ID OAuth2 標準進行驗證,即必須將 Microsoft Entra ID 所簽發的 JWT 存取權杖提供給叢集端點。
本節說明工具支援的常見驗證流程。
驗證流程概觀
支援下列驗證流程。
注意
名稱已保留,應該用於指定特定流程。
名稱 | 必要參數 | 選擇性參數 | 描述 |
---|---|---|---|
AzureDefault | 無 | 租用戶識別碼、用戶端識別碼 | 旨在在互動式環境中開發期間使用。 在大部分情況下,使用者會使用瀏覽器登入。 請參閱詳細資料。 |
AzureInteractive | 無 | 租用戶識別碼、用戶端識別碼 | 使用者使用瀏覽器進行驗證。 請參閱詳細資料。 |
AzureDeviceCode | 無 | 租用戶識別碼、用戶端識別碼 | 適用於無法使用瀏覽器的環境。 提供給使用者的裝置程式碼需要動作,才能使用程式碼和瀏覽器在另一個裝置上登入。 |
AzureClientSecret | 租用戶識別碼、用戶端識別碼、用戶端密碼 | 無 | 已使用服務主體身分識別、需要認證、非互動式。 |
AzureClientCertificate | 租用戶識別碼、用戶端識別碼、憑證檔案路徑 | 秘密/密碼。 若已提供,則用來解密 PFX 憑證。 否則預期為 PEM 格式。 | 已使用服務主體身分識別、需要憑證、非互動式。 請參閱詳細資料。 |
AzureManagedIdentity | 租用戶識別碼、用戶端識別碼 | 無 | 使用環境的受控識別,例如,在 Azure VM 或 AKS Pod 上。 |
AzureDefault 流程
如果未指定 auth
參數,則此流程是 Trino CLI 和 JDBC 的預設模式。 在此模式中,用戶端工具會嘗試使用數種方法取得權杖,直到取得權杖為止。
在下列鏈結執行中,如果找不到權杖或驗證失敗,程序將會繼續進行下一個方法:
DefaultAzureCredential ->AzureInteractive -> AzureDeviceCode (如果沒有瀏覽器)
AzureInteractive 流程
當 auth=AzureInteractive
已提供或作為 AzureDefault
鏈結執行的一部分時,會使用此模式。
注意
如果可以使用瀏覽器,則會顯示驗證提示並等候使用者動作。 如果無法使用瀏覽器,則會回復至 AzureDeviceCode
流程。
AzureClientCertificate 流程
允許使用 PEM/PFX(PKCS #12) 檔案進行服務主體驗證。 如果提供了秘密/密碼,則預期有 PEM/PFX(PKCS #12) 格式的檔案,並使用秘密來解密檔案。 如果未提供秘密,則預期 PEM 格式的檔案包含私密和公開金鑰。
環境變數
所有必要參數都可以直接在引數或連接字串中提供給 CLI/JDBC。 如果未提供,則會在環境變數中尋找某些選擇性參數。
注意
如果您遇到驗證問題,務必檢查環境變數。 它們可能會影響流程。
下表說明可在環境變數中針對不同驗證流程設定的參數。
只有在命令列或連接字串中未提供對應的參數時,才會使用這些參數。
變數名稱 | 適用的驗證流程 | 描述 |
---|---|---|
AZURE_TENANT_ID | 全部 | Microsoft Entra 租用戶識別碼。 |
AZURE_CLIENT_ID | AzureClientSecret、AzureClientCertificate、AzureManagedIdentity | 應用程式/主體用戶端識別碼。 |
AZURE_CLIENT_SECRET | AzureClientSecret、AzureClientCertificate | 服務主體或憑證檔案的秘密或密碼。 |
AZURE_CLIENT_CERTIFICATE_PATH | AzureClientCertificate | 憑證檔案的路徑。 |