メイン コンテンツをスキップする

Qlik Sense Enterprise on Kubernetes での IdP としての ADFS の使用

このページ上

Qlik Sense Enterprise on Kubernetes での IdP としての ADFS の使用

ADFS は、ADFS のユーザーを使用して Qlik Sense Enterprise on Kubernetes テナントにログインする場合の ID プロバイダーとして使用できます。

ADFS による Qlik Sense Enterprise on Kubernetes の接続

はじめに、以下が揃っていることを確認します。

  • ADFS インストール

  • ADFS 内で構成された必須リソース

  • ADFS アプリケーションの構成設定 (discoveryUrlclientId、およびclientSecret)

  • ハイブリッド デプロイヤーの値 (パブリック キー、キー ID、発行元)

注: コード例の多くはプレースホルダー値を含み、ユーザーの設定値で置き換える必要があります。

values.yml ファイルを使用して Qlik Sense Enterprise on Kubernetes に構成情報を入力します。values.yml ファイルの例は次のとおりです。

devMode:
  enabled: true

engine:
  acceptEULA: "yes"

identity-providers:
  secrets:
    idpConfigs:
      - discoveryUrl: "https://adfs-host/adfs/.well-known/openid-configuration"
        clientId: "https://adfs.elastic.example/1234567890"
        clientSecret: "<client secret>"
        realm: "ADFS"
        hostname: "adfs.elastic.example"
        useClaimsFromIdToken: true
        claimsMapping:
          sub: ["sub", "appid"]
          client_id: "appid"
          name: "display_name"
      - issuerConfig:
          issuer: https://the-issuer
        primary: false
        realm: "ADFS"
        hostname: "adfs.elastic.example"
        staticKeys:
        - kid: "thekid"
          pem: |-
            -----BEGIN PUBLIC KEY-----
            MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEsMSxQjXxrvqoKSAREQXsr5Q7+/aetjEb
            OUHt8/Cf73WD56cb4QbHthALl5Ej4MUFOAL9imDmVQe58o9b1j5Zo16Rt1gjLDvd
            nqstc+PX4tyxqGadItJAOU3jka7jYghA
            -----END PUBLIC KEY-----
注: userClaimsFromIdToken フラグが true に設定されている点が重要です。このフラグは、userinfo に対するクエリの代わりに ID トークンからのクレームを使用するよう edge-auth に指示します。これは、ADFS が userinfo の応答ではごくわずかな情報しか返さず、ID トークンにほとんどの情報を含めるためです。

自ら設定する値は、discoveryUrlclientIdclientSecretrealm、および hostname に挿入する必要があります。

クラスターへの構成の適用

Helm (https://helm.sh/参照) を使用し、以下に示すように values.yml ファイルの構成を Kubernetes クラスターに適用します。

$ helm upgrade \
  --install \
  qliksense qlik/qliksense \
  -f values.yml

構成が適用されたことを確認するには、get values コマンドを実行し、解決された構成を表示します。

$ helm get values qliksense

devMode:
  enabled: true
engine:
  acceptEULA: "yes"
identity-providers:
  secrets:
    idpConfigs:
      - discoveryUrl: "https://adfs-host/adfs/.well-known/openid-configuration"
        clientId: "https://adfs.elastic.example/1234567890"
        clientSecret: "<client secret>"
        realm: "ADFS"
        hostname: "adfs.elastic.example"
        useClaimsFromIdToken: true
        claimsMapping:
          sub: ["sub", "appid"]
          client_id: "appid"
          name: "display_name"
      - issuerConfig:
          issuer: https://the-issuer
        primary: false
        realm: "ADFS"
        hostname: "adfs.elastic.example"
        staticKeys:
        - kid: "thekid"
          pem: |-
            -----BEGIN PUBLIC KEY-----
            MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEsMSxQjXxrvqoKSAREQXsr5Q7+/aetjEb
            OUHt8/Cf73WD56cb4QbHthALl5Ej4MUFOAL9imDmVQe58o9b1j5Zo16Rt1gjLDvd
            nqstc+PX4tyxqGadItJAOU3jka7jYghA
            -----END PUBLIC KEY-----

ホスト ファイルの構成

注: このセクションは、DNS がない場合のみ関係します。

<hostname> を解決するには、以下を /etc/hosts ファイルに追加します。

127.0.0.1   <hostname>
::1         <hostname>

テナントへのログイン

ADFS 展開のユーザーがテナントにログインする設定が完了しました。ブラウザで https://<tenant address> にアクセスすると、ADFS ログイン ページにリダイレクトされます。ログインに成功すると、アプリの配布先のホーム ページが表示されます。