Okta を使用した SAML の構成

Security Assertion Markup Language (SAML) は認証と承認のためのデータ形式です。SAMLsingle sign-on (SSO) を有効化すると、ユーザーが Web サイトやアプリケーションにアクセスするためにログオンする回数を減らすことができます。

SAML はサードパーティ製品による認証用に構成することができます。Okta では、 認証は ID プロバイダー (IdP) またはサービス プロバイダー (SP) によって開始されます。

シングル サインオンを ID プロバイダーから開始する場合

ID プロバイダーがユーザーを認証します。ID プロバイダーがユーザーの ID を断言すると、サービス プロバイダーはユーザーにサービスへのアクセスが提供できるようになります。ID プロバイダーによって SSO が有効にされているため、ユーザーは各サイトにログインしなくても、複数のサービス プロバイダーのサイトやアプリケーションにアクセスできます。

シングル サインオンをサービス プロバイダーから開始する場合

サービス プロバイダーはユーザーを ID プロバイダーにリダイレクトし、そこで認証が行われます。認証プロセスでは、Qlik Sense がサービス プロバイダーとなります。認証が正常に行われた後、ユーザーはさらにログインすることなく、複数のサービス プロバイダー サイトおよびアプリケーションにアクセスできます。

Okta を使用して SAML SSO をセットアップするには、Qlik Sense での仮想プロキシの構成が必要です。また、ID プロバイダーである Okta の構成も必要です。

仮想プロキシの作成および構成

次の手順を実行します。

  1. Qlik Management Console (QMC) で、[Virtual proxies] (仮想プロキシ) を開きます。

  2. P [Create new] (新規作成) をクリックします。

  3. 右側の [Properties] (プロパティ) で、[Identification] (ID)、[Authentication] (認証)、[Load balancing] (負荷分散)、および [Advanced] (詳細設定) の各セクションを選択していることを確認します。

  4. [Identification] (ID) で、[Description] (説明) と [Prefix] (プレフィックス) に「okta」と入力します。

  5. [Session cookie header name] (セッション クッキー ヘッダー名) で、既存の名前の末尾に「-okta」を追加し、ヘッダー名を X-Qlik-Session-okta にします。

  6. [Authentication method] (認証方法) に [SAML] を指定します。

  7. [SAML single logout] (SAML シングル ログアウト) を選択します。SAML single logout は、すべての SSO セッションが適切に閉じるようにするためのセキュリティ対策です。

  8. [SAML host URI] (SAML ホスト URI) に、Qlik Sense へのアクセスにユーザーが使用する URL (サーバー名) を https://myhost.company.com の形式で入力します。

  9. [SAML entity ID] (SAML エンティティ ID) に「okta」と入力します。

    これは Okta 構成の一意の識別子です。

    注: [SAML IdP metadata] (SAML IdP メタデータ) は以降の段階で追加されます。
  10. [SAML attribute for user ID] (ユーザー ID に使用する SAML 属性) に「email」と入力します。

    これは Okta に保存されるユーザーの電子メール アドレスです。Okta 構成内で、別の標準項目またはカスタム項目をユーザー ID として使用するように指定することができます。

  11. [SAML attribute for user directory] (ユーザー ディレクトリに使用する SAML 属性) に「[okta]」と入力します。

    これは、括弧を必要とする静的属性です。

  12. [SAML signing algorithm] (SAML 署名アルゴリズム) に [SHA-1] を指定します。

  13. [SAML attribute mapping] (SAML 属性マッピング) で、P [Add new attribute] (新しい属性の追加) をクリックします。

  14. [SAML attribute] (SAML 属性) として「groups」、[Qlik Sense attribute] (Qlik Sense 属性) として「group」を入力します。[Mandatory] (必須) の選択を解除します。

    名前 groupsSAML アサーションでの属性名です。セキュリティ ルールでこの属性を使用している場合、Qlik Sense はこの属性名 group に応答します。

  15. [Load balancing nodes] (負荷分散ノード) で、P [Add new server node] (新しいサーバー ノードの追加) をクリックします。

  16. この仮想プロキシが接続を負荷分散するエンジン ノードを選択します。

  17. [Advanced] (詳細設定) の [Host white list] (ホスト ホワイト リスト) セクションで、P [Add new value] (新しい値の追加) をクリックします。

  18. Qlik Sense サーバー ([SAML host URI] (SAML ホスト URI) で入力したのと同じサーバー) のホスト名を追加します。

  19. [Apply] (適用) をクリックし、[OK] をクリックしてサービスを再起動します。

  20. 右側の [Associated items] (関連するアイテム) メニューで、[Proxies] (プロキシ) を選択します。

  21. [Link] (リンク) をクリックし、この構成を使用するプロキシ (1 つまたは複数) に仮想プロキシをリンクさせます。

    プロキシ サービスが再起動します。

  22. [Virtual proxies] (仮想プロキシ) 概要ページに移動します。

  23. 作成した okta 構成を選択し、操作バーの [Download SP metadata] (SP メタデータのダウンロード) をクリックします。

  24. Qlik Sense で生成されたメタデータを開きます。以下を確認してください。

    • entityID: この値は、OktaQlik Sense サーバーと通信できるようにするために必要です。

    • SingleLogoutServiceURL (Location): これは、SAML ホスト URI を入力して末尾に仮想プロキシ パスを追加すると Qlik Sense によって生成される URL です。末尾に samlauthnslo が追加されていることに留意してください。これは、OktaSAML single logout を ID プロバイダーに伝達するために使用する URL です。

    • AssertionConsumerService URL (Location): これは、SAML ホスト URI を入力して末尾に仮想プロキシ パスを追加すると Qlik Sense によって生成される URL です。末尾に samlauthn が追加されていることに留意してください。これは、OktaSAML アサーションを Qlik Sense に伝達するために使用する URL です。

    • NameIDFormat: 既定では、transient 名の形式はメタデータとして指定されます。SAML 構成においてこの方法で設定することが常に必要とは限りませんが、適切な操作性を確保するには、この値を記録しておき構成に適切に適用する必要があります。

これで、とりあえず仮想プロキシの設定が完了しました。このページに戻り、IdP メタデータ ファイル (ID プロバイダーの Web ページから入手可能) をアップロードします。次のステップでは、Okta を構成します。

Okta の構成

Okta は構成での ID プロバイダーとなるため、Okta の構成を行う前にアカウントを登録する必要があります。詳細については https://www.okta.com/ を参照してください。

注: Qlik Sense Enterprise on Windows , with Multi-Cloud をインストールする場合には、Okta の開発者アカウントを使用する必要があります。
注: この構成にはサードパーティ製品が含まれているため、構成が本項の説明の通りであると保証することはできません。サードパーティ製品に変更が行われ、弊社が認識していない場合もあります。

次の手順を実行します。

  1. Okta でトップ メニューの [Developer Console] (開発者コンソール) にマウスを合わせ、[Classic UI] (クラシック UI) を選択します。

  2. トップ メニューで、[Applications] (アプリケーション) を選択します。

  3. [Add Application] (アプリケーションの追加) をクリックします。

  4. [Create New App] (アプリの新規作成) をクリックします。

  5. [Platform] (プラットフォーム) として [Web] を選択します。

  6. [Sign on method] (サインオン方法) として [SAML 2.0] を選択します。

  7. [Create] (作成) をクリックします。

    構成画面が表示されます。

  8. このアプリに「Qlik Sense SAML configuration」という名前をつけます。

  9. オプション: ロゴを追加します。

  10. [Next] (次へ) をクリックします。

    [SAML Settings] (SAML 設定) ページが表示されます。

  11. [Single sign on URL] (シングル サインオン URL) として、SP メタデータ ファイルからの AssertionConsumerService URL を項目に入力します。samlauthn の後ろに必ず末尾のスラッシュを挿入してください。これを怠ると、Qlik SenseSAML アサーションが受け入れられません。

  12. [Audience URI (SP Entity ID)] (オーディエンス URI (SP エンティティ ID)) として、前に開いた SP メタデータからの entityID 値を入力します (okta)。

  13. [Name ID format] (名前 ID の形式) に [Transient] (一時的) を指定します。

  14. [Show Advanced Settings] (詳細設定の表示) をクリックします。

  15. [Enable Single Logout] (シングル ログアウトの有効化) に、[Allow application to initiate Single Logout] (シングル ログアウトの開始をアプリケーションに許可する) を指定します。

  16. [Single Logout URL] (シングル ログアウト URL) には、https://<machine_name>/<vp_prefix>/samlauthn/slo/ の形式を使用します。

  17. [SP issuer] (SP 発行元) には、仮想プロキシの SAML entity ID を使用します (okta)。

  18. [Signature Certificate] (署名証明書) では、server.pem 証明書を参照します。通常、次の場所にあります:C:\ProgramData\Qlik\Sense\Repository\Exported Certificates\.Local Certificates

  19. [Upload Certificate] (証明書のアップロード) をクリックします。
  20. [ATTRIBUTE STATEMENTS] (属性ステートメント) セクションで、[Name] (名前) に「email」と入力し、[] には [user.email] を指定します。

  21. [GROUP ATTRIBUTE STATEMENTS] (グループ属性ステートメント) セクションで、[Name] (名前) に「groups」と入力し、[Filter] (フィルター) に [Regex] を指定して文字列「^(A-Za-z0-9_.)+$」を追加します。

    注: 正規表現を使用して検索パターンを定義します。検索パターンの条件に適合する文字列のみが検索されます。検索パターンが ^(A-Za-z0-9_.)+$ の場合、グループ名は、A ~ Za ~ z の文字、0 ~ 9 の数字、アンダースコア (_)、ピリオド (.) が含まれている場合にのみ検索されます。名前にダッシュ (-) が含まれている場合は、検索パターンに適合しないため検索されません。詳しくは、「Wikipedia: 正規表現」を参照してください。
  22. [次へ] をクリックします。

    フィードバック セクションが開きます。

  23. [Are you a customer or partner?] (顧客/パートナーのいずれに該当しますか?) の問いに対し、[I'm an Okta customer adding an internal app] (社内アプリを追加しようとしている Okta 顧客です) を選択します。

  24. オプション: [This is an internal app that we have created] (これは社内アプリとして作成したアプリです) を選択します。

  25. [Finish] (完了) をクリックします。

    [Sign On] (サインオン) ページが表示されます。このページから IdP メタデータをダウンロードできます。

  26. 下向きにスクロールし、[Identity Provider metadata] (ID プロバイダーのメタデータ) リンクをクリックします。Qlik Sense ではメタデータ ファイルの拡張子が xml でなければならないため、ファイルは必ず metadata.xml として保存してください。

  27. 上向きにスクロールし、トップ メニューで [People] (ユーザー) を選択します。

  28. 作成した接続をユーザーが使用できるように、ユーザーをアプリに割り当てる必要があります。[Assign to People] (ユーザーへの割り当て) をクリックし、ユーザーを追加します。(ユーザーが Okta アカウントを持っていることが前提となります。)

これで Okta の構成が完了しました。接続をテストするには、最後のステップとして IdP メタデータを仮想プロキシにアップロードする必要があります。

IdP メタデータ ファイルのアップロード

次の手順を実行します。

  1. QMC に戻り、編集のために okta 仮想プロキシを開きます。

  2. [Authentication] (認証) の [SAML IdP metadata] (SAML IdP メタデータ) で、[Choose File] (ファイルの選択) をクリックします。

  3. Okta からダウンロードしたメタデータ ファイルを選択します。

  4. [View content] (コンテンツを表示) をクリックしてメタデータを確認します。

  5. [Apply] (適用) をクリックします。

  6. [OK] をクリックし、仮想プロキシへの変更を承諾します。

  7. [Refresh QMC] (QMC データの更新) をクリックします。

これで構成をテストできます。

Okta SAML 構成のテスト

前述したように、single sign-on (SSO) はサービス プロバイダーまたは ID プロバイダーを介して開始できます。

シングル サインオンをサービス プロバイダーから開始する場合

次の手順を実行します。

  1. 新しいブラウザー ウィンドウを開いて、仮想プロキシ パスを含む Qlik Sense サーバー URL に移動します。例: https://myhost.company.com/okta/

    ログイン要求の認証のために、ブラウザーが Okta にリダイレクトされます。

  2. ユーザー資格情報を入力します。

    Okta によって Qlik Sense ハブにリダイレクトされます。

シングル サインオンを ID プロバイダーから開始する場合

  1. ブラウザーを開いて www.okta.com に移動します。

  2. ユーザー資格情報を使用してログインします。

  3. 上部のメニューで、[My Applications] (マイ アプリケーション) をクリックします。

    使用可能なアプリケーションが表示されます。

  4. Qlik Sense SAML アプリケーションをクリックします。

    Qlik Sense ハブが新しいタブで開きます。

注: RelayState は常に https://<machine_name>/<vp_prefix>/hub に設定することをお勧めします。RelayState が空の場合、一部の ID プロバイダーでは post 要求の代わりに get 要求が送信されるため、エラーが生じます。RelayState が空の場合、スペルミスがある場合、またはホストのホワイト リストに含まれていない場合には、ユーザーは自動的にハブにリダイレクトされます。
注: IdP から開始する SSO を機能させるには、アサーションに署名する必要があります。