En écrivant des règles et en-têtes, on peut utiliser des expressions Perl qui seront évaluées dans une cage pour prévenir les codes malveillants.
C'est disponible pour :
Dans cette cage, on peut accéder aux éléments suivants :
Retourne la date au format AAAAMMJJHHMMSS, heure locale par défaut, GMT si demandé
date(1)
Cette fonction examine le jour et l'heure de la requête courante et la compare aux jours et heures autorisés. Elle retourne 1 si c'est bon, 0 sinon. Par défaut, les jours et heures autorisés sont des valeurs hexadécimales, représentant chaque heure de la semaine. Un jour a 24 heures et une semaine 7 jours, donc la valeur contient 168 bits, convertie en 42 caractères hexadécimaux. Dimanche est le premier jour.
Par exemple, pour un accès total excepté le week-end:
000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
Paramètres de la fonction :
hexadecimal
(défaut) ou octetstring
Exemple d'usage simple :
checkLogonHours($ssoLogonHours)
Si une valeur binaire est utilisée (Active Directory) :
All e checkLogonHours($ssoLogonHours, 'octetstring')
On peut aussi configurer jetlag (si tous les utilisateurs utilisent le même fuseau):
checkLogonHours($ssoLogonHours, '', '+2')
Si plusieurs fuseaux sont utilisés, le jetlag doit être introduit dans le compte dans la valeur ssoLogonHours, ou utiliser le paramètre $_timezone. Ce paramètre est géré par le portail et utilise javascript pour obtenir le fuseau de l'utilisateur connecté. Ça doit marcher avec tous les navigateurs :
checkLogonHours($ssoLogonHours, '', $_timezone)
Il est possible de modifier le comportement par défaut pour les utilisateurs ne disposant pas d'une valeur ssoLogonHours. Sinon, par défaut, les utilisateurs sans créneau horaire de connexion sont rejetés. On peut autoriser ces utilisateurs au lieu de les rejeter :
checkLogonHours($ssoLogonHours, '', '', '1')
Cette fonction examine la date de la requête en cours et la compare avec une date de début et de fin. Elle retourne 1 si c'est bon, 0 sinon.
Le format de date est celui de la syntaxe des dates LDAP, par exemple pour le 1er Mars 2009 :
20090301000000Z
Paramètres de la fonction :
Exemple d'usage simple :
checkDate($ssoStartDate, $ssoEndDate)
Cette fonction contruit l'en-tête HTTP Authorization
utiisée dans le schéma d'authentification basique HTTP. Elle force la conversion de UTF-8 en ISO-8859-1 du nom de compte et du mot-de-passe.
Paramètres de la fonction :
Exemple d'usage simple :
basic($uid,$_password)
Cette fonction convertit une chaine UTF-8 en ISO-8859-1.
Paramètres de la fonction :
Exemple d'usage simple :
unicode2iso($nom)
Cette fonction convertit une chaîne ISO-8859-1 en UTF-8.
Paramètres de la fonction :
Exemple d'usage simple :
iso2unicode($name)
this function allows one to parse the $hGroups
variable to check if a value is present inside a group attribute.
Paramètres de la fonction :
$hGroups
Exemple d'usage simple :
groupMatch($hGroups, 'description', 'Service 1')
This function uses the secret key of LLNG configuration to crypt a data. This can be used to anonymize identifier given to the protected application.
encrypt($_whatToTrace)
This function generates token used to handle server webservice calls.
token($_session_id,'webapp1.example.com','webapp2.example.com')
Function to check if an IPv6 address is in a subnet. Example check if IP address is local:
isInNet6($ipAddr, 'fe80::/10')