Compartir a través de


Configuración del inicio de sesión de OAuth2 de Microsoft Entra ID

Nota:

Retiraremos Azure HDInsight en AKS el 31 de enero de 2025. Antes del 31 de enero de 2025, deberá migrar las cargas de trabajo a Microsoft Fabric o un producto equivalente de Azure para evitar la terminación repentina de las cargas de trabajo. Los clústeres restantes de la suscripción se detendrán y quitarán del host.

Solo el soporte técnico básico estará disponible hasta la fecha de retirada.

Importante

Esta funcionalidad actualmente está en su versión preliminar. En Términos de uso complementarios para las versiones preliminares de Microsoft Azure encontrará más términos legales que se aplican a las características de Azure que están en versión beta, en versión preliminar, o que todavía no se han lanzado con disponibilidad general. Para más información sobre esta versión preliminar específica, consulte la Información de Azure HDInsight sobre la versión preliminar de AKS. Para plantear preguntas o sugerencias sobre la característica, envíe una solicitud en AskHDInsight con los detalles y síganos para obtener más actualizaciones sobre Comunidad de Azure HDInsight.

En este artículo se describe cómo permitir que los usuarios usen su cuenta de Microsoft Entra ("Cuenta profesional o educativa de Microsoft") para iniciar sesión en Apache Superset.

La siguiente configuración permite a los usuarios tener cuentas de Superset creadas automáticamente cuando usan su inicio de sesión de Microsoft Entra. Los grupos de Azure se pueden asignar automáticamente a los roles de Superset, lo que permite el control sobre quién puede acceder a Superset y qué permisos se proporcionan.

  1. Creación de una entidad de servicio de Microsoft Entra. Los pasos para crear Microsoft Entra ID se describen aquí.

    Para las pruebas, establezca la dirección URL de redireccionamiento en: http://localhost:8088/oauth-authorized/azure

  2. Cree los siguientes secretos en un almacén de claves.

    Nombre del secreto Descripción
    client-secret Entidad de servicio o secreto de aplicación usado para el inicio de sesión del usuario.
  3. Permita que la identidad administrada de AKS ($MANAGED_IDENTITY_RESOURCE) obtenga y enumere secretos de Key Vault.

  4. Habilite el inicio de sesión del proveedor de secretos de Key Vault para el clúster. Para más información, consulte esta página.

    az aks enable-addons --addons azure-keyvault-secrets-provider --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME
    
  5. Prepare un proveedor de secretos para permitir que el secreto de la entidad de servicio sea accesible desde las máquinas de Superset. Para más información, consulte esta página.

    Actualice en yaml:

    • {{MSI_CLIENT_ID}}: el identificador de cliente de la identidad administrada asignada al clúster de Superset ($MANAGED_IDENTITY_RESOURCE).
    • {{KEY_VAULT_NAME}}: el nombre de la instancia de Azure Key Vault que contiene los secretos.
    • {{KEY_VAULT_TENANT_ID}}: el guid de identificador del inquilino de Azure donde se encuentra el almacén de claves.

    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. Aplique SecretProviderClass al clúster.

    kubectl apply -f superset_secretproviderclass.yaml
    
  7. Agregue a la configuración de Superset.

    Actualice en la configuración:

    • {{AZURE_TENANT}}: el inquilino en el que los usuarios inician sesión.
    • {{SERVICE_PRINCIPAL_APPLICATION_ID}}: el identificador de cliente o aplicación de la entidad de servicio que creó en el paso 1.
    • {{VALID_DOMAINS}}: una lista de dominios permitidos para direcciones de correo electrónico de usuario.

    Consulte código de ejemplo.

Vuelva a implementar Superset

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

Pasos siguientes