Citrix ADC 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 Citrix ADC 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 pertinente.
L’appliance Citrix ADC prend également en charge les liaisons POST et Redirect lors de la déconnexion.
Remarque
Une appliance Citrix ADC peut être utilisée en tant que 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 en tant que SP SAML, une appliance Citrix ADC :
-
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 Citrix ADC. 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 Citrix ADC 13.0 Build 63.x et versions ultérieures, la longueur maximale individuelle des attributs SAML a été augmentée pour autoriser un maximum de 40 000 octets. La taille de tous les attributs ne doit pas dépasser 40 000 octets.
Lorsqu’elle est présentée avec le code XML précédent, l’appliance Citrix ADC peut extraire à la fois la valeur 1 et la valeur 2 en tant que valeurs d’un attribut donné, par opposition à l’ancien microprogramme qui extrait uniquement la valeur 1.
-
Peut spécifier la validité d’une assertion SAML.
Si l’heure système sur le fournisseur d’identité SAML Citrix ADC et 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. Citrix ADC SP envoie également une demande d’authentification dans le paramètre de requête lorsqu’il est configuré avec la liaison d’artefacts.
Pour configurer l’appliance Citrix ADC en tant que SP SAML à l’aide de l’interface de ligne de commande
-
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.
- Les administrateurs doivent configurer une expression pour RelaysStateRule dans la commande SamlAction. L’expression doit contenir la liste des domaines publiés auxquels l’utilisateur se connecte avant d’être redirigé vers le serveur virtuel d’authentification. Par exemple, l’expression doit contenir les domaines du serveur virtuel frontal (VPN, LB ou CS) qui utilise cette action SAML pour l’authentification.
- 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://<citrix-adc-saml-idp-fqdn>/metadata/samlidp/SAML_IDP_profile
.
Remarque
S’il existe plusieurs stratégies SAML dans le cadre d’une chaîne IdP, il suffit de configurer une règle d’état de relais uniquement sur la première stratégie SAML.
Pour plus de détails sur la commande, reportez-vous https://developer-docs.citrix.com/projects/citrix-adc-command-reference/en/latest/authentication/authentication-samlAction aux sections et https://support.citrix.com/article/CTX316577.
- Le certificat prévu
-
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
-
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
-
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 la commande, voir https://developer-docs.netscaler.com/en-us/adc-command-reference-int/current-release/authentication/authentication-samlaction
Pour configurer une appliance Citrix ADC en tant que SP SAML à l’aide de l’interface graphique
-
Accédez à Sécurité>Stratégies AAA->Authentification>Stratégies de base>SAML.
-
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 sauf dans la configuration SAML.
-
URL de déconnexion unique : URL spécifiée pour que Citrix ADC 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 Citrix ADC 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 le SP doit extraire si nécessaire.
-
Nom du certificat de signature : sélectionnez le certificat SP SAML (avec clé privée) utilisé par Citrix ADC pour signer des demandes d’authentification à 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.
-
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 Citrix ADC 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.
-
-
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.
-
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.
-
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.