Citrix ADC

Concepts, entités et terminologie nFactor

Cette rubrique présente certaines des principales entités impliquées dans l’authentification nFactor et leur importance.

Schéma de connexion

nFactor découple la « vue », l’interface utilisateur, avec le « modèle » qui gère l’exécution. La vue de nFactor est définie par le schéma de connexion. Le schéma de connexion est une entité qui définit ce que voit l’utilisateur et spécifie comment extraire les données de l’utilisateur.

Pour définir une vue, le schéma de connexion pointe vers un fichier sur le disque qui définit le formulaire d’ouverture de session. Ce fichier doit être conforme à la spécification du « Citrix Common Forms Protocol. » Ce fichier est essentiellement une définition XML du formulaire d’ouverture de session.

Outre le fichier XML, le schéma de connexion contient des expressions de stratégie avancées pour glaner le nom d’utilisateur et le mot de passe à partir de la demande de connexion de l’utilisateur. Ces expressions sont facultatives et peuvent être omises si le nom d’utilisateur et le mot de passe de l’utilisateur arrivent avec des noms de variables de formulaire attendus.

Le schéma de connexion définit également si l’ensemble actuel d’informations d’identification doit être utilisé comme informations d’identification SingleSignon par défaut.

Le schéma de connexion peut être créé en exécutant la commande CLI suivante :

   add authentication loginSchema <name> -authenticationSchema <string> [-userExpression <string>] [-passwdExpression <string>] [-userCredentialIndex <positive_integer>] [-passwordCredentialIndex <positive_integer>] [-authenticationStrength <positive_integer>] [-SSOCredentials ( YES | NO )]
<!--NeedCopy-->

Remarque :

Lesinformations d’identification SSO indiquent si les informations d’identification du facteur en cours sont les informations d’identification SSO par défaut. La valeur par défaut est NON.

Dans la configuration de l’authentification nFactor, les informations d’identification du dernier facteur sont utilisées par défaut pour l’authentification unique. En utilisant la configuration SSOCredentials, les informations d’identification du facteur actuel peuvent être utilisées. Dans le cas où cette configuration est définie selon différents facteurs, le facteur final qui a cet ensemble de configuration prend la priorité.

Pour plus d’informations sur chaque paramètre, reportez-vous à la section https://developer-docs.citrix.com/projects/citrix-adc-command-reference/en/latest/authentication/authentication-loginSchema/#add-authentication-loginschema.

Libellé politique

Une étiquette de stratégie est un ensemble de stratégies. Il s’agit d’une construction qui n’est pas étrangère à l’infrastructure de stratégie de Citrix ADC. L’étiquette de stratégie définit un facteur d’authentification. En d’autres termes, il contient toutes les stratégies nécessaires pour déterminer si les informations d’identification de l’utilisateur sont satisfaites. Toutes les politiques d’un label peuvent être considérées comme homogènes. L’étiquette de stratégie pour l’authentification ne peut pas prendre de stratégies de type différent, par exemple la réécriture. En d’autres termes, toutes les stratégies d’une étiquette de stratégie valident le même mot de passe/informations d’identification de l’utilisateur, pour la plupart. Le résultat des stratégies dans un PolicyLabel suit la condition logique OR. Par conséquent, si l’authentification spécifiée par la première stratégie réussit, les autres stratégies qui la suivent sont ignorées.

L’étiquette de stratégie peut être créée en exécutant la commande CLI suivante :

add authentication policy label mylabel –loginSchema <>
<!--NeedCopy-->

Une étiquette de stratégie prend le schéma de connexion comme propriété. Le schéma de connexion définit la vue de cette étiquette de stratégie. Si le schéma de connexion n’est pas spécifié, un schéma de connexion implicite, LSCHEMA_INT, est associé à cette étiquette de stratégie. Le schéma de connexion détermine si une étiquette de stratégie devient un relais ou non.

Étiquette du serveur virtuel

Dans l’infrastructure de stratégie avancée de Citrix ADC, un serveur virtuel est également une étiquette de stratégie implicite. Cela est dû au fait que le serveur virtuel peut également être lié à plusieurs stratégies. Cependant, un serveur virtuel est spécial car il constitue le point d’entrée du trafic client et peut prendre des stratégies d’un type différent. Chacune des stratégies qu’il a placées sous sa propre étiquette au sein du serveur virtuel. Le serveur virtuel est donc un conglomérat d’étiquettes.

Facteur suivant

Chaque fois qu’une stratégie est liée à un serveur virtuel ou à une étiquette de stratégie, elle peut être spécifiée avec le facteur suivant. Le facteur suivant détermine ce qui doit être fait si une authentification donnée réussit. S’il n’y a pas de facteur suivant, le processus d’authentification pour cet utilisateur est terminé.

Chaque stratégie liée à un serveur virtuel ou à une étiquette de stratégie peut avoir un facteur suivant différent. Cela permet une flexibilité ultime dans laquelle le succès de chaque stratégie peut définir un nouveau chemin pour l’authentification de l’utilisateur. L’administrateur peut tirer parti de ce fait et créer des facteurs de secours intelligents pour les utilisateurs qui ne respectent pas certaines règles.

Politique de non-autorisation

nFactor introduit une stratégie intégrée spéciale appelée NO_AUTHN. La stratégie NO_AUTHN renvoie toujours le succès en tant que résultat de l’authentification. La stratégie No-auth peut être créée en exécutant la commande CLI suivante :

add authentication policy noauthpolicy –rule <> -action NO_AUTHN
<!--NeedCopy-->

Conformément à la commande, la stratégie no-authentication prend une règle qui peut être n’importe quelle expression de stratégie avancée. Le résultat de l’authentification est toujours un succès de NO_AUTHN.

Une no-auth politique en soi ne semble pas apporter de valeur ajoutée. Cependant, lorsqu’il est utilisé avec des étiquettes de stratégie de relais, il offre une grande flexibilité pour prendre des décisions logiques afin de stimuler le flux d’authentification des utilisateurs. La stratégie NO_AUTHN et les facteurs de passthrough offrent une nouvelle dimension à la flexibilité de nFactor.

Remarque : Consultez les exemples illustrant l’utilisation de no-auth et du passthrough dans les sections suivantes.

Facteur/étiquette de passage

Une fois que l’utilisateur a réussi l’authentification sur le serveur virtuel (pour le premier facteur), les authentifications suivantes ont lieu au niveau des étiquettes de stratégie ou des facteurs définis par l’utilisateur (secondaires). Chaque étiquette/facteur de stratégie est associé à une entité de schéma de connexion pour afficher la vue de ce facteur. Cela permet de personnaliser les vues en fonction du chemin que l’utilisateur aurait emprunté pour arriver à un facteur donné.

Il existe des types spécialisés d’étiquettes de stratégie qui ne pointent pas explicitement vers un schéma de connexion. Les étiquettes de stratégie spécialisées pointent vers un schéma de connexion qui ne pointe pas réellement vers le fichier XML de la vue. Ces étiquettes/facteurs politiques sont appelés facteurs de « transmission ».

Les facteurs de relais peuvent être créés en exécutant les commandes CLI suivantes :

Exemple 1 :

add authentication policylabel example1
<!--NeedCopy-->

Exemple 2 :

add loginschema passthrough_schema –authenticationSchema noschema

add authentication policylabel example2 –loginschema passthrough_schema
<!--NeedCopy-->

Le facteur de transmission implique que le sous-système d’authentification, d’autorisation et d’audit ne doit pas revenir vers l’utilisateur pour obtenir les informations d’identification définies pour ce facteur. Il s’agit plutôt d’un conseil pour que l’authentification, l’autorisation et l’audit continuent avec les informations d’identification déjà obtenues. Cela est utile dans les cas où l’intervention de l’utilisateur n’est pas souhaitée. Par exemple,

  • Lorsque deux champs de mot de passe sont présentés à l’utilisateur, après le premier facteur, le second facteur n’a pas besoin d’intervention de l’utilisateur.

  • Lorsque l’authentification d’un type (par exemple un certificat) est effectuée et que l’administrateur doit extraire des groupes pour cet utilisateur.

Le facteur de transmission peut être utilisé avec une stratégie NO_AUTH pour effectuer des sauts conditionnels.

Flux d’authentification nFactor

L’authentification commence toujours au niveau du serveur virtuel dans nFactor. Le serveur virtuel définit le premier facteur pour l’utilisateur. Le premier formulaire que l’utilisateur voit est servi par le serveur virtuel. Le formulaire d’ouverture de session que l’utilisateur voit peut être personnalisé sur le serveur virtuel à l’aide de stratégies de schéma de connexion. S’il n’existe aucune stratégie de schéma de connexion, un seul champ de nom d’utilisateur et de mot de passe s’affiche pour l’utilisateur.

Si plusieurs champs de mot de passe doivent être affichés à l’utilisateur sur un formulaire personnalisé, des stratégies de schéma de connexion doivent être utilisées. Ils permettent d’afficher différents formulaires en fonction des règles configurées (tels que l’utilisateur intranet par rapport à l’utilisateur externe, le fournisseur de services A par rapport au fournisseur de services B).

Une fois les informations d’identification de l’utilisateur publiées, l’authentification commence au niveau du serveur virtuel d’authentification, le premier facteur. Étant donné que le serveur virtuel d’authentification peut être configuré avec plusieurs stratégies, chacune d’elles est évaluée dans un ordre. À tout moment, si une stratégie d’authentification aboutit, le facteur suivant spécifié par rapport à elle est pris en compte. S’il n’y a pas de facteur suivant, le processus d’authentification prend fin. Si le facteur suivant existe, il est vérifié s’il s’agit d’un facteur de transmission ou d’un facteur régulier. S’il s’agit d’un relais, les stratégies d’authentification relatives à ce facteur sont évaluées sans intervention de l’utilisateur. Sinon, le schéma de connexion associé à ce facteur est affiché pour l’utilisateur.

Exemple d’utilisation du facteur de transmission et des politiques de non-authentification pour prendre des décisions logiques

L’administrateur souhaite décider de NextFactor en fonction des groupes.

add authentication policylabel group check

add authentication policy admin group –rule http.req.user.is_member_of("Administrators") –action NO_AUTHN

add authentication policy nonadmins –rule true –action NO_AUTHN

bind authentication policy label group check –policy admingroup –pri 1 –nextFactor factor-for-admin

bind authentication policy label groupcheck –policy nonadmins –pri 10 –nextfactor factor-for-others

add authentication policy first_factor_policy –rule <> -action <>

bind authentication vserver <> -policy first_factor_policy –priority 10 –nextFactor groupcheck
<!--NeedCopy-->
Concepts, entités et terminologie nFactor