セキュリティ
QlikView におけるセキュリティ メカニズムは、2 通りの方法で設定できます。QlikView ドキュメントのロード スクリプトに組み込むか、QlikView Publisher を使用して設定します。
認証と承認
認証は、承認を求めている人が本人であることを検証するためのプロセスです。QlikView では、Windows オペレーティング システムに認証を任せるか、ユーザー ID とパスワード (Windows のユーザー ID とパスワードとは異なるもの) を要求するか、QlikView ライセンス キーを簡単な認証方法として使用することができます。
承認は、識別された人がリソースを持つことを許可されているかどうかを判断することです。QlikView は、Windows オペレーティング システムに承認を任せるか、自身で承認を行うことができます。後者の場合は、セキュリティ テーブルをロード スクリプトに組み込む必要があります。
QlikView Publisher によるセキュリティ
QlikView Publisher でセキュリティを処理するように設定すると、各 QlikView ファイルがいくつかのファイルに分割され、関連ユーザーまたはユーザー グループに関するデータが各ファイルに格納されます。これらのファイルは、正しい OS セキュリティ設定を含むフォルダに格納されます。つまり、QlikView はオペレーティング システムに認証と承認を処理させます。
ただし、ファイル自体に組み込まれたセキュリティがないので、ダウンロードしたファイルは保護されません。
1 つのファイルがいくつかに分割され、ユーザーは自分のデータを含むファイルを開くだけなので、通常はファイル サイズが小さくなります。ただし、これにより、同じデータを含む複数のファイルがロードされることがあるので、1 つのファイルにすべてのデータを保持する場合に比べて、QlikView Server が使用するメモリが増える可能性もあります。
詳細については、QlikView Publisher のドキュメントを参照してください。
QlikView ロード スクリプトのセクション アクセスによるセキュリティ
QlikView スクリプトの Section Access でセキュリティを処理するように設定すると、1 つのファイルで多数のユーザーやユーザー グループのデータを保持できます。QlikView は、Section Access 内の情報を使用することにより、認証と承認を行い、ユーザーが自分のデータのみにアクセスするようにデータを動的に削減します。
ファイル自体にセキュリティが組み込まれるので、ダウンロードしたファイルもある程度まで保護されます。ただし、セキュリティの必要性が高い場合は、ファイルのダウンロードとオフライン使用を禁止する必要があります。ファイルは、QlikView Server によってのみ公開する必要があります。
1 つのファイルにすべてのデータが保持されるので、このファイルはサイズが非常に大きくなる可能性があります。
QlikViewドキュメントは、オフライン モードで非表示にすることができます。オフラインのユーザー ドキュメントを非表示にするには、QMC を使用して、ユーザー ドキュメントのドキュメント情報セクションで、次の属性を追加します。
- 名前: 表示しない
- 値:真
以下の情報すべては、QlikView スクリプトの Section Access を使用したセキュリティ方法に関連します。
ロード スクリプトのセクション
行レベルのアクセスは、通常のデータ ロード方法でロードされる 1 つまたは複数のセキュリティ テーブルを使用して管理します。そのため、これらのテーブルは、通常のデータベースまたはスプレッドシートに格納できます。セキュリティ テーブルを管理するスクリプト ステートメントは、承認セクション内で提供され、スクリプトはステートメント Section Access により開始されます。
スクリプト内で承認セクションを定義する場合、アプリ データをロードするスクリプトの部分は、Section Application で開始される別のセクション内に配置する必要があります。
セクション アクセスのアクセス レベル
指定したユーザーまたはユーザーのグループに対して、QlikView ドキュメントへのアクセスを承認できます。セキュリティ テーブルでは、アクセス レベルの ADMIN または USER をユーザーに割り当てることができます。アクセス レベルが割り当てられていないユーザーは、QlikView ドキュメントを開くことができません。
管理者 ("ADMIN") アクセス権限を持つ人は、ドキュメントのすべての項目を変更できます。管理者アクセス権限 ("ADMIN") を与えられた人は、[ドキュメント プロパティ] ダイアログと [シート プロパティ] ダイアログの [セキュリティ] ページを使用して、ユーザーがドキュメントを変更する可能性を制限できます。ユーザー権限 ("USER") を与えられた人は、[セキュリティ] ページにアクセスできません。
セクション アクセスのシステム項目
アクセス レベルは、セクション アクセス内にロードされた 1 つまたは複数のテーブルに含まれるユーザーに割り当てられます。これらのテーブルには、さまざまなユーザー固有のシステム項目を含めることができます。通常は、"USERID" と "PASSWORD"、およびアクセス レベルを定義する項目の "ACCESS" です。セクション アクセス のすべてのシステム項目が認証と承認に使用されます。section access のすべてのシステム項目を以下に説明します。
セキュリティ項目は、すべてまたは任意の組み合わせをアクセス セクションにロードできます。また、何もロードしないことも可能です。このため、USERID を使用する必要がなく、シリアル番号のみなど、他の項目を使用して承認を行うことができます。
項目 | 説明 |
---|---|
ACCESS | 対応するユーザーに与えられるアクセス権限を定義する項目。 |
USERID | 許可されるユーザー ID を含む項目。QlikView がユーザー ID の入力を要求し、この項目の値と比較します。このユーザー ID は、Windows のユーザー ID と同じではありません。 |
USER.EMAIL | 現在は非対応、QlikView 内に限り、ワイルドカードで一致。 |
PASSWORD | 許可されるパスワードを含む項目。QlikView がパスワードの入力を要求し、この項目の値と比較します。このパスワードは、Windows のパスワードと同じではありません。 |
SERIAL | QlikView のシリアル番号または文字列「QLIKVIEW」に対応する番号を含む項目。 例: 4900 2394 7113 7304 QlikView がユーザーのシリアル番号または文字列「QLIKVIEW」を確認し、この項目の値と比較します。 |
NTNAME | Windows NT のドメイン ユーザー名またはグループ名に対応する文字列を含む項目。異なる認証システムを使用する場合は、認証済みユーザーの番号が含まれます。 QlikView が OS からログオン情報を取得し、それをこの項目の値と比較します。 |
NTDOMAINSID | Windows NT ドメインの SID に対応する文字列を含む項目。 例:S-1-5-21-125976590-4672381061092489882 QlikView が OS からログオン情報を取得し、それをこの項目の値と比較します。 |
NTSID | Windows NT の SID を含む項目。 例:S-15-21-125976590-467238106-1092489882-1378 QlikView が OS からログオン情報を取得し、それをこの項目の値と比較します。 |
OMIT |
この特定のユーザーに対して省略する項目を含む項目。ワイルドカードを使用したり、項目を空にしたりすることもできます。これを手軽に行うには、サブフィールドを使用します。 情報メモ基盤のデータ構造が変更されてしまうため、キー項目には OMIT を適用しないでください。適用すると、論理の孤立化や計算の矛盾が生じる可能性があります。
|
QlikView は、QlikView のシリアル番号を SERIAL 項目と、Windows NT ユーザー名およびグループを NTNAME と、Windows NT ドメインの SID を NTDOMAINSID と、Windows NT の SID を NTSID と比較します。さらに、ユーザー ID とパスワードの入力を要求し、それらを USERID および PASSWORD 項目と比較します。
ユーザー ID、パスワード、および環境プロパティの見つかった組み合わせが section access テーブルでも見つかると、対応するアクセス レベルでドキュメントが開きます。見つからない場合、QlikView はドキュメントへのユーザー アクセスを拒否します。ユーザー ID やパスワードが正しく入力されない場合は、ログオン手順全体を繰り返す必要があります。
QlikView の特徴である同じ内部ロジックがアクセス セクションでも使用されているので、セキュリティ項目をさまざまなテーブルに配置できます。このため、システム管理者はセキュリティ テーブルから QlikView ドキュメントを作成できます。この場合は、対応する項目値をクリックすることで、正しいシリアル番号、パスワードなどがシミュレートされます。)
ログオン手順では、QlikView は最初に SERIAL、NTNAME、NTDOMAINSID、NTSID をチェックして、この情報がドキュメントへのユーザー アクセスを許可するために十分であるかどうかを確認します。十分である場合、QlikView はユーザー ID とパスワードの入力を要求せずに、ドキュメントを開きます。
アクセス項目の一部のみがロードされる場合は、上の要件のうちの対応する部分が使用されます。
section access 内の Load または Select ステートメントにリストされるすべての項目は、大文字で記述する必要があります。データベース内の小文字を含む項目名は、Load または Select ステートメントで読み取られる前に、upper 関数を使用して大文字に変換する必要があります。
ただし、QlikView ドキュメントを開くエンド ユーザーが入力するユーザー ID とパスワードは、大文字と小文字が区別されません。
ワイルドカード (*) は、この項目に含まれるすべての値 (リストされている値)、つまりこのテーブル内のその他の場所にリストされている値として解釈されます。ロード スクリプトのアクセス セクションでロードされたテーブルのシステム項目 (USERID、PASSWORD、NTNAME、または SERIAL) の 1 つで使用される場合は、この項目のすべての絞込値 (リストされていない値も含む) として解釈されます。
例1:
シリアル番号のみがチェックされます。特定の 1 台のコンピュータに管理者アクセス権限が与えられます。それ以外のすべてにユーザー アクセス権限が与えられます。このとき、スターを使用して "任意のシリアル番号" を示すことができます。
ACCESS | SERIAL |
---|---|
ADMIN | 4900 2394 7113 7304 |
USER | * |
例2:
管理者と、QlikView がバッチ ジョブとして実行されているサーバーに、管理者アクセス権が与えられます。ドメインのその他の人は、ユーザー ID とパスワードとして "USER" と入力することにより、ユーザー アクセス権が与えられます。
ACCESS | SERIAL | NTDOMAINSID | USERID | PASSWORD |
---|---|---|---|---|
ADMIN | * | S-1-5-21-125976590-467238106-1092489882 | ADMIN | ADMIN |
ADMIN | 4900 2394 7113 7304 | * | * | * |
USER | * | S-1-5-21-125976590-467238106-1092489882 | USER | USER |
混在環境
QlikView と Qlik Sense SaaS の両方で同一の許可テーブルを使用する予定の場合は、次のいくつかの点に留意します。
• QlikView と Qlik Sense SaaS では USERID の意味が異なるため、使用するとセキュリティ問題が発生する可能性があります。代わりに、NTNAME を使用するか、以下に記述されているように、SERIAL と合わせて使用してください。
• GROUP、および「USER.」で始まる項目 (「USER.NAME」や「USER.EMAIL」など) は、Qlik Sense Enterprise SaaS の認証項目です (または将来的に)。これらの項目を Section Access で使用すると、Qlik Sense SaaS でアクセスが拒否される可能性があります。
• PASSWORD、NTSID および NTDOMAINSID は Qlik Sense SaaS で使用できません。ワイルドカードを使用する場合を除き、アクセスは拒否されます。
• SERIAL は、Qlik Sense SaaS にあるライセンス番号の確認には使用できません。しかし、項目に文字列「QLIKCLOUD」または「QLIKVIEW」が含まれている場合は、アクセスが許可される可能性があります。つまり、1 行目は QlikView (Qlik Sense SaaS ではない) でのアクセス権を付与し、2 行目は Qlik Sense SaaS (QlikView ではない) でのアクセス権を付与する許可テーブルを持つことができます。
線 | SERIAL | USERID | コメント |
---|---|---|---|
1 | 4600 0123 4567 8901 | * | QlikView にあるライセンス番号を修正するためのアクセス権を付与します。 |
2 | QLIKCLOUD | John Doe | Qlik Sense Enterprise SaaS にあるユーザーを修正するためのアクセス権を付与します。 |
線 | SERIAL | USERID | コメント |
---|---|---|---|
1 | QLIKVIEW | * | QlikView へのアクセス権を付与します。 |
2 | QLIKCLOUD | John Doe | Qlik Sense Enterprise SaaS にあるユーザーを修正するためのアクセス権を付与します。 |
QlikView 機能の制限
[ドキュメント プロパティ: セキュリティ] ページおよび [シート プロパティ: セキュリティ] ページにあるコントロールを使用すると、特定のメニュー項目へのアクセスを拒否したり、レイアウトの変更を禁止することができます。これらの設定を本格的な保護の手段として使用する場合は、ドキュメント ユーザーがユーザーとしてログインすることが重要です。管理者としてログインした人は、いつでもセキュリティ設定を変更できます。
ユーザー権限でドキュメントを開いたユーザーには、[プロパティ] ダイアログの [セキュリティ] ページが表示されません。
動的データ削除
QlikView と QlikView Server は、section access ログインに基づいてドキュメントの一部のデータをユーザーに表示しない機能をサポートします。
第 1 に、システム項目の OMIT を使用して項目 (列) を非表示にできます。
第 2 に、実データとセクション アクセス データとをリンクさせることで、レコード (行) を非表示にできます。表示または非表示にする値の選択は、セクション アクセスおよびセクション アプリケーションで同じ名前の項目を 1 つ以上設定することによってコントロールされます。ユーザー ログイン後、QlikView は、section access での項目内の選択を section application の完全に同じ名前 (項目名は大文字で記述) の項目にコピーしようとします。選択が行われると、QlikView は選択によって除外されたすべてのデータをユーザーに表示しなくなります。
この処理が行われるには、[セクション アクセスによる初期データ削除] オプション ([ドキュメント プロパティ: 起動画面] ページ上) を選択する必要があります。QlikView Server を使用する以外の方法で配布されるドキュメントでこの機能を使用する場合は、[ドキュメント プロパティ] の同じページでバイナリ ロード禁止オプションを選択して、データ保護を維持する必要があります。
section access;
load * inline [
ACCESS, USERID,REDUCTION, OMIT
ADMIN, ADMIN,*,
USER, A,1
USER, B, 2, NUM
USER, C, 3, ALPHA
];
section application;
T1:
load *,
NUM AS REDUCTION;
LOAD
Chr( RecNo()+ord(‘A’)-1) AS ALPHA,
RecNo() AS NUM
AUTOGENERATE 3;
現在、項目 REDUCTION (大文字) が section access と section application の両方にあります (全ての項目値も大文字)。通常、2 つの項目はまったく異なり、区別されますが、[セクション アクセスによる初期データ削除] オプションを選択した場合、それらはリンクされ、ユーザーに表示されるレコード数は減少します。
section access の項目 OMIT で、ユーザーから隠すべき項目を定義します。
結果は次のようになります。
User A は、すべての項目と REDUCTION=1 に接続されたレコードを見ることができます。
User B は、NUM 以外のすべての項目と REDUCTION=2 に接続されたレコードを見ることができます。
User C は、ALPHA 以外のすべての項目と REDUCTION=3 に接続されたレコードを見ることができます。
アクセス制限の継承
バイナリ ロードを使用すると、新しい QlikView ドキュメントによってアクセス制限が継承されます。この新しいドキュメントへの管理者権限を持つ人は、新しい access section を追加して、この新しいドキュメントのアクセス権を変更できます。ユーザー権限を与えられた人は、スクリプトを実行したり、スクリプトを変更できるので、バイナリ ロードされたファイルに独自のデータを追加できます。しかし、アクセス権を変更することはできません。これにより、データベース管理者はバイナリ ロードされた QlikView ドキュメントに対してもユーザー アクセスを制御できます。
暗号化
QlikView Server と QlikView Windows クライアントの間の通信は暗号化されます。ただし、AJAX クライアントを使用する場合、通信は暗号化されません。
さらに、すべての QlikView ドキュメントが暗号化されるので、ビューアー、デバッガなどで情報を読み取ることはできません。
QVD ファイル内の機密情報を顧客提供のキーペアで暗号化して、データへのアクセスを制御することもできます。QVD 暗号化を参照してください。