StoreFront + SAML/FAS : You cannot login using smart card

Synopsis

Lorsque vous implémentez StoreFront et NetScaler Gateway (ADC) avec le Federate Authentication Service (FAS) de Citrix pour l’authentification SAML, vous serez presque inévitablement confronté au message “You cannot login using smart card. Please close your browser to protect your account” après vous être déconnecté de StoreFront.

Solution native Citrix

Citrix a implémenté sa propre solution pour cela, qui parfois ne fonctionne pas correctement, mais à tenter en priorité !
Sur vos serveurs Storefront :

  • Editer « C:\inetpub\wwwroot\Citrix\<StoreName>Web\custom\script.js »
  • Ajouter « CTXS.allowReloginWithoutBrowserClose = true »

Source : https://support.citrix.com/article/CTX227673

Problème

Ce message apparaît généralement après votre déconnexion.

Vous recevrez d’abord le message suivant vous demandant de fermer votre navigateur.

Une fois que vous aurez actualisé la page ou accédé à nouveau à StoreFront sans fermer votre navigateur, vous recevrez le message « You cannot login using smart card ».

Bien qu’il s’agisse d’un mécanisme de protection prévu, le libellé prête à confusion pour les utilisateurs. L’intention fondamentale est d’obliger l’utilisateur à fermer le navigateur pour des raisons de sécurité. Cependant, si on rouvre le browser sans avoir nettoyé ses cookies, ça ne fonctionne pas…

Solution

StoreFront gère cette protection en définissant et en vérifiant certains cookies. Et il existe en fait deux cookies, l’un qui demande à l’utilisateur de fermer le navigateur et l’autre qui provoque l’erreur de la carte à puce.
Désormais, si nous supprimons le cookie responsable du message de la carte à puce, l’utilisateur recevra le message lui indiquant simplement de fermer le navigateur au lieu d’un message trompeur « You cannot login using smart card ».

Nous pouvons y parvenir sur NetScaler en utilisant la simple réécriture suivante sur la page de déconnexion qui invalidera le cookie correspondant :

add rewrite action RW_ACT_INS_HTTP_HEADER-ExpireSmartCardCookie insert_http_header Set-Cookie "\"CtxsSmartcardAuthenticated=xyz;Path=/Citrix/xxxWeb;expires=Wednesday, 09-Nov-1999 23:12:40 GMT; Secure\""
add rewrite policy RW_POL_INS_HTTP_HEADER-ExpireSmartCardCookie "HTTP.REQ.URL.PATH.SET_TEXT_MODE(IGNORECASE).EQ(\"/Citrix/xxxWeb/logout.aspx\")" RW_ACT_INS_HTTP_HEADER-ExpireSmartCardCookie
bind vpn vserver _XD_MFA -policy RW_POL_INS_HTTP_HEADER-ExpireSmartCardCookie -priority 10
0 -gotoPriorityExpression NEXT -type RESPONSE

Mathieu

Je suis actuellement ingénieur spécialisé dans le design d'environnements cloud virtualisés. Adepte des technologies de VMware, Nutanix, Citrix et Microsoft je propose à travers ce blog diverses astuces de troubleshooting.

S’abonner
Notification pour
guest

0 Commentaires
Commentaires en ligne
Afficher tous les commentaires