次の方法で共有


Microsoft Entra ID OAuth2 ログインを構成する

大事な

AKS 上の Azure HDInsight は、2025 年 1 月 31 日に廃止されました。 このお知らせ により、の詳細を知ることができます。

ワークロードの突然の終了を回避するには、ワークロードを Microsoft Fabric または同等の Azure 製品 に移行する必要があります。

大事な

この機能は現在プレビュー段階です。 Microsoft Azure プレビューの 追加使用条件 には、ベータ版、プレビュー版、または一般公開されていない Azure 機能に適用される、より多くの法的条件が含まれています。 この特定のプレビューの詳細については、AKS プレビュー情報 Azure HDInsightを参照してください。 ご質問や機能の提案については、詳細を記載したリクエストを AskHDInsight に送信してください。また、Azure HDInsight Community をフォローして、最新の更新情報をご覧ください。

この記事では、ユーザーが Microsoft Entra アカウント ("Microsoft 職場または学校アカウント") を使用して Apache Superset にログインできるようにする方法について説明します。

次の構成では、ユーザーが Microsoft Entra ログインを使用するときにスーパーセット アカウントを自動的に作成できます。 Azure グループは、スーパーセット ロールに自動的にマップできます。これにより、スーパーセットにアクセスできるユーザーと付与されるアクセス許可を制御できます。

  1. Microsoft Entra サービス プリンシパルを作成します。 Microsoft Entra ID を作成するための手順は こちらで説明されています。

    テストの場合は、リダイレクト URL を次に設定します: http://localhost:8088/oauth-authorized/azure

  2. キー ボールトに次のシークレットを作成する。

    シークレット名 説明
    クライアントシークレット ユーザー ログインに使用されるサービス プリンシパル/アプリケーション シークレット。
  3. AKS マネージド ID ($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}} - スーパーセット クラスターに割り当てられたマネージド ID のクライアント 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 で作成したサービス プリンシパルのクライアント/アプリケーション ID。
    • {{VALID_DOMAINS}} - ユーザーの電子メール アドレスのドメインの許可リスト。

    サンプル コード 参照してください。

スーパーセットの再デプロイ

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

次の手順