Udostępnij za pośrednictwem


Konfigurowanie logowania OAuth2 identyfikatora entra firmy Microsoft

Uwaga

Wycofamy usługę Azure HDInsight w usłudze AKS 31 stycznia 2025 r. Przed 31 stycznia 2025 r. należy przeprowadzić migrację obciążeń do usługi Microsoft Fabric lub równoważnego produktu platformy Azure, aby uniknąć nagłego zakończenia obciążeń. Pozostałe klastry w ramach subskrypcji zostaną zatrzymane i usunięte z hosta.

Tylko podstawowa pomoc techniczna będzie dostępna do daty wycofania.

Ważne

Ta funkcja jest aktualnie dostępna jako funkcja podglądu. Dodatkowe warunki użytkowania dla wersji zapoznawczych platformy Microsoft Azure obejmują więcej warunków prawnych, które dotyczą funkcji platformy Azure, które znajdują się w wersji beta, w wersji zapoznawczej lub w inny sposób nie zostały jeszcze wydane w wersji ogólnodostępnej. Aby uzyskać informacje o tej konkretnej wersji zapoznawczej, zobacz Informacje o wersji zapoznawczej usługi Azure HDInsight w usłudze AKS. W przypadku pytań lub sugestii dotyczących funkcji prześlij żądanie w usłudze AskHDInsight , aby uzyskać szczegółowe informacje i postępuj zgodnie z nami, aby uzyskać więcej aktualizacji w społeczności usługi Azure HDInsight.

W tym artykule opisano, jak umożliwić użytkownikom korzystanie z konta Microsoft Entra ("konto służbowe Microsoft") w celu zalogowania się do serwera Apache Superset.

Poniższa konfiguracja umożliwia użytkownikom automatyczne tworzenie kont superzestawu podczas korzystania z logowania firmy Microsoft Entra. Grupy platformy Azure można automatycznie mapować na role nadzbioru, co umożliwia kontrolę nad tym, kto może uzyskiwać dostęp do nadzbioru i jakie uprawnienia są podane.

  1. Utwórz jednostkę usługi Entra firmy Microsoft. Kroki tworzenia identyfikatora Entra firmy Microsoft zostały opisane tutaj.

    Na potrzeby testowania ustaw adres URL przekierowania na: http://localhost:8088/oauth-authorized/azure

  2. Utwórz następujące wpisy tajne w magazynie kluczy.

    Nazwa wpisu tajnego opis
    client-secret Klucz tajny jednostki usługi/aplikacji używany do logowania użytkownika.
  3. Zezwól tożsamości zarządzanej usługi AKS ($MANAGED_IDENTITY_RESOURCE) na pobieranie i wyświetlanie wpisów tajnych z usługi Key Vault.

  4. Włącz logowanie dostawcy wpisów tajnych usługi Key Vault dla klastra. Więcej informacji można znaleźć tutaj.

    az aks enable-addons --addons azure-keyvault-secrets-provider --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME
    
  5. Przygotuj dostawcę wpisów tajnych, aby umożliwić dostęp do wpisu tajnego jednostki usługi z maszyn nadzestawu. Więcej informacji można znaleźć tutaj.

    Zaktualizuj plik yaml:

    • {{MSI_CLIENT_ID}} — Identyfikator klienta tożsamości zarządzanej przypisanej do klastra Superset ($MANAGED_IDENTITY_RESOURCE).
    • {{KEY_VAULT_NAME}} — Nazwa usługi Azure Key Vault zawierająca wpisy tajne.
    • {{KEY_VAULT_TENANT_ID}} — identyfikator guid dzierżawy platformy Azure, w której znajduje się magazyn kluczy.

    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. Zastosuj klasę SecretProviderClass do klastra.

    kubectl apply -f superset_secretproviderclass.yaml
    
  7. Dodaj do konfiguracji superzestawu.

    Zaktualizuj w konfiguracji:

    • {{AZURE_TENANT}} — Dzierżawa, do których logują się użytkownicy.
    • {{SERVICE_PRINCIPAL_APPLICATION_ID}} — Identyfikator klienta/aplikacji jednostki usługi utworzonej w kroku 1.
    • {{VALID_DOMAINS}} — Lista dozwolonych domen dla adresów e-mail użytkowników.

    Zapoznaj się z przykładowym kodem.

Ponowne wdrażanie nadzbioru

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

Następne kroki