ADC

NetScaler en tant que SP SAML

Le fournisseur de services SAML (SP) est une entité SAML déployée par le fournisseur de services. Lorsqu’un utilisateur tente d’accéder à une application protégée, le SP évalue la demande du client. Si le client n’est pas authentifié (ne possède pas de cookie NSC_TMAA ou NSC_TMAS valide), le SP redirige la demande vers le fournisseur d’identité SAML (IdP).

Le SP valide également les assertions SAML reçues de l’IdP.

Lorsque l’appliance NetScaler est configurée en tant que SP, un serveur virtuel de gestion du trafic (équilibrage de charge ou commutation de contenu) reçoit toutes les demandes des utilisateurs associées à l’action SAML correspondante.

L’appliance NetScaler prend également en charge les liaisons POST et Redirect lors de la déconnexion.

Remarque

Une appliance NetScaler peut être utilisée comme SP SAML dans un déploiement où l’IdP SAML est configuré soit sur l’appliance, soit sur n’importe quel IdP SAML externe.

Lorsqu’elle est utilisée comme SP SAML, une appliance NetScaler :

  • Peut extraire les informations utilisateur (attributs) du jeton SAML. Ces informations peuvent ensuite être utilisées dans les stratégies configurées sur l’appliance NetScaler. **Par exemple, si vous souhaitez extraire les attributs GroupMember et **emailaddress, dans SamlAction, spécifiez le paramètre Attribute2 comme GroupMember et le paramètre Attribute3 comme adresse e-mail.**

    Remarque

    Les attributs par défaut tels que le nom d’utilisateur, le mot de passe et l’URL de déconnexion ne doivent pas être extraits dans les attributs 1 à 16, car ils sont implicitement analysés et stockés dans la session.

  • Peut extraire des noms d’attributs d’une taille maximale de 127 octets à partir d’une assertion SAML entrante. La limite précédente était de 63 octets.

  • Supporte les liaisons de publication, de redirection et d’artefacts.

    Remarque

    N’utilisez pas la liaison de redirection pour de grandes quantités de données lorsque l’assertion après le gonflage ou le décodage est supérieure à 10 Ko.

  • Peut déchiffrer des assertions.

  • Peut extraire des attributs à valeurs multiples d’une assertion SAML. Ces attributs sont envoyés sous forme de balises XML imbriquées telles que :

    <AttributeValue> <AttributeValue>Value1</AttributeValue> <AttributeValue>Value2</AttributeValue> \</AttributeValue\>

    Remarque

    À partir de NetScaler 13.0 Build 63.x et versions ultérieures, la longueur maximale individuelle des attributs SAML a été augmentée pour permettre un maximum de 40 000 octets. La taille de tous les attributs ne doit pas dépasser 40 000 octets.

    Lorsqu’on lui présente la version précédente du code XML, l’appliance NetScaler peut extraire à la fois Value1 et Value2 en tant que valeurs d’un attribut donné, contrairement à l’ancien microprogramme qui extrayait uniquement la Value1.

  • Peut spécifier la validité d’une assertion SAML.

    Si l’heure système sur NetScaler SAML IdP et sur le SP SAML homologue n’est pas synchronisée, les messages peuvent être invalidés par l’une ou l’autre des parties. Pour éviter de tels cas, vous pouvez désormais configurer la durée pendant laquelle les assertions sont valides.

    Cette durée, appelée « temps d’inclinaison », indique le nombre de minutes pendant lesquelles le message peut être accepté. Le temps d’inclinaison peut être configuré sur le SP SAML et le fournisseur d’identité SAML.

  • Peut envoyer un attribut supplémentaire appelé « ForceAuth » dans la demande d’authentification à un IdP externe (fournisseur d’identité). Par défaut, le ForceAuthn est défini sur « False ». Il peut être défini sur « True » pour suggérer à IdP de forcer l’authentification malgré le contexte d’authentification existant. NetScaler SP effectue également une demande d’authentification dans le paramètre de requête lorsqu’il est configuré avec une liaison aux artefacts.

Configurer l’appliance NetScaler en tant que SP SAML à l’aide de l’interface de ligne de commande

  1. Configurez une action de SP SAML.

    Exemple

    La commande suivante ajoute une action SAML qui redirige les demandes utilisateur non authentifiées.

    add authentication samlAction SamlSPAct1 -metadataUrl "https://ksidp1.ksaaa.local/metadata/samlidp/SAML_IDP_profile" -samlIdPCertName nssp -samlSigningCertName nssp –samlRedirectUrl https://auth1.example.com -relaystateRule "AAA.LOGIN.RELAYSTATE.EQ(\"https://lb.example1.com/\")"

    Points à noter

    • Le certificat prévu -samlIdPCertName dans la commande SamlAction doit correspondre au certificat correspondant de l’IdP pour que la vérification de la signature réussisse.
    • SAML ne prend en charge que le certificat RSA. Les autres certificats tels que HSM et FIPS ne sont pas pris en charge.
    • Il est recommandé d’avoir un nom de domaine complet avec un «/» à la fin de l’expression.
    • Si le serveur virtuel d’authentification est configuré en tant qu’IdP SAML, l’URL de métadonnées qui doit être utilisée dans l’action SAML SP est https://<netscaler-saml-idp-fqdn>/metadata/samlidp/SAML_IDP_profile.
    • Si plusieurs politiques SAML font partie d’une chaîne IdP, il suffit de configurer une règle d’état de relais uniquement sur la première politique SAML.

    Pour plus de détails sur cette commande, reportez-vous aux sections https://developer-docs.netscaler.com/en-us/adc-command-reference-int/current-release/authentication/authentication-samlaction et https://support.citrix.com/article/CTX316577.

  2. Configurez la stratégie SAML.

    Exemple :

    La commande suivante définit une stratégie SAML qui applique l’action SAML précédemment définie à l’ensemble du trafic.

    add authentication policy SamlSPPol1 -rule true -action SamlSPAct1

  3. Liez la stratégie SAML au serveur virtuel d’authentification.

    Exemple

    La commande suivante lie la stratégie SAML à un serveur virtuel d’authentification nommé « av_saml ».

    bind authentication vserver av_saml -policy SamlSPPol1

  4. Liez le serveur virtuel d’authentification au serveur virtuel de gestion du trafic approprié.

    Exemple

    La commande suivante ajoute un serveur virtuel d’équilibrage de charge nommé « lb1_ssl » et associe le serveur virtuel d’authentification nommé « av_saml » au serveur virtuel d’équilibrage de charge. add lb vserver lb1_ssl SSL 10.217.28.224 443 -persistenceType NONE -cltTimeout 180 -AuthenticationHost auth1.example.com -Authentication ON -authnVsName av_saml

    Pour plus de détails sur cette commande, consultez https://developer-docs.citrix.com/projects/citrix-adc-command-reference/en/latest/authentication/authentication-samlAction.

Configurer une appliance NetScaler en tant que SP SAML à l’aide de l’interface graphique

  1. Accédez à Sécurité>Stratégies AAA->Authentification>Stratégies de base>SAML.

  2. Sélectionnez l’onglet Serveurs, cliquez sur Ajouter, entrez des valeurs pour les paramètres suivants, puis cliquez sur Créer.

    Descriptions des paramètres :

    • Nom : nom du serveur.

    • URL de redirection : URL à partir de laquelle les utilisateurs s’authentifient. Certains IdP ont des URL spéciales qui ne sont pas accessibles à moins qu’ils ne soient configurés sur une configuration SAML.

    • URL de déconnexion unique : URL spécifiée pour que NetScaler puisse reconnaître quand renvoyer le client à l’IdP pour terminer le processus de déconnexion. Nous ne l’utiliserons pas dans ce simple déploiement.

    • Liaison SAML : mécanisme utilisé pour transporter les messages du demandeur et du répondeur SAML entre le SP et l’IdP. Lorsque NetScaler agit en tant que SP, il prend en charge les liaisons Post, Redirect et Artifact. La méthode de liaison par défaut est POST.

      Remarque :

      pour la liaison d’artefacts, le mécanisme de transport sur le SP et l’IdP doit être le même.

    • Liaison de déconnexion : spécifie le mécanisme de transport des messages de déconnexion SAML. Le mécanisme de liaison par défaut est Post.

    • Nom du certificat IdP : certificat IDPCert (Base64) présent sous le certificat de signature SAML.

    • Champ utilisateur : section du formulaire d’authentification SAML de l’IdP qui contient le nom d’utilisateur que SP doit extraire si nécessaire.

    • Nom du certificat de signature : sélectionnez le certificat SP SAML (avec clé privée) que NetScaler utilise pour signer les demandes d’authentification auprès de l’IdP. Le même certificat (sans clé privée) doit être importé sur l’IdP, de sorte que l’IdP puisse vérifier la signature de la demande d’authentification. La plupart des IDP n’ont pas besoin du nom du certificat de signature.

    • IssuerName - Identifiant. ID unique spécifié à la fois sur le SP et sur l’IdP pour aider à identifier le fournisseur de services l’un par rapport à l’autre.

    • Rejeter l’assertion non signée : option que vous pouvez spécifier si vous souhaitez que les assertions de l’IdP soient signées. L’option par défaut est Activé.
      • ON : rejette les assertions sans signature
      • STRICT : garantit que la réponse et l’assertion sont signées
      • OFF : autorise les assertions non signées
    • Audience - Audience pour laquelle une assertion envoyée par IdP est applicable. Il s’agit généralement d’un nom d’entité ou d’une URL qui représente le fournisseur de services.

    • Algorithme de signature : algorithme à utiliser pour signer/vérifier les transactions SAML. La valeur par défaut est RSA-SHA256.

    • Méthode de synthèse : algorithme à utiliser pour calculer/vérifier le condensé des transactions SAML. La valeur par défaut est SHA256.

    • Règle relative à l’état du relais : reportez-vous à la section Points à noter concernant le paramètre relaystateRule pour plus de détails sur ce paramètre.

    • Règle de vérification de l’état : configurez les expressions qui sont évaluées pour valider les requêtes HTTP sur les points de terminaison SAML.

    • Groupe d’authentification par défaut : groupe par défaut choisi lorsque l’authentification réussit, en plus des groupes extraits.

    • Champ de nom de groupe : nom de la balise dans une assertion qui contient des groupes d’utilisateurs.

    • Temps d’inclinaison (minutes) : cette option spécifie le décalage d’horloge en minutes autorisé par le fournisseur de services NetScaler sur une assertion entrante. Par exemple, si vous définissez le temps d’inclinaison sur 10 minutes à 16 h, l’assertion SAML est valide de 15 h 50 à 16 h 10, soit 20 minutes au total. La durée d’inclinaison par défaut est de 5 minutes.

    • Deux facteurs : active l’authentification à deux facteurs après SAML.

    • Assertion Consumer Service Index : index/ID de l’entrée de métadonnées correspondant à cette configuration.

    • Index des services consommateurs d’attributs : index/ID de la spécification de l’attribut au niveau de l’IdP. L’IdP localise les attributs demandés par SP à l’aide de cet index et envoie ces attributs dans l’assertion SAML.

    • Contexte d’authentification demandé : spécifie les exigences de contexte des instructions d’authentification renvoyées dans la réponse.

    • Types de classes d’authentification : spécifie les types de classes d’authentification qui sont demandés à l’IdP.

    • Types de classes d’authentification personnalisées : spécifie la référence de classe d’authentification personnalisée à envoyer dans le cadre de la demande d’authentification envoyée par le SP à l’IdP SAML.

    • Envoyer une empreinte numérique : envoie l’empreinte numérique à la place du certificat dans la demande SAML.

    • Appliquer le nom d’utilisateur - Choisissez si le nom d’utilisateur extrait de l’assertion SAML peut être modifié sur la page de connexion lors d’une authentification à second facteur.

    • Authentification forcée : applique l’authentification à l’IdP qui reçoit la demande de NetScaler.

    • Stocker la réponse SAML : stocke l’intégralité de la réponse SAML tant que la session utilisateur est active.
  3. Créez une stratégie SAML correspondante.

    Accédez à Sécurité > Trafic des applications AAA > Stratégies > Authentification > Stratégies avancées > Stratégie, puis cliquez sur Ajouter.

    Sur la page Créer une stratégie SAML d’authentification, fournissez les informations suivantes :

    • Nom : spécifiez le nom de la stratégie SAML.
    • Type d’action : sélectionnez SAML comme type d’action d’authentification.
    • Action : sélectionnez le profil de serveur SAML auquel lier la stratégie SAML.
    • Expression : affiche le nom de la règle ou de l’expression utilisée par la stratégie SAML pour déterminer si l’utilisateur doit s’authentifier auprès du serveur SAML. Dans la zone de texte, définissez la valeur « rule = true » pour que la stratégie SAML entre en vigueur et l’action SAML correspondante à exécuter.
  4. Liez la stratégie SAML au serveur virtuel d’authentification.

    Accédez à Sécurité > AAA - Trafic d’applications > Serveurs virtuelset associez la stratégie SAML au serveur virtuel d’authentification.

  5. Associez le serveur d’authentification au serveur virtuel de gestion du trafic approprié.

    Accédez à Gestion du trafic > Équilibrage de charge (ou Commutation de contenu) > Serveurs virtuels, sélectionnez le serveur virtuel et associez le serveur virtuel d’authentification à celui-ci.

Points à noter concernant le paramètre relaystateRule

Configurez une expression pour le paramètre RelaysStateRule dans la commande samlAction pour une redirection d’authentification fluide après l’assertion SAML. L’expression doit inclure un seul domaine publié ou une liste de domaines publiés auxquels les utilisateurs souhaitent se connecter, avant une redirection d’authentification. Par exemple, l’expression doit contenir les domaines du serveur virtuel frontal (VPN, équilibrage de charge ou commutation de contenu) qui utilise l’action SAML pour l’authentification.

Nous vous recommandons d’utiliser des noms de domaine complets suivis d’une fin (/). Par exemple https://example.com/.

Les exemples suivants décrivent les exemples de configuration des paramètres RelayStateRule pour des scénarios à domaine unique et à domaines multiples :

Pour un seul domaine :

set samlAction <samlActionName> -relaystateRule "AAA.LOGIN.RELAYSTATE.EQ(\"https://example1.com/\")"

Pour plusieurs domaines :

Utilisez des ensembles de modèles pour ajouter plusieurs domaines :

add patset test1

bind patset test1 "https://example1.com/"

bind patset test1 "https://test1.com/"

bind patset test1 "https://10.11.11.112/"

set samlAction <samlActionName> -relaystateRule AAA.LOGIN.RELAYSTATE.CONTAINS_ANY("test1")
<!--NeedCopy-->

Pour configurer la correspondance des modèles RegEx pour le FQDN, procédez comme suit :

set samlaction <samlActionName> -relaystateRule "AAA.LOGIN.RELAYSTATE.REGEX_MATCH(re#^https://[a-zA-Z0-9]*.example1.com/#)"
<!--NeedCopy-->

Spécifiez le signe « ^ » (^https) au début du domaine et spécifiez la barre oblique «/» à la fin de l’expression (exemple : example1\.com/).

Voici quelques définitions des expressions RelayStateRule :

EQ: Exact match.
CONTAINS: Domain inclusion.
CONTAINS_ANY: Match any domain from a PATSET.
REGEX_MATCH: Regex-based matching.
<!--NeedCopy-->
NetScaler en tant que SP SAML