Compartilhar via


Configurar logon do Microsoft Entra ID OAuth2

Importante

O Azure HDInsight no AKS se aposentou em 31 de janeiro de 2025. Saiba mais com este comunicado.

Você precisa migrar suas cargas de trabalho para microsoft fabric ou um produto equivalente do Azure para evitar o encerramento abrupto de suas cargas de trabalho.

Importante

Esse recurso está atualmente em versão prévia. Os termos de uso complementares para o Microsoft Azure Previews incluem mais termos legais que se aplicam aos recursos do Azure que estão em versão beta, em versão prévia ou ainda não lançados em disponibilidade geral. Para obter informações sobre essa versão prévia específica, consulte Azure HDInsight em informações de visualização do AKS. Para perguntas ou sugestões de funcionalidades, envie uma solicitação no AskHDInsight com os detalhes e siga-nos para obter mais atualizações na Comunidade do Azure HDInsight .

Este artigo descreve como permitir que os usuários usem sua conta do Microsoft Entra ("Conta corporativa ou de estudante da Microsoft") para fazer logon no Apache Superset.

A configuração a seguir permite que os usuários tenham contas do Superset criadas automaticamente quando usam o logon do Microsoft Entra. Os grupos do Azure podem ser mapeados automaticamente para funções superset, que permitem o controle sobre quem pode acessar o Superset e quais permissões são fornecidas.

  1. Crie um principal de serviço do Microsoft Entra. As etapas para criar a ID do Microsoft Entra são descritas aqui.

    Para teste, defina a URL de redirecionamento como: http://localhost:8088/oauth-authorized/azure

  2. Crie os segredos a seguir em um cofre de chaves.

    Nome do segredo Descrição
    segredo do cliente Segredo do principal do serviço/aplicativo usado para login do usuário.
  3. Permitir que sua identidade gerenciada do AKS ($MANAGED_IDENTITY_RESOURCE) obter e listar segredos do key vault.

  4. Habilite o login do provedor de segredos do Key Vault para seu cluster. Para obter mais informações, consulte aqui.

    az aks enable-addons --addons azure-keyvault-secrets-provider --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME
    
  5. Prepare um provedor secreto para permitir que o segredo da entidade de serviço seja acessível a partir dos computadores Superset. Para obter mais informações, consulte aqui.

    Atualizar no arquivo YAML:

    • {{MSI_CLIENT_ID}} - A ID do cliente da identidade gerenciada atribuída ao cluster Superset ($MANAGED_IDENTITY_RESOURCE).
    • {{KEY_VAULT_NAME}} - O nome do Azure Key Vault que contém os segredos.
    • {{KEY_VAULT_TENANT_ID}} - O GUID do inquilino do Azure onde o cofre de chaves está localizado.

    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 o SecretProviderClass ao cluster.

    kubectl apply -f superset_secretproviderclass.yaml
    
  7. Adicione à configuração do Superset.

    Atualizar na configuração:

    • {{AZURE_TENANT}} – o locatário onde os usuários fazem logon.
    • {{SERVICE_PRINCIPAL_APPLICATION_ID}} – O ID do cliente ou aplicativo da entidade de serviço que você criou na etapa 1.
    • {{VALID_DOMAINS}} – uma lista de autorização de domínios para endereços de email do usuário.

    Consulte o código de exemplo .

Reimplantar Superset

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

Próximas etapas