メイン コンテンツをスキップする
Qlik Sense Enterprise on Kubernetes での IdP としての Okta の使用

このページ上

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

Qlik Sense Enterprise on Kubernetes (QSEoK) は、ID プロバイダーとして Okta を使用するように構成できます。

手順が完了すれば、Okta ユーザー名とパスワードを使用して QSEoK テナントにログインするとともに、QSEoK テナントをプログラムによりインタラクティブに操作することができるようになります。

ここでは、Docker for Mac を使用して Kubernetes を実行している Mac 上で QSEoK が実行されていると仮定します。これと同じ構成でなくても、対応する別の方法で Kubernetes を実行していれば、同じコンセプトを利用することができます。

Okta IdP を使用するための QSEoK の設定

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

  • Okta アカウント

  • Okta テナント

  • Okta アプリ。インタラクティブ ログインおよびプログラム アクセスについて構成済み。

  • Okta アプリケーションの構成設定:

    • discoveryUrl:QSEoK などのアプリケーションで Okta を最小構成で使用できるようにする OpenID Connect Discovery URL。
    • clientId: 認証に Okta を使用するクライアントを一意に識別します。
    • clientSecret: 認証に Okta を使用するため、クライアントがクライアント ID とともに使用するシークレット。
情報メモコード例の多くはプレースホルダー値を含み、ユーザーの設定値で置き換える必要があります。

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

devMode:
  enabled: true

engine:
  acceptEULA: "yes"

identity-providers:
  secrets:
    idpConfigs:
      - discoveryUrl: "<OpenID Configuration from Application>"
        clientId: "<Client ID from Application>"
        clientSecret : "<Client Secret from Application>"
        realm: "<Name for this IdP>"
        hostname: "<Hostname for your QSEoK tenant>"
       

discoveryUrlclientIdclientSecretrealm、および hostname の値を入力する必要があります。

Okta では、作成したアプリケーションの [Client Credentials] (クライアント資格情報) セクションにある [基本設定] タブの下で、[クライアント ID] と [クライアント シークレット] を確認できます。

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

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

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

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

$ helm get values qliksense
devMode:
  enabled: true
engine:
  acceptEULA: "yes"
identity-providers:
  secrets:
    idpConfigs:
      - discoveryUrl: "https://dev-<tenantid>.oktapreview.com/.well-known/openid-configuration"
        clientId: "<clientID code>"
        clientSecret : "<clientsecret code>"
        realm: "Okta"
        hostname: "<hostname>"

ホスト ファイルを構成しています

情報メモこのセクションは、DNS がない場合のみ関係します。

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

127.0.0.1   <hostname>
::1         <hostname>

テナントへのログイン

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

QSEoK へのプログラムによる構成の追加

ここでは、上記で作成したアプリケーションおよび認証サーバーを指定するために、QSEoK に対する IdP 構成が必要になります。primary: true が既存の構成に追加されていた点に注目してください。

devMode:
  enabled: true

engine:
  acceptEULA: "yes"

identity-providers:
  secrets:
    idpConfigs:
      - discoveryUrl: "https://dev-<tenantid>.oktapreview.com/.well-known/openid-configuration"
        clientId: "<client ID coder"
        clientSecret : "<client secret code>"
        realm: "Okta"
        hostname: "<hostname>"
        primary: true
      - discoveryUrl: "https://dev-<tenantid>.oktapreview.com/oauth2/<resource-server-id>/.well-known/openid-configuration"
        primary: false
        realm: "Okta"
        hostname: "<hostname>"
        claimsMapping:
          client_id: ["client_id", "cid"]

 

Helm を使用し、values.yml ファイル内の構成を Kubernetes クラスターに適用します。

$ helm upgrade qliksense qlik/qliksense -f values2.yml