認証ソリューション
Qlik Sense 認証は、次のいずれのソリューションでも管理できます。
- チケット ソリューション
- セッション ソリューション
- ヘッダー ソリューション
- SAML
- JWT
- OIDC
- 匿名ユーザー
- Microsoft SQL (MSSQL) サーバーからの シングル サインオン (SSO) の構成
チケット ソリューション
チケット ソリューションは、普通のチケットと似ています。ユーザーは確認を受けてから、チケットを受け取ります。ユーザーは Qlik Sense にチケットを持参します。チケットが有効であれば、認証されます。チケットの安全性を保つために、以下の制限事項が適用されます。
- チケットは、短期間のみ有効です。
- チケットは一度だけ有効です。
- チケットはランダムなので、推測が困難です。
認証モジュールと Qlik Sense Proxy Service (QPS) 間の通信はすべて、トランスポート レイヤー セキュリティ (TLS) を使用し、証明書を通じて承認を受ける必要があります。
下表には、チケットを使用したユーザー認証の標準的なフローを示しています。
- ユーザーは、Qlik Sense にアクセスします。
- Qlik Sense はユーザーを認証モジュールにリダイレクトします。認証モジュールは、ID プロバイダーに対するユーザー ID および資格情報を検証します。
- 資格情報が確認されたら、QPS からチケットを要求します。この要求でプロパティの追加が含まれているかもしれません。
- 認証モジュールがチケットを受け取ります。
- チケットを使用して、QPS にユーザーをリダイレクトします。QPS は、チケットが有効かどうか、またタイムアウトになっていないかどうか確認します。
- ユーザー用のプロキシ セッションが作成されます。
- これでユーザーが認証されました。
認証モジュール用の認証 (チケット) API の詳細については、「チケット (英語のみ)」を参照してください。
セッション ソリューション
Qlik Sense Proxy Service (QPS) は、セッション ソリューションによって、ユーザーの身元を検証する外部システムのセッションを使用できるようになります。
認証モジュールと QPS 間の通信はすべて、トランスポート レイヤー セキュリティ (TLS) を使用し、証明書を通じて承認を受ける必要があります。
下表は、外部システムのセッションを使用したユーザー認証の標準的なフローを示したものです。
- ユーザーは、たとえばポータルに統合されている、ID プロバイダーにアクセスします。ID プロバイダーはユーザー ID と資格情報を入手し、確認します。その後、ID プロバイダーは新規にセッションを作成します。
- ID プロバイダーは Qlik Sense セッション モジュールを通じ、セッション トークンを登録します。
- ID プロバイダーはセッション cookie としてセッション トークンを設定します。
- ユーザーは QPS にアクセスし、コンテンツを入手します (ポータルの iframe などを通じて)。
- QPS はセッション モジュールのセッションを検証します。
- セッションが有効でタイムアウトになっていない場合、ユーザーは認証されます。
セッション モジュールの詳細については、「Session module API (英語のみ)」 (セッション モジュール API) を参照してください。
ヘッダー ソリューション
ヘッダー認証は、リバース プロキシまたはユーザーを認証するためのフィルタリングを提供するシングル サインオン (SSO) システムと併用して、頻繁に使用されます。
下表には、ヘッダー認証を使用したユーザー認証の標準的なフローを示しています。
- ユーザーはシステムにアクセスし、リバース プロキシに対し認証します。
- リバース プロキシは、定義済み HTTP ヘッダーにユーザー名を挿入します。Qlik Sense Proxy Service (QPS) への要求にはすべて、ヘッダーが含まれている必要があります。
- ユーザーが認証されます。
ユーザーに使用されている HTTP ヘッダー名は、Qlik Management Console (QMC) で設定できます。
ヘッダー名に使用できる値にはいくつかの制限があります。詳細については、「仮想プロキシ」を参照してください。
SAML
Security Assertion Markup Language (SAML) は、当事者間 (ID プロバイダーとサービス プロバイダー間など) の認証と承認データを交換するための XML ベースのオープンスタンダードなデータ形式です。SAML は通常、Web ブラウザー シングル サインオン (SSO) 用に使用されます。
SAML の動作
SAML の仕様は 3 つの役割を定義しています。
- プリンシパル: 通常は、ユーザー
- IdP:ID プロバイダー
- SP:サービス プロバイダー
プリンシパルは、IdP に ID アサーションを要求、取得する SP からサービスを要求します。アサーションに基づいて、SP は、プリンシパルに要求されたサービスを実行するかどうかを決定します。
Qlik Sense 内の SAML
Qlik Sense は以下の実装とサポートによって SAML V2.0 に対応します。
- 外部 IdPs と統合できる SP の実装
-
SAML リクエストを処理するための HTTP Redirect Binding のサポート
-
SAML 応答を実行するための HTTP Redirect Binding と HTTP POST Binding のサポート
- リソースとデータをアクセス制御するための SAML プロパティのサポート
制限事項:
- Qlik Sense は、SAML メッセージの署名検証に対応していません。
JSON Web Token (JWT)
JSON Web Token (JWT) は、JavaScript Object Notation (JSON) オブジェクトである 2 つの当事者間で安全に情報を転送するためのオープン標準です。JWT は、認証と承認に使用されます。JWT により シングル サインオン (SSO) を有効化できるため、ユーザーがクラウド アプリケーションや Web サイトにログオンする回数を最小限にすることができます。
JWT の動作
JWT は、ヘッダー、ペイロード、シグネチャーの 3 つの部分で構成されています。
-
ヘッダーは通常、type (typ) と algorithm (alg) の 2 つの部分で構成されています。アルゴリズムを使用して、シグネチャーが生成されます。
-
ペイロードは、作成するクレームで構成された JSON オブジェクトです。クレームとは、エンティティ (通常はユーザー) と追加のメタデータに関するステートメントです。
-
シグネチャーは、JWT 差出人の ID を確認し、メッセージが改ざんされていないことを保証するために使用します。
認証は、シグネチャーを確認することで行われます。シグネチャーが有効な場合、Qlik Sense に対してアクセスが許可されます。
制限事項
以下の制限事項があります。
-
暗号化された JWT はサポートされていません。
情報メモHTTPS を使用する場合、JWT を含むすべてのトラフィックは転送中に暗号化されます。
-
以下の署名アルゴリズムのみサポートしています。
-
RS256 - RSA シグネチャーと SHA256
-
RS384 - RSA シグネチャーと SHA384
-
RS512 - RSA シグネチャーと SHA512
-
OpenID Connect
OpenID Connect (OIDC) は、認可フレームワークである OAuth 2.0 の上位の認証層です。OIDC で シングル サインオン (SSO) を有効化すると、ユーザーが Web サイトやアプリケーションにアクセスするためにログオンする回数を減らすことができます。OIDC はサードパーティ製品による認証用に構成することができます。
OIDC の動作
OIDC は、JSON 形式の認証を使用するオープンスタンダードです。OIDC は OAuth と同じコンポーネントとアーキテクチャを使用しますが、認証を行います。OIDC を使用するアプリケーションは、認証プロトコルをサポートするあらゆる ID プロバイダーと連携します。このプロトコルは、ユーザーが保護されたエンドポイントにアクセスしようとしたときに、本人確認をサポートします。
ワークフロー
-
ユーザがアプリケーションにアクセスすると、認証と承認のために OIDC IDプロバイダーにリダイレクトされます。
-
ユーザは OIDCIDプロバイダーにログインします。
-
OIDC IDプロバイダーは、ユーザが認証および承認されたことを示す応答をアプリケーションに送信します。
-
アプリケーションは、OIDC IDプロバイダーにユーザ情報を要求します。
-
OIDC IDプロバイダーが、必要なユーザ情報で応答します。
匿名ユーザー
Qlik Sense の匿名ユーザーが許可されると、認証されていないユーザーは自動的に、認証モジュールにリダイレクトされます。ユーザーはまず匿名アクセス権を入手します。その後ユーザーがサインインを選ぶと、認証モジュールにリダイレクトされて、ユーザー ID と資格情報を入力します。
Microsoft SQL (MS SQL) Server に対する シングル サインオン (SSO) の構成
データベース ファイルが MS SQL Server からデータにアクセスする場合は、SSO が有効になるようにホスト サーバーを構成できます。ODBC データ ソースのシングル サインオンを使用すると、クライアントは 1 つの Windows 認証ログインを使って、共有ファイルのデータにアクセスできます。
MS SQL Server に SSO を構成するには、Windows ドメイン管理者は次の手順を実行する必要があります。
- Active Directory 内でサービス プリンシパル名 (SPN) を作成する
- Qlik Sense サービス管理者アカウントの委任を構成する
- Qlik Sense サーバーに対して SSO を構成する
- MS SQL Server に対して SSO を構成する
Active Directory 内でのサービス プリンシパル名 (SPN) の作成
サービス プリンシパル名 (SPN) は、サービス インスタンスの一意の識別子です。サービス インスタンスをサービス ログイン アカウントに関連付けるために、SPNs が認証中に使用されます。そのため、クライアントにアカウント名がなくても、クライアント アプリケーションは、サービスでアカウントを認証するように要求できます。SPN には常に、サービス インスタンスが実行中のホスト コンピューターの名前が含まれているため、サービス インスタンスは、そのホストの各名前またはエイリアスの SPN を登録することがあります。
認証サービスが SPN を使ってサービスを認証するには、サービス インスタンスがログオンに使うアカウント オブジェクトに SPN を登録する必要があります。特定の SPN を 1 つのアカウントだけに登録できます。Win32 サービスの場合、サービスのインスタンスのインストール時に、サービス インストーラーによってログオン アカウントが指定されます。その後、インストーラーは SPNs を作成し、それらをアカウント オブジェクトのプロパティとして Active Directory Domain Services に書き込みます。サービス インスタンスのアカウントが変更された場合、SPNs を新しいアカウント下で再登録する必要があります。
クライアントはサービスに接続する際、サービスのインスタンスを特定し、そのインスタンスの SPN を作成し、サービスに接続して、認証のためにサービスの SPN を提示します。
MS SQL server に対して SSO を設定するには、Qlik Sense サービス管理者アカウント用の SPNs を作成する必要があります。
次の手順を実行します。
- ドメイン管理者としてログオンします。
- 管理者特権でのコマンド プロンプトを開きます。
- 以下を入力して、Qlik Sense サービス管理者用の SPN を作成します。
setspn -A HTTP/<Qlik_Sense_server>:<port> <domain>\<Qlik_Sense_services_administrator>
情報メモ<Qlik_Sense_server> には、サーバーの完全修飾ドメイン名を入力します。情報メモ<Qlik_Sense_server> は、Qlik Sense が実行中のセントラル ノードです。 - 以下を入力して、MS SQL Server サービス管理者用の SPN を作成します。
setspn -A MSSQLSvc/<server_name>:<port> <domain>\<services_administrator>
情報メモ<server_name> には、サーバーの完全修飾ドメイン名を入力します。 - 次のコマンドを入力して、SPN 設定の結果を検証します。
- setspn -L <domain>\<Qlik_Sense_services_administrator> (Qlik Sense サービス管理者を検証)
- setspn -L <domain>\<MS_Sql _server_services_administrator> (MS SQL Server サービス管理者を検証)
Qlik Sense サービス管理者アカウントの委任の構成
委任を構成すると、フロントエンド サービスがクライアント リクエストをバックエンド サービスに転送できるので、バックエンド サービスもクライアントに成り代わることができます。成り代わりは、クライアントが特定のアクションを実行する承認を得ているかどうかを確認するために使用されます。一方、委任は、成り代わり機能をクライアントの ID とともにバックエンド サービスに送るための手段です。
MS SQL Server に対して SSO を構成するには、Qlik Sense サービス管理者用に MS SQL Server サービスへの委任権を設定する必要があります。
Windows ドメイン管理者は、Qlik Sense サービス管理者アカウントのプロパティ ページで委任タブを変更できます。
次の手順を実行します。
- Windows ドメイン管理者としてログオンします。
- Qlik Sense サービス管理者アカウントを右クリックして、[プロパティ] をクリックします。
- [委任] タブに移動して、[指定されたサービスへの委任でのみこのユーザーを信頼する] を選択し、[任意の認証プロトコルを使う] を選択します。
- [追加] をクリックします。
- [サービスの追加] ウィンドウで、[ユーザーまたはコンピューター...] をクリックします。
- [Select Users or Computers] (ユーザーまたはコンピューターを選択) ウィンドウで、Microsoft SQL Server サービス管理者のドメインとユーザー名を入力し、[OK] をクリックします。
- Add Services ウィンドウで MS SQL Server サービスを選択し、OK をクリックします。
委任の構成は、[委任] タブで確認できます。これで、MS SQL Server サービスは、Qlik Sense サービス管理者が委任資格情報を提示できるサービスとして設定されました。
Qlik Sense サーバーに対する SSO の構成
Qlik Sense サーバーに対して MS SQL Server で SSO を構成するには、次の手順を実行します。
- Qlik Sense サービス管理者を Qlik Sense サーバーの [管理者] グループに追加します (まだそのグループの一員になっていない場合)。
- Qlik Sense サービス管理者を [オペレーティング システムの一部として機能] ロールの一部として [ローカル セキュリティ ポリシー] に追加します。
次の手順を実行します。
- 管理者として Qlik Sense サーバーにログオンします。
- [ローカル セキュリティ ポリシー] を開き、[セキュリティ設定] > [ローカル ポリシー] > [ユーザー権利の割り当て] の順に選択します。
- [ポリシー] で [オペレーティング システムの一部として機能] を右クリックして、[プロパティ] を選択します。
- [Local Security Setting] (ローカル セキュリティ設定) タブで、[Add User or Group...] (ユーザーまたはグループの追加) をクリックします。
- Qlik Sense サービス管理者アカウントを追加して、[OK] をクリックします。
MS SQL Server の構成
MS SQL Server に対して SSO を構成するには、MS SQL Server サービスを MS SQL Server サービス管理者として確実に実行します。
次の手順を実行します。
- 管理者として MS SQL Server にログオンします。
- [SQL サーバー構成マネージャー] を開きます。
- [SQL Server のサービス] を選択します。
- 右側パネルの [SQL Server] を選択し、[ログオン] の列に MS SQL Server サービス管理者アカウントが入力されていることを確認します。