次の方法で共有


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

Note

Azure HDInsight on AKS は 2025 年 1 月 31 日に廃止されます。 2025 年 1 月 31 日より前に、ワークロードを Microsoft Fabric または同等の Azure 製品に移行することで、ワークロードの突然の終了を回避する必要があります。 サブスクリプション上に残っているクラスターは停止され、ホストから削除されることになります。

提供終了日までは基本サポートのみが利用できます。

重要

現在、この機能はプレビュー段階にあります。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用されるその他の法律条項については、「Microsoft Azure プレビューの追加の使用条件」に記載されています。 この特定のプレビューについては、「Microsoft HDInsight on AKS のプレビュー情報」を参照してください。 質問や機能の提案については、詳細を記載した要求を 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. キー コンテナーに次のシークレットを作成します。

    シークレット名 説明
    client-secret ユーザー ログインに使用されるサービス プリンシパル/アプリケーション シークレット。
  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}} - Superset クラスターに割り当てられたマネージド 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. Superset 構成に追加します。

    config の更新:

    • {{AZURE_TENANT}} - ユーザーがログインするテナント。
    • {{SERVICE_PRINCIPAL_APPLICATION_ID}} - 手順 1 で作成したサービス プリンシパルのクライアント/アプリケーション ID。
    • {{VALID_DOMAINS}} - ユーザーのメール アドレスのドメインの許可リスト。

    サンプル コードに関するページを参照してください。

Superset を再デプロイする

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

次のステップ