accès_accord

Utilisation

access_grant: access_grant_name {
user_attribute: user_attribute_name
allowed_values: [ "value_1", "value_2" , ... ]
}
Hiérarchie
access_grant
Valeur par défaut
Aucun

Acceptation
Nom d'un attribut utilisateur avec le sous-paramètre user_attribute et liste des valeurs d'attribut utilisateur avec le sous-paramètre allowed_values

Définition

Une autorisation d'accès est une structure LookML qui contrôle l'accès à d'autres structures LookML, comme les explorations, les jointures, les vues et les champs. Le paramètre access_grant définit une autorisation d'accès.

access_grant utilise le nom d'un attribut utilisateur avec le sous-paramètre user_attribute et une liste de valeurs acceptables pour l'attribut utilisateur avec le sous-paramètre allowed_values. Seuls les utilisateurs auxquels l'une des valeurs autorisées dans l'attribut utilisateur spécifié a accès peuvent accéder aux structures auxquelles l'accès est requis.

Une fois le schéma défini, vous pouvez utiliser le paramètre required_access_grants au niveau des options Explorer, Rejoindre, Vue ou Champ pour exiger l'autorisation d'accès à ces structures.

Par exemple, LookML ci-dessous crée une autorisation d'accès appelée can_view_financial_data, basée sur l'attribut utilisateur department. Seuls les utilisateurs auxquels sont attribuées les valeurs "finance" ou "executive" dans l'attribut utilisateur department ont accès à l'autorisation d'accès can_view_financial_data:

access_grant: can_view_financial_data {
  user_attribute: department
  allowed_values: [ "finance", "executive" ]
}

Vous associez ensuite l'autorisation d'accès can_view_financial_data à une structure LookML à l'aide du paramètre required_access_grants:

dimension: financial_data_field
  ...
  required_access_grants: [can_view_financial_data]
}

Dans l'exemple ci-dessus, seuls les utilisateurs disposant de la valeur d'attribut utilisateur appropriée pour l'autorisation d'accès can_view_financial_data verront la dimension financial_data_field.

Vous pouvez définir plusieurs autorisations d'accès dans un modèle et attribuer plusieurs autorisations à une structure LookML à l'aide du paramètre required_access_grants. Dans ce cas, un utilisateur doit avoir accès à toutes les autorisations d'accès spécifiées pour pouvoir accéder à la structure LookML.

Par exemple, LookML ci-dessous définit deux autorisations d'accès différentes:

access_grant: can_view_financial_data {
  user_attribute: department
  allowed_values: [ "finance", "executive" ]
}

access_grant: can_view_payroll_data {
  user_attribute: view_payroll
  allowed_values: [ "yes" ]
}

Ensuite, dans le fichier d'affichage ci-dessous, le paramètre required_access_grants spécifie les deux autorisations d'accès:

view: payroll {
  ...
  required_access_grants: [can_view_financial_data, can_view_payroll_data]
}

Dans ce cas, seuls les utilisateurs ayant soit la valeur "finance", soit la valeur "executive" attribuée à leur attribut utilisateur department et dont la valeur "yes" a été attribuée à leur attribut utilisateur view_payroll peuvent accéder à la vue.

Examples

Définissez une autorisation d'accès qui exige que les utilisateurs aient la valeur "product_management" ou la valeur "engineering" dans l'attribut utilisateur department pour accéder à l'autorisation d'accès engineering:

access_grant: engineering {
  user_attribute: department
  allowed_values: [ "product_management", "engineering" ]
}

Vous pouvez également définir des autorisations d'accès avec des attributs utilisateur qui prennent des données numériques ou de date/heure. Pour ce faire, vous devez placer les valeurs autorisées entre des guillemets doubles, comme vous le feriez avec une chaîne. Par exemple, l'autorisation d'accès suivante fait référence à l'attribut utilisateur id, dont le type de données est number. Seuls les utilisateurs dont la valeur id est 1, 2, 3, 4 ou 5 auront accès:

access_grant: user_id {
  user_attribute: id
  allowed_values: ["1", "2", "3", "4", "5"]
}

L'exemple suivant fait référence à l'attribut utilisateur start_date, qui possède le type de données Date/Heure. Seuls les utilisateurs disposant de la valeur 2020-01-01 dans l'attribut utilisateur auront accès:

access_grant: start_date {
  user_attribute: start_date
  allowed_values: ["2020-01-01"]
}

Éléments à prendre en compte

Les attributs utilisateur modifiables par l'utilisateur ne sont pas autorisés avec les autorisations d'accès.

Les autorisations d'accès ne peuvent pas accepter des attributs utilisateur dont le niveau d'accès utilisateur est Modifier. Les utilisateurs peuvent consulter et modifier les valeurs des attributs utilisateur dont le niveau d'accès utilisateur est défini sur Modifier sur la page de leur compte. Pour des raisons de sécurité, seuls les attributs utilisateur dont le niveau d'accès à l'utilisateur est défini sur Aucun ou Afficher sont autorisés avec access_grant.

Les valeurs listées dans allowed_values doivent correspondre exactement aux valeurs d'attribut utilisateur

access_grant fonctionnera avec des attributs utilisateur qui ont le type de données Filtre de chaîne (avancé), Filtre de nombre (avancé) ou Filtre de date/heure (avancé). Cependant, pour qu'ils puissent y accéder, les valeurs du paramètre allowed_values doivent correspondre exactement à la valeur de l'attribut utilisateur.

Par exemple, si vous avez créé un attribut utilisateur appelé numeric_range avec le type de données Number Filter (advanced) (Filtre numérique (avancé)), vous pouvez utiliser une expression de filtre Looker pour saisir une plage de nombres, par exemple [1, 20]. Dans cet exemple, l'expression de filtre Looker dans l'attribut utilisateur renvoie une plage de nombres compris entre 1 et 20 inclus. Étant donné que access_grant nécessite une correspondance exacte, l'utilisation du paramètre allowed_values: ["10"] n'accorde pas d'accès. Pour accorder l'accès, vous devez utiliser allowed_values: ["[1, 20]"].

Cela s'applique également aux attributs utilisateur qui ont plusieurs valeurs. Par exemple, un attribut utilisateur dont le type de données est Filtre numérique (avancé), compte tenu de la valeur 1, 3, 5, correspond uniquement à une autorisation d'accès associée au paramètre allowed_values: ["1, 3, 5"]. De même, une autorisation d'accès avec le paramètre allowed_values: ["1"] n'accorde pas d'accès à l'utilisateur qui possède plusieurs valeurs dans l'attribut utilisateur. De même, une autorisation d'accès associée au paramètre allowed_values: ["1", "3", "5"] n'accorde aucun accès à cet utilisateur, car le paramètre allowed_values: [] peut accepter plusieurs valeurs, mais aucune des trois valeurs du paramètre allowed_values: ["1", "3", "5"] ne correspond exactement à la valeur d'attribut utilisateur 1, 3, 5. Dans ce cas, un accès 1, 3 ou 5 () lui sera accordé, car chacune de ces valeurs correspond à l'une des options du paramètre allowed_values: ["1", "3", "5"].

De même, access_grant nécessite une correspondance exacte avec les attributs utilisateur de type de chaîne Filtre de chaîne (avancé). Contrairement aux expressions de filtre Looker classiques, l'utilisation du paramètre allowed_values: [ "Ca%" ] ne correspond pas à un attribut utilisateur associé aux valeurs Canada ou California. Seule une valeur d'attribut utilisateur de Ca% exactement serait mise en correspondance et autorisée.

Le comportement des utilisateurs qui n'y ont pas accès dépend de la structure LookML.

Un utilisateur qui n'a pas accès à une autorisation d'accès se comportera différemment selon la structure LookML à laquelle il tente d'accéder. Consultez les pages de documentation de required_access_grants au niveau des options Explorer, Rejoindre, Afficher ou Champ pour savoir comment l'accès à ces structures est limité.

Les autorisations d'accès à plusieurs niveaux sont additionnées

Si vous imbriquez des autorisations d'accès, elles sont additionnelles. Par exemple, vous pouvez créer required_access_grants pour une vue et required_access_grants pour un champ dans la vue. Pour voir le champ, un utilisateur doit disposer d'autorisations d'accès au champ et à la vue. De même, si vous créez une jointure (required_access_grants) pour les vues d'une jointure et que vous créez également required_access_grants pour la jointure de ces deux vues, un utilisateur doit disposer des autorisations d'accès aux vues et à la jointure pour voir la vue jointe.

Accéder aux structures qui font référence à des structures limitées

Les utilisateurs peuvent accéder aux looks ou aux tableaux de bord contenant des objets LookML auxquels ils n'ont pas accès. Dans ce cas, le look ou le tableau de bord s'affiche comme si ces objets LookML avaient été supprimés du modèle.

Supposons que nous ayons une exploration A contenant la jointure A, la vue A et le champ A. Nous allons ensuite appliquer une restriction d'accès à la fonctionnalité Explorer A. Comme prévu, la jointure A, la vue A et le champ A hériteront de cette restriction, mais uniquement lorsque les utilisateurs interagissent avec la découverte A. Si la jointure A, la vue A ou le champ A sont utilisés dans une autre exploration B, ils ne seront pas nécessairement restreints. Par conséquent, si vous prévoyez de réutiliser des éléments LookML, nous vous suggérons d'appliquer des restrictions d'accès au niveau le plus bas possible.