セクションへの安全なアクセス管理
セキュリティ管理には、データ ロード スクリプトのセクション アクセスを使用します。この方法であれば、複数のユーザーやグループのデータを 1 つのファイルで保管できます。Qlik Sense は認証と承認のためセクション アクセスで情報を使用し、データを動的に減らすため、ユーザーには自身のデータしか表示されません。
ファイル自体にセキュリティが組み込まれるので、ダウンロードしたファイルもある程度は保護されます。しかし、徹底的なセキュリティ対策を講じるには、ファイルのダウンロードやオフライン使用を防止しなければなりません。また、ファイルの公開は必ず Qlik Sense サーバーで行う必要があります。この方法では 1 つのファイルにすべてのデータを保持するため、ファイルのサイズが非常に大きくなる可能性がある点に留意してください。
セクション アクセス コントロールが適用される前に、アプリは公開されていなければなりません。アプリをリロードすると、新規または変更済みセクション アクセス スクリプトは適用されません。
制限されているデータを公開しないようにするには、アプリを公開する前に、セクション アクセス設定が含まれるすべての添付ファイルを削除します。
添付したファイルは、アプリが公開されるときに含まれます。公開済みアプリがコピーされると、添付ファイルがそのコピーに含まれます。ただし、添付したデータ ファイルにセクション アクセス制限が適用されている場合、ファイルがコピーされるときにセクション アクセス設定が保持されません。そのため、コピーしたアプリのユーザーは、添付ファイルのすべてのデータを表示することができます。
セクション アクセスを使用する場合、または極秘データを扱う場合は、値が色構成により公開される可能性があるため、マスター軸の値に色を割り当てないでください。
スクリプトのセクション
アクセス制御は、Qlik Sense のデータのロードと同じ方法でロードされる 1 つまたは複数のセキュリティ テーブルを通じ管理されます。そのため、これらのテーブルは通常のデータベースに格納できます。セキュリティ テーブルを管理するスクリプト ステートメントは、スクリプトの中で Section Access ステートメントで開始されるアクセス セクション内に指定します。
スクリプト内でアクセス セクションが定義されている場合、アプリのデータをロードする部分のスクリプトを Section Application で開始される別のセクション内に配置する必要があります。
Example:
セクション アクセスのシステム項目
アクセス レベルは、セクション アクセス内にロードされた 1 つまたは複数のテーブルに含まれるユーザーに割り当てられます。これらのテーブルには、USERID やアクセス レベルを定義する ACCESS など、ユーザー固有のさまざまなシステム項目を含めることができます。認証と承認は、セクション アクセスのすべてのシステム フィールドに基づき行われます。セクション アクセスのすべてのシステム項目は次のとおりです。
ACCESS
対応するユーザーに与えられるアクセス権を定義します。
指定したユーザーまたはユーザーのグループに対して、Qlik Sense アプリへのアクセスを承認できます。セキュリティ テーブルでは、アクセス レベルの ADMIN または USER をユーザーに割り当てることができます。有効なアクセス レベルが割り当てられていないユーザーは、アプリを開くことができません。
ADMIN 権限を持つユーザーは、アプリのすべてのデータにアクセスできます。USER 権限を持つユーザーは、セキュリティ テーブルで指定されたデータにのみアクセスできます。
テンプレート アプリの On-demand アプリ生成 (ODAG) シナリオでセクション アクセスが使用されている場合、INTERNAL\SA_API ユーザーは、セクション アクセス テーブルに ADMIN として含まれる必要があります。例:
USERID
Qlik Sense ユーザー名に対応する文字列を含みます。Qlik Sense はプロキシからログイン情報を取得し、その情報をこの項目の値と比較します。
GROUP
Qlik Sense 内のグループに対応する文字列を含みます。Qlik Sense は、プロキシから提供されるユーザーを、このグループに基づいて解決します。
OMIT
この特定のユーザーに対して省略する項目の名前を含みます。ワイルドカードを使用することができます。空にすることもできます。これは、サブ フィールドを用いることで簡単に行えます。
Qlik Sense はプロキシから取得したユーザーを UserID と比較し、そのユーザーがテーブル内のグループに含まれているか確認します。ユーザーがアクセス権のあるグループに属する場合、あるいはユーザーが一致した場合、アプリへのアクセスが付与されます。
Qlik Sense では同じ内部ロジックがアクセス セクションでも使用されているため、セキュリティ項目をさまざまなテーブルに配置できます。セクション アクセス内の LOAD または SELECT ステートメントにリストする項目は、すべて大文字で記述する必要があります。データベース内の小文字を含む項目名は、LOAD または SELECT ステートメントで読み取る前に、Upper 関数で大文字に変換されます。
詳細については、「Upper - スクリプトおよびチャート関数」を参照してください。
ワイルドカード (*) は、この項目に含まれるすべての値 (リストされている値)、つまりこのテーブル内のその他の場所にリストされている値として解釈されます。スクリプトのアクセス セクションでロードされたテーブル内のシステム項目 (USERID、GROUP) の 1 つで使用すると、この項目のすべての可能な値 (リストされていない値も含む) として解釈されます。
Example:
この例では、財務部のユーザーのみがドキュメントを開けます。
アクセス | グループ |
---|---|
ユーザー | 財務 |
動的データ削減
Qlik Sense は動的データ削除をサポートしています。動的データ削除では、アプリのデータの一部を、セクション アクセス ログインに基づき、ユーザーに対し非表示にすることができます。
- 例えば、システム項目 OMIT を使用して項目 (列) を非表示にできます。
- レコード (行) は、実データにセクション アクセス データをリンクさせて、非表示にすることができます。表示されるまたは除外される値の選択は、セクション アクセスおよびセクション アプリケーションで 1 つ以上の項目に共通の名前を付けることで制御されます。ユーザー ログインの後、Qlik Sense はセクション アクセスの項目にある選択と、同じ項目名 (項目名は大文字で書かれる必要があります) のセクション アプリケーションの項目との照合を試みます。選択が行われると、Qlik Sense は選択によって除外されたすべてのデータをユーザーに表示しなくなります。
Example: ユーザー ID に基づくデータ削減
現在、項目 REDUCTION (大文字) がセクション アクセスとセクション アプリケーションの両方にあります (項目値はすべて大文字)。2 つの項目は通常全く別のもので分かれていますが、セクション アクセスを使用すると、この項目はリンクし、ユーザーに表示されるレコードの数が減ります。
セクション アクセスの項目 OMIT で、ユーザーに表示しない項目を定義します。
結果は次のようになります。
- ユーザー ADMIN は、REDUCTION が 1 または 2、3 の場合にその他のユーザーに表示されるレコードとすべての項目を見ることができます。
- User A は、すべての項目と、REDUCTION=1 に関連付けられたレコードを見ることができます。
- User B は、NUM 以外のすべての項目と、REDUCTION=2 に関連付けられたレコードを見ることができます。
- User C は、ALPHA 以外のすべての項目と、REDUCTION=3 に関連付けられたレコードを見ることができます。
Example: ユーザー グループに基づくデータ削減
結果は次のようになります。
- ADMIN グループに属するユーザーは、すべてのデータとすべての項目を見ることができます。
- A グループに属するユーザーは、すべての項目において REDUCTION=1 に関連付けられたデータを見ることができます。
- B グループに属するユーザーは、REDUCTION=2 に関連付けられたデータを見ることができますが、NUM 項目のデータは見ることができません。
- C グループに属するユーザーは、REDUCTION=3 に関連付けられたデータを見ることができますが、ALPHA 項目のデータは見ることができません。
- GROUP1 グループに属するユーザーは、すべての項目において REDUCTION=3 に関連付けられたデータを見ることができます。
-
ユーザー INTERNAL\SA_SCHEDULER はどのグループにも属しませんが、すべての項目のすべてのデータを見ることができます。
情報メモこの行のワイルドカード (文字 *) は、セクション アクセス テーブル内のすべての値のみを指します。セクション アプリケーションに、セクション アクセスの REDUCTION 項目には存在しない値がある場合、その値は削減されます。
アクセス制限の継承
バイナリ ロードを使用すると、新しい Qlik Sense アプリにアクセス制限が継承されます。