Citrix ADC

Configuration du protocole OpenID Connect

Une appliance Citrix ADC peut désormais être configurée en tant que fournisseur d’identité à l’aide du protocole OpenID Connect. Le protocole OpenID connect renforce les capacités d’identification de l’appliance Citrix ADC. Vous pouvez désormais accéder à l’application hébergée à l’échelle de l’entreprise avec une authentification unique car OpenID connect offre plus de sécurité en ne transférant pas le mot de passe utilisateur mais fonctionne avec des jetons avec une durée de vie spécifique. OpenID est également conçu pour s’intégrer à des clients non navigateurs tels que des applications et des services. Par conséquent, OpenID Connect est largement adopté par de nombreuses implémentations.

Avantages de la prise en charge d’OpenID Connect

  • OpenID élimine la surcharge de maintenance de plusieurs mots de passe d’authentification, car l’utilisateur possède une identité unique dans toute l’organisation.
  • OpenID fournit une sécurité robuste pour votre mot de passe car le mot de passe est partagé uniquement avec votre fournisseur d’identité et non avec aucune application à laquelle vous accédez.
  • OpenID dispose d’une grande interopérabilité avec divers systèmes, ce qui facilite l’acceptation d’OpenID par les applications hébergées.
  • OpenID est un protocole simple qui permet aux clients natifs de s’intégrer facilement aux serveurs.

Pour configurer l’appliance Citrix ADC en tant qu’IdP à l’aide du protocole OpenID Connect avec l’interface graphique

  1. Accédez à Configuration > Sécurité > Trafic AAA-Application > Stratégies > Authentification > Stratégies avancées > IdP OAuth.

  2. Cliquez sur Profil, puis sur Ajouter.

    Dans l’écran Créer une authentification OAuth IDP Profile, définissez les valeurs des paramètres suivants et cliquez sur Créer.

    • Nom : nom du profil d’authentification.
    • ID client — Chaîne unique qui identifie le SP.
    • Secret client : secret unique qui identifie le SP.
    • URL de redirection — Point de terminaison sur SP vers lequel le code/jeton doit être posté.
    • Nom de l’émetteur — Chaîne qui identifie IdP.
    • Audience — Destinataire cible du jeton envoyé par IdP. Cela peut être vérifié par le destinataire.
    • Temps d’inclinaison — Heure pour laquelle le jeton reste valide.
    • Groupe d’authentification par défaut : groupe ajouté à la session pour ce profil afin de simplifier l’évaluation des stratégies et de personnaliser les stratégies.
  3. Cliquez sur Stratégies, puis sur Ajouter.

  4. Dans l’écran Créer une stratégie d’IDP OAuth Authentication, définissez des valeurs pour les paramètres suivants, puis cliquez sur Créer .

    • Nom : nom de la stratégie d’authentification.
    • Action — Nom du profil créé ci-dessus.
    • Log Action : nom de l’action messagelog à utiliser lorsqu’une requête correspond à cette stratégie. Pas un dépôt obligatoire.
    • Undefined-Result Action – Action à réaliser si le résultat de l’évaluation des stratégies est undefined(UNDEF). Pas un champ obligatoire.
    • Expression — Expression de syntaxe par défaut utilisée par la stratégie pour répondre à une demande spécifique. Par exemple, vrai.
    • Commentaires — Tout commentaire sur la stratégie.

Liaison de la stratégie OAuthIDP et de la stratégie LDAP au serveur virtuel d’authentification

  1. Accédez à Configuration > Sécurité > Trafic AAA-Application > Stratégies > Authentification > Stratégies avancées > Actions > LDAP.

  2. Dans l’écran Actions LDAP, cliquez sur Ajouter.

  3. Dans l’écran Créer une authentification Serveur LDAP, définissez les valeurs des paramètres suivants, puis cliquez sur Créer.

    • Nom — Nom de l’action ldap
    • ServerName /ServerIP — Fournit le nom de domaine complet ou l’adresse IP du serveur LDAP
    • Choisissez les valeurs appropriées pour le type de sécurité, le port, le type de serveur, le délai d’expiration
    • Assurez-vous que l’authentification est cochée
    • DN de base — Base à partir de laquelle lancer la recherche LDAP. Par exemple, dc=aaa, dc=local.
    • DN de liaison administrateur : nom d’utilisateur de la liaison au serveur LDAP. Par exemple, admin@aaa.local.
    • Mot de passe administrateur/Confirmer le mot de passe : Mot de passe pour lier LDAP
    • Cliquez sur Tester la connexion pour tester vos paramètres.
    • Attribut Nom d’ouverture de session du serveur : Choisissez « samAccountName »
    • Les autres champs ne sont pas obligatoires et peuvent donc être configurés comme requis.
  4. Accédez à Configuration > Sécurité > Trafic applicatif AAA-> Stratégies > Authentification > Stratégies avancées > Stratégie.

  5. Dans l’écran Stratégies d’authentification, cliquez sur Ajouter.

  6. Sur la page Créer une stratégie d’authentification, définissez les valeurs des paramètres suivants, puis cliquez sur Créer.

    • Nom : nom de la stratégie d’authentification LDAP.
    • Type d’action : choisissez LDAP.
    • Action : choisissez l’action LDAP.
    • Expression : expression de syntaxe par défaut utilisée par la stratégie pour répondre à une demande spécifique. Par exemple, vrai**.

Pour configurer l’appliance Citrix ADC en tant qu’IdP à l’aide du protocole OpenID Connect avec la ligne de commande

À l’invite de commandes, tapez les commandes suivantes :

  • add authentication OAuthIDPProfile <name> [-clientID <string>][-clientSecret ][-redirectURL <URL>][-issuer <string>][-audience <string>][-skewTime <mins>] [-defaultAuthenticationGroup <string>]
  • add authentication OAuthIdPPolicy <name> -rule <expression> [-action <string> [-undefAction <string>] [-comment <string>][-logAction <string>]

  • add authentication ldapAction aaa-ldap-act -serverIP 10.0.0.10 -ldapBase "dc=aaa,dc=local"

  • ldapBindDn <administrator@aaa.local> -ldapBindDnPassword <password> -ldapLoginName sAMAccountName

  • add authentication policy aaa-ldap-adv-pol -rule true -action aaa-ldap-act

  • bind authentication vserver auth_vs -policy <ldap_policy_name> -priority 100 -gotoPriorityExpression NEXT

  • bind authentication vserver auth_vs -policy <OAuthIDPPolicyName> -priority 5 -gotoPriorityExpression END

  • bind vpn global –certkey <>

Remarque

Vous pouvez lier plusieurs clés. Les parties publiques des certificats liés sont envoyées en réponse à jwks\_uri query (https://gw/oauth/idp/certs).

Prise en charge des jetons cryptés sur OpenID Connect

L’appliance Citrix ADC avec mécanisme OpenID Connect prend désormais en charge l’envoi de jetons chiffrés avec des jetons signés. L’appliance Citrix ADC utilise les spécifications de chiffrement Web JSON pour calculer les jetons chiffrés et prend en charge uniquement la sérialisation compacte des jetons chiffrés. Pour chiffrer le jeton OpenID, l’appliance Citrix ADC a besoin d’une clé publique de la partie de confiance (RP). La clé publique est obtenue dynamiquement en interrogeant le point de terminaison de configuration bien connu de la partie de confiance.

Une nouvelle option « RelyingPartyMetaDataURL » est introduite dans « authentication oAuthIDPProfile ».

Pour configurer le point de terminaison de la partie de confiance à l’aide de la CLI

À l’invite de commandes, tapez :

set authentication OAuthIDPProfile <name> [-relyingPartyMetadataURL <URL>] [-refreshInterval <mins>] [-status < >]
  • RelyingPartyMetaDataURL - C’est le point de terminaison auquel Citrix ADC IdP peut obtenir des détails sur la partie de confiance en cours de configuration. La réponse aux métadonnées doit inclure les points de terminaison pour jwks_uri pour les clés publiques RP.

  • RefreshInterval - Définit la vitesse à laquelle ce point de terminaison doit être interrogé pour mettre à jour les certificats en quelques minutes.

  • status - Reflète le statut de l’opération d’interrogation. L’état est terminé une fois que Citrix ADC obtient avec succès les clés publiques.

    Exemple

     set authentication OAuthIDPProfile sample_profile -relyingPartyMetadataURL https://rp.customer.com/metadata -refreshInterval 50 -status < >
    

Une fois le point de terminaison configuré, l’appliance Citrix ADC interroge d’abord le point de terminaison bien connu de la partie de confiance pour lire la configuration. Actuellement, l’appliance Citrix ADC traite uniquement le point de terminaison « jwks_uri ».

  • Si le ‘jwks_uri’ est absent dans la réponse, l’état du profil n’est pas complet.
  • Si le ‘jwks_uri’ est présent dans la réponse, Citrix ADC interroge ce point de terminaison pour lire les clés publiques de la partie de confiance.

Remarque :

Seuls les algorithmes de chiffrement RSAES-OAEP et AES GCM sont pris en charge pour le chiffrement des jetons.

Prise en charge des attributs personnalisés sur OpenID Connect

Les parties se fiant à OpenID peuvent exiger plus que le nom d’utilisateur ou le nom principal d’utilisateur (UPN) dans le jeton pour créer un profil d’utilisateur ou prendre des décisions d’autorisation. Le plus souvent, les groupes d’utilisateurs sont requis pour appliquer des stratégies d’autorisation pour l’utilisateur. Parfois, plus de détails, tels que le prénom ou le nom de famille est requis pour le Provisioning du compte d’utilisateur.

L’appliance Citrix ADC configurée en tant qu’IdP peut être utilisée pour envoyer des attributs supplémentaires dans le jeton id_OpenID Connect à l’aide d’expressions. Les expressions de stratégie avancées sont utilisées pour envoyer les attributs personnalisés conformément à la condition requise. L’IdP Citrix évalue les expressions correspondant aux attributs, puis calcule le jeton final.

Appliance Citrix ADC JSONify automatiquement les données de sortie. Par exemple, les nombres (tels que SSN) ou les valeurs booléennes (true ou false) ne sont pas entourés de guillemets. Les attributs à valeurs multiples, tels que les groupes, sont placés dans le marqueur de tableau (“[« et »]”). Les attributs de type complexe ne sont pas calculés automatiquement et vous pouvez configurer l’expression PI de ces valeurs complexes selon votre besoin.

Pour configurer le point de terminaison de la partie de confiance à l’aide de la CLI

À l’invite de commandes, tapez :

set oauthidpprofile <name> -attributes <AAA-custom-attribute-pattern>

Le <AAA-custom-attribute-pattern> peut être décrit comme :

Attribute1=PI-Expression@@@attribute2=PI-Expression@@@

‘attribute1’, ‘attribute2’ sont des chaînes littérales qui représentent le nom de l’attribut à insérer dans le id_token.

Remarque

Vous pouvez configurer jusqu’à 2 000 octets d’attributs.

Exemple :

set oauthidpprofile sample_1 -attributes q{myname=http.req.user.name@@@ssn="123456789"@@@jit="false"@@@groups=http.req.user.groups}
  • Au-dessus de l’expression PI est une expression de stratégie avancée qui représente la valeur à utiliser par rapport à l’attribut. L’expression PI peut être utilisée pour envoyer un littéral de chaîne, tel que “‘chaîne codée en dur”’. Le littéral de chaîne est entouré de guillemets doubles autour de guillemets simples ou de guillemets doubles autour d’un début et d’un motif (comme indiqué ci-dessus, le modèle de départ est « q {« ). Si la valeur de l’attribut n’est pas un littéral de chaîne, l’expression est évaluée lors de l’exécution et sa valeur est envoyée en jeton. Si la valeur à l’exécution est vide, l’attribut correspondant n’est pas ajouté au jeton ID.
  • Comme défini dans l’exemple, ‘false’ est une chaîne littérale pour l’attribut « jit ». En outre, « ssn » a une valeur codée en dur pour référence. Les groupes et myname sont des expressions PI qui produisent des chaînes.

Prise en charge des déploiements GSLB actifs sur Citrix Gateway

Citrix Gateway configuré en tant que fournisseur d’identité (IdP) à l’aide du protocole OpenID Connect peut prendre en charge les déploiements GSLB actifs. Le déploiement actif-actif GSLB sur l’IdP Citrix Gateway permet d’équilibrer la charge de la demande de connexion utilisateur entrante sur plusieurs emplacements géographiques.

Important

Citrix vous recommande de lier des certificats d’autorité de certification au service SSL et d’activer la validation des certificats sur le service SSL pour une sécurité accrue.

Pour plus d’informations sur la configuration de l’installation de GSLB, reportez-vous à la section Exemple de configuration et de configuration GSLB.