はじめに

このエントリではQlik Sense Enterpriseで利用可能なSAML認証を利用し、Salesforce(SFDC)との認証連携を行う設定手順をご紹介します。このSAML認証連携を設定することにより、SFDC側の認証メカニズムを使って認証されたユーザーのQlik Sense Enterpriseへのアクセスを許可することが出来ます。

認証の流れは以下となります。SalesforceはIDプロバイダ(IdP)としてユーザーの認証を行い、Qlik Senseはサービス・プロバイダ(SP)としてIdPに認証を委託し、IdP側での認証情報を信頼してサービスを提供します。

image

ここでは、Qlik Sense Enterpriseが既に導入されていることを前提として、SFDC開発者アカウントを登録してSFDCの開発者向けテスト環境を準備し、これらの環境を利用してSAML認証の連携を行います。

SFDC開発者アカウントの作成

ではまず、無料で利用可能なDFC(developer.force.com)でテスト用のSFDC 開発者アカウントを作成します。このアカウントを利用し、Qlik SenseとのSAML認証連携を行います。

以下のURLにアクセスします。

https://developer.salesforce.com/signup

登録ユーザー情報を入力します。尚、一番下の「ユーザー名」の項目には実在するメールアドレスを入力する必要がなく、任意のアドレスを指定することが可能です。ここでは以下のアドレスを設定しています。

user@qlikdemo.com

image

登録が完了すると以下の画面が表示されますので、指定したメールアドレスの受信ボックスを確認し、アカウントのアクティベートを行います。

image

アクティベートが完了すると、以下のSFDC開発者向けポータルサイトへのログインが行われます。

image

Qlik Senseの仮想プロキシの作成

次に、Qlik Sense側のSAML認証設定を行います。ここではSAML認証に対応する新たな仮想プロキシを作成します。Qlik SenseのQMCを開き、[CONFIGURE SYSTEM]>[Proxies]を選択します。

image

設定するプロキシノード(この例では[Central])を選択し、[Edit]をクリックします。

image

[Virtual proxies]のタブを開いて[Add]>[Create new]をクリックします。

image

以下の設定を行います。

IDENTIFICATION

項目 設定内容
Description Salesforce.com
Prefix sfdc
Session cookie header name X-Qlik-Session-sfdc

AUTHENTICATION

項目 設定内容
Authentication method SAML
SAML host URI Qlik Sense ServerのFQDN (Fully Qualified Domain Name)を入力します。この設定がIdPのACS URLもしくはAssertionConsumerServer URLとして利用されます。Qlik Sense側でここで入力した値にポート番号、仮想プロキシ、/samlauthn/を付加します。

入力例) https://demo.qliktech.com

※最後尾に「/」(スラッシュ)や仮想プロキシの値を付加しないように注意して下さい。

SAML entity ID Service Provider (SP)を識別する一意のIDを入力します。グッドプラクティスとして、ホストURI + 仮想プロキシ + spを入力することが推奨されます。

入力例) https://demo.qliktech.com/sfdc/sp

※最後尾に「/」(スラッシュ)を付加しないように注意して下さい。

SAML attribute for user ID Dummy

※ SAMLでユーザーIDとして扱われるSAML attributeを設定します。この時点では「Dummy」を入力します。

SAML attribute for user directory [SFDC]

※ SAML認証されたユーザーのQlik Sense User Directoryの値を入力します。ここでは[SFDC]を指定します。

LOAD BALANCING

ロードバランシングノードとしてサーバーノードを追加します。(この例ではCentral nodeを追加)

ADVANCED

Web socket origin white listに、Qlik Senseへのアクセス時に利用するURL, IPアドレス, FQDNを追加します。

image

Salesforceの認証設定

次にSalesforce側の設定を行います。

ドメインの追加

[設定]の画面から[管理]>[ドメイン管理]>[私のドメイン]を選択します。

image

SalesforceをSAML Identity Provider (IdP)として利用するためにはドメイン名を登録する必要があります。任意のドメイン名を指定して「使用可能か調べる」ボタンをクリックし、指定したドメインが利用可能か確認します。契約条件の同意にチェックをして「ドメインの登録」ボタンをクリックします。ドメインの登録に数分かかります。

image

ドメインの登録が完了すると、[設定]の画面から[管理]>[ドメイン管理]>[IDプロバイダ]を選択し「IDプロバイダを有効化」のボタンをクリックします。(ドメインの登録が完了しないとこのボタンは表示されません。)

image

既に作成済みの証明書を選択したまま「保存」をクリックします。

image

IDプロバイダの有効化が完了しました。

image

接続アプリケーションの作成

[設定]の画面から[ビルド]>[作成]>[アプリケーション]を選択し、「接続アプリケーション」の「新規」ボタンをクリックします。

image

以下を入力し、「保存」をクリックします。

基本情報

項目
新規アプリケーション名 QlikSense
API参照名 QlikSense
取引先責任者メール 登録メールアドレス

Webアプリケーション設定

項目
開始URL Qlik Senseの仮想プロキシを介したハブへのアクセスURLを入力

入力例) https://demo.qliktech.com/sfdc/hub

SAMLの有効化 チェック
Entity ID QMC上で設定したSAML Entity IDを入力

入力例) https://demo.qliktech.com/sfdc/sp

ACS URL 仮想プロキシに/samlauthn/を付加したURLを指定

入力例) https://demo.qliktech.com/sfdc/samlauthn/

image

「Manage」をクリックします。

image

「プロファイル」の「プロファイルを管理する」をクリックします。

image

このアプリケーションへアクセスを許可するユーザーを指定します。ここでは「Force.com – Free User」と「システム管理者」をチェックして「保存」をクリックします。

image

「メタデータのダウンロード」をクリックし、メタデータのファイルをローカルPC上に保存します。

image

Qlik SenseへのIdPメタデータの追加と動作の確認

QMCの画面に戻り、作成した仮想プロキシの設定画面を開いて「SAML Metadata IdP」の「ファイルを選択」ボタンをクリックしてダウンロードしたIdPメタデータのファイルを指定し、「Apply」をクリックします。

image

仮想プロキシを経由してQlik Senseハブにアクセスします。

例) https://demo.qliktech.com/sfdc/hub

以下のSalesforceのログイン画面へリダイレクトされますので、一番最初の手順で登録したSFDCのユーザー名とパスワードを入力します。

image

初回アクセス時には新しいデバイスからのアクセスの有効化が求められます。「確認コードを私宛てにメール送信」をクリックします。

image

受信したメールに記載されている確認コードを入力して「私のコードを確認してログイン」をクリックします。

image

「いいえ、しません。携帯確認を使用しない」をクリックします。

image

Qlik Senseに正式な証明書を導入していない場合にはセキュリティ警告が表示されます。「・・にアクセスする(安全ではありません)」をクリックします。

image

この時点では以下のエラーが出力されます。

image

サーバーにアクセスし、以下のログファイルを開きます。

c:\ProgramData\Qlik\Sense\Log\Proxy\Trace\<hostname>_Audit_Proxy.txt

image

ログファイルの中から、以下の様なメッセージが表示されている行を確認します。このログのメッセージから、SalesforceからSAML認証によるQlik Senseに渡されている属性を確認することができます。ここでは「username」の属性をユーザーIDとして利用します。

Existing SAML attributes: [Name=’userId’, Value=’0052800000162re’] [Name=’username’, Value=’user@qlikdemo.com’] [Name=’email’, Value=’qlikspace@gmail.com’] [Name=’is_portal_user’, Value=’false’]

QMCの画面に戻り、作成した仮想プロキシの設定画面を開いて「SAML attribute for user ID」を「username」に変更し、「Apply」をクリックします。

image

再度ログオンを行い、正しくログオンが行われることを確認します。尚、SFDCユーザーに対してアクセスパスが付与されていない場合には初回アクセス時に以下の様なエラーメッセージが表示されます。

image

その場合には、QMCの「License and Tokens」の画面からユーザーに対してトークンを付与する必要があります。

image

正しくログオンが行われると、以下の形で認証されたSFDCユーザーとしてQlik Senseにログオンが成功します。

image

Salesforceのグループ情報を使ったセキュリティルール設定

ここでは、Salesforce側で保持する属性情報を元に、Qlik Sense側のアクセス制御を行うことが可能です。ここでは、SalesforceのCompany属性情報を元に、Qlik Sense上に新たに作成するストリームへのアクセス制御を行います。

Salesforceの画面に戻り、「カスタム属性」の「新規」ボタンをクリックします。

image

属性キーに「Company」、属性値に「$User.CompanyName」と入力し、「保存」をクリックします。

image

QMCの画面に戻り、作成した仮想プロキシの設定画面を開いて「SAML attribute mapping」に以下の項目の追加を行い、「Apply」をクリックします。

image

次に、新たな「Qlik」という名称のストリームを作成し、このストリームに対してcompany=”Qlik”の属性を持つユーザーのみアクセス可能とします。(一番最初のSFDC開発者アカウントの登録時に入力した会社名を利用してください。ここでは「Qlik」を利用します。)QMCのトップ画面から[MANAGE CONTENT]>[Stream]をクリックします。

image

[Create new]をクリックします。

image

ストリーム名をクリックし、「Apply」をクリックします。

image

「Advance」タブを開き、Conditionsに以下を入力して「Apply」をクリックします。

((user.environment.company=”Qlik” and user.userDirectory=”SFDC”))

image

先ほどログインしたユーザーで新たに作成したストリームが参照可能なことを確認します。

image

まとめ

以上、このエントリではQlik Sense Enterpriseで利用可能なSAML認証を利用し、Salesforce(SFDC)との認証連携を行う設定手順をご紹介しました。