Citrix ADC en tant que fournisseur d’identité SAML
L’IdP SAML (Identity Provider) est une entité SAML déployée sur le réseau client. L’IdP reçoit les demandes du SP SAML et redirige les utilisateurs vers une page d’ouverture de session, où ils doivent entrer leurs informations d’identification. L’IdP authentifie ces informations d’identification auprès d’Active Directory (serveur d’authentification externe, tel que LDAP), puis génère une assertion SAML qui est envoyée au SP.
Le SP valide le jeton, et l’utilisateur est ensuite autorisé à accéder à l’application protégée demandée.
Lorsque l’appliance Citrix ADC est configurée en tant que fournisseur d’identité, toutes les demandes sont reçues par un serveur virtuel d’authentification associé au profil de fournisseur d’identité SAML pertinent.
Remarque
Une appliance Citrix ADC peut être utilisée en tant que fournisseur d’identité dans un déploiement où le SP SAML est configuré soit sur l’appliance, soit sur n’importe quel SP SAML externe.
Lorsqu’il est utilisé en tant que fournisseur d’identité SAML, une appliance Citrix ADC :
-
Prend en charge toutes les méthodes d’authentification prises en charge pour les ouvertures de session traditionnelles.
-
Signe numériquement les assertions.
-
Prend en charge l’authentification à un ou deux facteurs. SAML ne doit pas être configuré en tant que mécanisme d’authentification secondaire.
-
Peut chiffrer les assertions à l’aide de la clé publique du SP SAML. Cela est recommandé lorsque l’assertion inclut des informations sensibles.
-
Peut être configuré pour accepter uniquement les demandes signées numériquement provenant du SP SAML.
-
Peut se connecter à l’IdP SAML à l’aide des mécanismes d’authentification basés sur 401 suivants : Negotiate, NTLM et Certificate.
-
Peut être configuré pour envoyer 16 attributs en plus de l’attribut NameID. Les attributs doivent être extraits du serveur d’authentification approprié. Pour chacun d’eux, vous pouvez spécifier le nom, l’expression, le format et un nom convivial dans le profil IdP SAML.
-
Si l’appliance Citrix ADC est configurée en tant que fournisseur d’identité SAML pour plusieurs SP SAML, un utilisateur peut accéder aux applications des différents SP sans s’authentifier explicitement à chaque fois. L’appliance Citrix ADC crée un cookie de session pour la première authentification, et chaque demande ultérieure utilise ce cookie pour l’authentification.
-
Peut envoyer des attributs à plusieurs valeurs dans une assertion SAML.
-
Prend en charge les liaisons de publication et de redirection. La prise en charge de la liaison d’artefacts est introduite dans Citrix ADC version 13.0 Build 36.27.
-
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 doit être accepté. Le temps d’inclinaison peut être configuré sur le SP SAML et le fournisseur d’identité SAML.
-
Peut être configuré pour diffuser des assertions uniquement aux SP SAML préconfigurés sur l’IdP ou approuvés par celui-ci. Pour cette configuration, l’IdP SAML doit avoir l’ID de fournisseur de services (ou le nom de l’émetteur) des SP SAML concernés.
Remarque
-
Avant de poursuivre, assurez-vous que vous disposez d’une stratégie d’authentification liée à un serveur virtuel d’authentification LDAP.
-
Pour plus d’informations sur la façon de configurer une action LDAP pour récupérer les attributs requis, consultez la section Prise en charge des attributs nom-valeur pour l’authentification LDAP.
-
Configurer une appliance Citrix ADC en tant qu’IdP SAML à l’aide de l’interface de ligne de commande
-
Configurez un profil IdP SAML.
Exemple
Ajout d’une appliance Citrix ADC en tant qu’IdP avec SiteMinder en tant que SP.
add authentication samlIdPProfile samlIDPProf1 -samlSPCertName siteminder-cert -encryptAssertion ON -metadataUrl https://samlidp.example.com/metadata -samlIdPCertName ns-cert -assertionConsumerServiceURL https://example.com/cgi/samlauth -rejectUnsignedRequests ON -signatureAlg RSA-SHA256 -digestMethod SHA256 –acsUrlRule AAA.LOGIN.SAML_REQ_ACS_URL.REGEX_MATCH(re#^https://example\.com/cgi/samlauth$#)
-
Configurez le profil IDP SAML. Dans l’exemple suivant, la session IdP contient l’attribut « UserPrincipalName ».
set samlidPProfile SAML-IDP-Profile -Attribute1 "userPrincipalName" -Attribute1Expr "AAA.USER.ATTRIBUTE(\"userPrincipalName\")"
Points à noter
-
Dans le profil IdP SAML, configurez AcSurlRule qui prend une expression de la liste des URL de fournisseurs de services applicables à cet IdP. Cette expression dépend du SP utilisé. Si Citrix ADC est configuré en tant que SP, l’URL ACS est
https://<SP-domain_name>/cgi/samlauth
. Citrix recommande d’avoir une URL complète dans l’expression pour correspondre. -
Si vous souhaitez que l’IdP SAML n’autorise qu’une seule URL ACS, utilisez la commande suivante :
L’exemple de CLI suivant utilise
https://testlb.aaa.local
l’URL ACS :set samlidpprofile SAML_IDP_profile -acsurlrule "AAA.LOGIN.SAML_REQ_ACS_URL.eq("https://testlb.aaa.local")" <!--NeedCopy-->
-
Si vous souhaitez que l’IdP SAML autorise un ensemble d’URL ACS, utilisez les commandes suivantes :
L’exemple de CLI
{"https://testlb.aaa.local", "https://testav.aaa.local"}
suivant utilise un ensemble d’URL ACS :add patset saml_acsUrl bind patset saml_acsUrl https://testlb.aaa.local bind patset saml_acsUrl https://testav.aaa.local set samlidpprofile SAML_IDP_profile -acsurlrule "AAA.LOGIN.SAML_REQ_ACS_URL.contains_any("saml_acsUrl")" <!--NeedCopy-->
-
Si vous souhaitez que l’IdP SAML corresponde à l’URL ACS avec une expression régulière, utilisez l’expression suivante :
–acsUrlRule AAA.LOGIN.SAML_REQ_ACS_URL.REGEX_MATCH(re#^https://example.com/cgi/samlauth$#)
L’expression ci-dessus garantit que l’URL ACS correspond à
https://example.com/cgi/samlauth
. Le signe « ^ » au début de l’expression régulière garantit que Citrix ADC n’autorise rien avant « https ». Le signe « $ » à la fin de l’expression régulière garantit que Citrix ADC n’autorise rien après « samlauth ».Si l’expression est
-acsUrlRule AAA.LOGIN.SAML_REQ_ACS_URL.REGEX_MATCH(re#https://example.com/cgi/#)
, l’IdP SAML autorise n’importe quelle URL ACS, comme indiqué dans les exemples ci-dessous :-
https://example.com/cgi/samlauth
-
abcdhttps://example.com/cgi/xyz
-
https://example.com/cgi/abcde
-
-
SAML prend uniquement en charge le certificat RSA. Les autres certificats tels que HSM et FIPS ne sont pas pris en charge.
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.
-
Si l’URL de déconnexion de l’IdP est différente de l’URL de redirection et que l’utilisateur reste sur la page de connexion de Citrix ADC pendant plus de 2 minutes, une erreur de serveur
HTTP/1.1 Internal Server Error 43549
s’affiche lorsque l’utilisateur tente de s’authentifier. Les journaux Citrix ADC affichent un message indiquant que l’URL de redirection après déconnexion entrante ne figure pas dans les URL de redirection de déconnexion autorisées pour l’utilisateur.Pour résoudre ce problème, liez le jeu de modèles comme indiqué dans l’exemple ci-dessous :
bind patset ns_aaa_oauthidp_logout_redirect_uris "https://FQDN and path to the logout url"
-
Si le serveur virtuel d’authentification est configuré en tant que SP SAML, l’URL de métadonnées qui doit être utilisée dans le profil IDP SAML est
https://<citrix-adc-saml-sp-fqdn>/metadata/samlsp/saml_sp_act
. Par exemple,add authentication samlIdPProfile SAML_IDP_profile -samlIdPCertName aaa_local -assertionConsumerServiceURL "https://ksav.ksaaa.local/cgi/samlauth" -samlIssuerName "https://ksidp1.aaa.local/saml/login" -rejectUnsignedRequests OFF -serviceProviderID kslb.ksaaa.local -signAssertion NONE -SPLogoutUrl "https://ksav.ksaaa.local/cgi/tmlogout" -logoutBinding REDIRECT -metadataUrl "https://ksav.ksaaa.local/metadata/samlsp/saml_sp_act" -metadataRefreshInterval 1
-
-
Configurez la stratégie d’authentification SAML et associez le profil IdP SAML comme action de la stratégie.
add authentication samlIdPPolicy samlIDPPol1 -rule true -action samlIDPProf1
Remarque :
Si le nom de la stratégie comporte un ou plusieurs espaces, mettez-le entre guillemets doubles ou simples (par exemple, « ma stratégie » ou « ma stratégie »).
-
Liez la stratégie au serveur virtuel d’authentification.
bind authentication vserver saml-auth-vserver -policy samlIDPPol1 -priority 100
Pour plus de détails sur la commande, reportez-vous à la section https://developer-docs.citrix.com/projects/citrix-adc-command-reference/en/latest/authentication/authentication-samlIdPProfile.
Configurer une appliance Citrix ADC en tant qu’IdP SAML à l’aide de l’interface graphique
-
Configurez un profil IdP SAML. Ce profil est utilisé pour vérifier les demandes d’authentification entrantes provenant du SP, et pour créer et signer l’assertion avant de l’envoyer au SP.
Accédez à Sécurité > AAA - Trafic des applications > Stratégies > Stratégies avancées d’authentification > Stratégies IDP SAML.
Sélectionnez Serveurs, cliquez sur Ajouter, entrez les valeurs des paramètres suivants, puis cliquez sur Créer.
Descriptions des paramètres :
-
Nom : nom du nouveau profil d’authentification unique SAML.
-
Exporter les métadonnées IDP SAML : cliquez sur ce lien si vous souhaitez exporter les métadonnées du profil IDP SAML vers un serveur virtuel VPN NetScaler Gateway.
-
Importer des métadonnées : cette option importe les métadonnées IDP SAML. Cette option est activée par défaut.
-
URL du service client de l’assertion : URL à laquelle l’assertion doit être envoyée.
-
URL de déconnexion du fournisseur de services : point de terminaison du SP auquel les messages de déconnexion doivent être envoyés.
-
Liaison de déconnexion : spécifie le mécanisme de transport des messages de déconnexion SAML. Les options disponibles sont POST et REDIRECT.
-
URL des métadonnées SAML SP : URL utilisée pour obtenir les métadonnées IDP SAML.
Remarque :
Lorsque l’URL des métadonnées du SP SAML est configurée, les paramètres suivants proviennent du profil IDP SAML et sont remplis automatiquement dans la configuration du SP SAML :
- URL du service client Assertion
- URL de déconnexion du fournisseur de services
- Nom du certificat SP
- Liaison de déconnexion
- Liaison SAML
- Signer une assertion
-
Intervalle d’actualisation des métadonnées (minutes) : intervalle de temps (en minutes) pour récupérer les métadonnées à partir de l’URL de métadonnées spécifiée. L’intervalle de temps par défaut est de 3 600 minutes.
-
Règle d’URL Assertion Consumer Service : expression qui définit les URL ACS autorisées provenant d’un SP SAML. En d’autres termes, il permet de répertorier les URL ACS pour empêcher les attaques qui insèrent des URL ACS non autorisées dans les requêtes SAML.
-
URL du service client Assertion : URL vers laquelle l’utilisateur authentifié est redirigé.
-
Nom du certificat IdP : paire de clés de certificat utilisée pour la page d’authentification.
-
Nom du certificat SP - Certificat du fournisseur de services dans ce scénario, la clé n’est pas requise pour cela.
-
Signer l’assertion : option permettant de signer l’assertion et la réponse lors de la redirection du client vers le fournisseur de services.
-
Nom de l’émetteur : valeur de chaîne incluse dans l’assertion SAML émise par l’IdP.
-
ID du fournisseur de services : identifiant unique spécifié sur le SP pour aider à identifier le fournisseur de services. L’identifiant peut être n’importe quoi et pas toujours une URL. Mais l’identifiant doit être le même sur les profils SP et IdP.
-
Groupe d’authentification par défaut : groupe par défaut choisi lorsqu’une authentification réussit, en plus des groupes extraits. Ce groupe est utile pour les administrateurs qui utilisent le flux nFactor pour décider des configurations appropriées pour le relais. Par exemple, lorsque vous configurez une stratégie d’authentification, vous pouvez spécifier le nom de groupe par défaut dans le cadre de l’expression suivante :
AAA.USER.IS_MEMBER_OF("Default Authentication Group name").
-
Refuser les demandes non signées : option que vous pouvez spécifier pour garantir que seules les assertions signées avec le certificat SP sont acceptées.
-
Public : public auquel l’assertion est envoyée par l’IdP. Il s’agit généralement d’un nom d’entité ou d’une URL qui représente le SP.
-
Temps d’inclinaison (minutes) - Durée d’inclinaison (minutes) - Cette option spécifie l’inclinaison en minutes que le fournisseur de services Citrix ADC autorise 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.
-
Format NAME ID : format de l’identifiant de nom envoyé dans l’assertion.
-
Expression d’identifiant de nom : expression évaluée pour obtenir l’identifiant de nom à envoyer dans l’assertion.
-
Signer une assertion : option permettant de signer des parties de l’assertion envoyée par l’IdP. Les options disponibles sont Aucune, Assertion, Réponse ou les deux.
-
Algorithme de signature - Algorithme utilisé pour signer et vérifier les assertions entre l’IdP et le SP. Il doit être identique sur le profil IdP et le profil SP.
-
Méthode Digest - Algorithme utilisé pour vérifier l’intégrité des assertions entre l’IdP et le SP, il doit être identique sur le profil IdP et le profil SP.
-
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. Associez la stratégie IdP SAML à un serveur virtuel d’authentification. Pour la liaison aux artefacts, le mécanisme de transport sur le SP et l’IdP doit être le même.
-
Attribut 1 : nom de l’attribut dans l’assertion SAML dont la valeur doit être extraite et stockée en tant qu’attribut1. Un schéma similaire s’applique également aux autres attributs.
-
Attribute1Expr : expression évaluée pour obtenir la valeur de l’attribut 1.
-
Attribute1FriendlyName : nom de l’attribut 1 qui doit être envoyé dans l’assertion SAML.
-
Attribute1Format : format de l’attribut 1 à envoyer dans l’assertion SAML.
-
-
Configurez la stratégie d’authentification SAML et associez le profil IdP SAML comme action de la stratégie.
Accédez à Sécurité > AAA - Trafic des applications > Stratégies > Stratégies avancées d’authentification > Stratégies IDP SAML.
Sélectionnez Stratégies, cliquez sur Ajouter, entrez des valeurs pour les paramètres suivants, puis cliquez sur Créer.
Descriptions des paramètres :
-
Nom : nom de la stratégie d’authentification SAML IdP.
-
Action : nom du profil IDP SAML à appliquer aux demandes ou aux connexions qui correspondent à cette stratégie.
-
Action de journalisation : nom de l’action du journal des messages à utiliser lorsqu’une demande correspond à cette stratégie. Sélectionnez une action de journal dans la liste déroulante ou créez une action de journal en cliquant sur Ajouter.
-
Action à résultat non défini : action à exécuter si le résultat de l’évaluation de la stratégie n’est pas défini. Un événement non défini indique une condition d’erreur interne. Seules les actions intégrées peuvent être utilisées.
-
Commentaires : tout commentaire destiné à préserver les informations relatives à cette stratégie.
-
-
Associez la stratégie IdP SAML à un serveur virtuel d’authentification.
Accédez à Sécurité > AAA - Trafic des applications > Serveurs virtuelset liez la stratégie IDP SAML au serveur virtuel d’authentification.