Spécification de niveaux d'accès personnalisés

Cette page détaille les objets et les attributs utilisés pour créer des expressions Common Expression Language (CEL) pour les niveaux d'accès personnalisés. Des exemples sont fournis.

Pour en savoir plus sur le CEL, consultez la définition du langage CEL.

Objets

Access Context Manager fournit quatre objets contenant des attributs de niveau d'accès.

Objets
origin Contient des attributs qui identifient l'origine de la requête.
request.auth Contient des attributs qui identifient les aspects d'authentification et d'autorisation de la requête.
request.time Contient des attributs temporels que vous pouvez utiliser pour restreindre l'accès aux ressources en fonction de l'heure de la journée, du jour de la semaine ou d'une plage de dates spécifique.
levels Contient des attributs permettant de définir la dépendance sur d'autres niveaux d'accès.
device Contient des attributs qui décrivent l'appareil à l'origine de la requête.
api Contient des attributs liés à l'appel d'API lui-même, distincts de l'utilisateur, de l'appareil ou du réseau.

Attributs origin

Cette section répertorie les attributs compatibles avec l'objet origin.

Attributs
ip
Type chaîne
Description

Adresse IP d'origine de la requête. Si l'adresse IP ne peut pas être déterminée, origin.ip génère une erreur. Nous vous recommandons d'utiliser inIpRange pour vérifier si l'adresse IP d'origine se trouve dans une plage d'adresses IP spécifique au lieu d'effectuer une comparaison de chaînes.

Exemple :

inIpRange(origin.ip, ["203.0.113.24"])

region_code
Type chaîne
Description

Code ISO 3166-1 alpha-2 du pays ou de la région d'où provient la requête. Si le code régional ne peut pas être déterminé, origin.region_code génère une erreur.

Exemple :

origin.region_code == "GB"
origin.region_code in ["US", "FR", "JP"]

Attributs request.auth

Cette section répertorie les attributs compatibles avec l'objet request.auth.

Attributs
principal
Type chaîne, liste (chaîne)
Description

ID unique de l'utilisateur qui a émis la requête.

La valeur de request.auth.principal doit être un ou plusieurs ID d'utilisateur uniques. Les UUID peuvent être obtenus à l'aide de l'API Admin SDK Directory.

La valeur doit respecter le format suivant : https://accounts.google.com/UUID

UUID est l'UUID d'un utilisateur.

Exemple :

request.auth.principal == "https://accounts.google.com/1134924314572461055"
request.auth.principal in ["https://accounts.google.com/1134924314572461055", "https://accounts.google.com/3134824314572461115"]

claims.crd_str.pwd
Type boolean
Description

Utilisateur authentifié à l'aide d'un mot de passe.

Exemple :

request.auth.claims.crd_str.pwd == true

claims.crd_str.push
Type boolean
Description

Utilisateur authentifié à l'aide d'une notification push sur l'appareil mobile.

Exemple :

request.auth.claims.crd_str.push == true

claims.crd_str.sms
Type boolean
Description

Utilisateur authentifié à l'aide d'un code envoyé par SMS ou par appel téléphonique.

Exemple :

request.auth.claims.crd_str.sms == true

claims.crd_str.swk
Type boolean
Description

La validation en deux étapes a utilisé une clé logicielle, par exemple un téléphone, comme clé de sécurité.

Exemple :