セキュリティ ルールの例: ユーザー タイプ別 Qlik Sense アクセス権の適用

この例では、ユーザー タイプに従ってアクセス権を設定します。開発部門には以下のユーザー タイプがあります。

  • 開発者: アプリ、シート、ストーリー、オブジェクトを作成することができ、データ接続の使用と作成も可能です。
  • 貢献者: 公開済みのアプリ向けにストーリーとシートを作成できますが、新しいアプリは作成できません。
  • 消費者: コンテンツを使用できますが作成できません。

対応するアクセス権のある以下の業務が識別されています:

業務 開発者 貢献者 消費者
アプリの追加 許可 許可なし 許可なし
アプリ オブジェクトの作成 許可 許可 許可なし
データ接続を作成 許可 許可なし 許可なし
注: 以下では、ユーザーが読み取りアクセスのあるストリームでアプリへの読み取りアクセスをユーザーに与えるためのすぐに利用できるルール ストリームがあるものと想定します。以下では、ユーザーが読み取りアクセスのあるストリームでアプリへの読み取りアクセスをユーザーに与えるためのすぐに利用できるルール ストリームがあるものと想定します。 これにより消費者がアプリを読み取れるようになります。また、この例に従ってアクセス権を設定する場合は、同梱のセキュリティ ルールを無効にする必要があります。CreateAppCreateAppObjectsPublishedAppCreateAppObjectsUnPublishedApp、および DataConnection です。

以下の主なステップでセキュリティ ルールを使用し、ユーザーのタイプに従ってアクセス権を設定します。

  1. 個別のユーザーではなくユーザーの種類に規則を適用できるように各ユーザー タイプを定義します。
  2. カスタム プロパティを適切なユーザーに適用します。

    ヒント: また、対応するグループを含むユーザー ディレクトリを所有している場合は、カスタム プロパティの代わりにそのユーザー ディレクトリを利用することもできます。
  3. 業務のタイプごとに 1 つのルールを作成します。

手順

次の手順を実行します。

  1. カスタム プロパティの値としてユーザー タイプを定義します。
    1. 「UserType」という名前のカスタム プロパティを作成します。
    2. 作成したカスタム プロパティを、リソース タイプ [Users (ユーザー)] に適用します。
    3. カスタム プロパティの値を Developer、Contributor、Consumer として定義します。
    4. [適用] をクリックします。
  2. 「UserType」カスタム プロパティを [ユーザー] ページで適切なユーザーに適用します。
  3. 4 つの新しいセキュリティ ルール (CreateAppCreateAppObjectsPublishedAppCreateAppObjectsUnPublishedAppDataConnection) を作成します。
    1. [セキュリティ ルール] を選択して [P 新規作成] をクリックします。

    2. [Advanced] セクションと [Basic] セクションで、[Resource filter]、[Conditions]、[Actions]、[Context] を入力します。

      "Create app" のセキュリティ コード

    3. 業務に対応するように [名前] を設定します。

    4. [適用] をクリックします。

  4. 以下のセキュリティ ルールが無効または削除されていることを確認してください。

    1. CreateApp
    2. CreateAppObjectsPublishedApp
    3. CreateAppObjectsUnPublishedApp
    4. DataConnection

これでユーザーのタイプに従ってアクセス権を授与するルールが作成されました。

セキュリティ ルール コード

以下に、この例のセキュリティ ルール コードと説明用のコメントを示します。

"Create app" のセキュリティ コード

項目 コード コメント
[リソース フィルター] App_*,FileReference_*

特に App リソース タイプのフィルタリングを行います。

[条件]

!user.IsAnonymous() and (user.@usertype="Developer")

!user.IsAnonymous()

この条件では、ユーザーが匿名でログインしているかどうかの評価に使用できるセキュリティ ルール関数 IsAnonymous() が使用されます。この場合、ユーザーが匿名ユーザーとしてログインしていると、条件は満たされません。

(user.@usertype="Developer")

カスタム プロパティ @usertypeDeveloper に設定されているユーザ全員がこの条件を満たしています。

ヒント: また、対応するグループを含むユーザー ディレクトリを所有している場合は、カスタム プロパティの代わりにそのユーザー ディレクトリを利用することもできます。この場合、条件はuser.group="Developer" のようになります。
[アクション] create

条件が満たされると、指定されたアクションが許可されます。

「Create app object (アプリ オブジェクトの作成)」(シート、ストーリー、アプリ オブジェクト) のセキュリティ ルール コード

項目 コード コメント
[リソース フィルター] App.Object_*

特に App.Object リソース タイプのフィルタリングを行います。

[条件]

resource.App.HasPrivilege("read") and !user.IsAnonymous() and (user.@usertype= "Developer" or user.@usertype="Contributor")

resource.App.HasPrivilege("read")

この条件では、セキュリティ ルールの HasPrivilege() 関数を使います。これはリソース タイプのアクセス権を評価する際に使用できます。

この例では、関数はリソース タイプ ユーザーがリソース シートでアクションの更新を実行できるかどうかを評価します。貢献者は、自分が所有しているシートのオブジェクトを作成することができます。

[アクション] create

条件が満たされると、指定されたアクションが許可されます。

「データ接続」のセキュリティ コード

項目 コード コメント
[リソース フィルター] DataConnection_*

特に DataConnection リソース タイプのフィルタリングを行います。

[条件]

resource.resourcetype = "DataConnection" and (user.@usertype="Developer")

resource.resourcetype = "DataConnection"

このルールは、DataConnection という種類のリソースに適用されます。

user.@usertype="Developer"

このルールは、@usertype カスタム プロパティが「Developer」に設定されているユーザーに適用されます。

[アクション] create

条件が満たされると、指定されたアクションが許可されます。