共用方式為


設定 Microsoft Entra ID OAuth2 登入

重要

AKS 上的 Azure HDInsight 於 2025 年 1 月 31 日淘汰。 透過此公告 深入瞭解

您必須將工作負載移轉至 Microsoft Fabric 或對等 Azure 產品,以避免突然終止工作負載。

重要

這項功能目前為預覽狀態。 Microsoft Azure 預覽版的補充使用規定 包含適用於 Beta 版、預覽版或尚未正式發行之 Azure 功能的更合法條款。 如需此特定預覽的相關信息,請參閱 AKS 上的 Azure HDInsight 預覽資訊。 如需問題或功能建議,請在 AskHDInsight 提交請求,並關注我們以獲得 Azure HDInsight 社群的更多更新。

本文說明如何允許使用者使用其Microsoft Entra 帳戶(“Microsoft公司或學校帳戶”)登入 Apache Superset。

下列設定可讓使用者在使用其 Microsoft Entra 登入時自動建立 Superset 帳戶。 Azure 群組可以自動對應至 Superset 角色,以便控制誰可以存取 Superset 以及授予哪些權限。

  1. 建立 Microsoft Entra 服務主體。 建立 Microsoft Entra ID 的步驟說明在此處

    若要進行測試,請將重新導向 URL 設定為:http://localhost:8088/oauth-authorized/azure

  2. 在金鑰保存庫中建立下列秘密。

    秘密名稱 描述
    用戶端密鑰 用於使用者登入的服務主體/應用程式密碼。
  3. 允許您的 AKS 受管理的身份($MANAGED_IDENTITY_RESOURCE從 Key Vault取得及列出機密。

  4. 啟用叢集的 Key Vault 秘密提供者登入。 如需詳細資訊,請參閱這裡

    az aks enable-addons --addons azure-keyvault-secrets-provider --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME
    
  5. 準備一個密鑰提供者,以允許您的服務主體密鑰能從 Superset 機器存取。 如需詳細資訊,請參閱這裡

    yaml 中的更新:

    • {{MSI_CLIENT_ID}} - 指派給 Superset 叢集的受控身分的客戶端 ID($MANAGED_IDENTITY_RESOURCE)。
    • {{KEY_VAULT_NAME}} - 包含秘密的 Azure Key Vault 名稱。
    • {{KEY_VAULT_TENANT_ID}} - 金鑰保存庫所在的 Azure 租用戶識別碼 GUID。

    superset_secretproviderclass.yaml:

    # This is a SecretProviderClass example using aad-pod-identity to access the key vault
    apiVersion: secrets-store.csi.x-k8s.io/v1
    kind: SecretProviderClass
    metadata:
     name: azure-secret-provider
    spec:
    provider: azure
    parameters:
     useVMManagedIdentity: "true" 
     userAssignedIdentityID: "{{MSI_CLIENT_ID}}"
     usePodIdentity: "false"               # Set to true for using aad-pod-identity to access your key vault
     keyvaultName: "{{KEY_VAULT_NAME}}"    # Set to the name of your key vault
     cloudName: ""                         # [OPTIONAL for Azure] if not provided, the Azure environment defaults to AzurePublicCloud
     objects: |
       array:
         - |
           objectName: client-secret
           objectType: secret
     tenantId: "{{KEY_VAULT_TENANT_ID}}"  # The tenant ID of the key vault
    secretObjects:                             
    - secretName: azure-kv-secrets
      type: Opaque
      data:
      - key: AZURE_SECRET
       objectName: client-secret
    
  6. 將 SecretProviderClass 套用至您的叢集。

    kubectl apply -f superset_secretproviderclass.yaml
    
  7. 新增至您的超級設定。

    在設定中更新:

    • {{AZURE_TENANT}} - 使用者登入的租戶。
    • {{SERVICE_PRINCIPAL_APPLICATION_ID}} - 您在步驟 1 中創建的服務主體的用戶端或應用程式識別碼。
    • {{VALID_DOMAINS}} - 使用者電子郵件地址的網域允許清單。

    請參閱 範例代碼

重新部署超集

helm repo update
helm upgrade --install --values values.yaml superset superset/superset

後續步驟