Citrix ADC

Citrix ADC en tant que fournisseur d’identité OAuth

Une appliance Citrix ADC peut désormais être configurée en tant que fournisseur d’identité à l’aide du protocole OpenID-Connect (OIDC). Le protocole OIDC renforce les capacités de fourniture d’identité 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 OIDC offre plus de sécurité en ne transférant pas le mot de passe utilisateur, mais en utilisant des jetons avec une durée de vie spécifique. OpenID est également conçu pour s’intégrer à des clients autres que des navigateurs, tels que des applications et des services. Par conséquent, le protocole OIDC est largement adopté par de nombreuses implémentations.

Remarque

Citrix ADC doit être sur la version 12.1 ou ultérieure pour que l’appliance fonctionne en tant que fournisseur d’identité OAuth à l’aide du protocole OIDC.

Avantages de Citrix ADC en tant que fournisseur d’identité OAuth

  • Élimine les frais liés à la gestion de plusieurs mots de passe d’authentification, car l’utilisateur possède une identité unique au sein de l’organisation.
  • Fournit une sécurité solide pour votre mot de passe, car le mot de passe est partagé uniquement avec votre fournisseur d’identité et non avec les applications auxquelles vous accédez.
  • Fournit une interopérabilité étendue avec divers systèmes, ce qui facilite l’acceptation d’OpenID par les applications hébergées.

Remarque

Citrix ADC Advanced Edition et versions ultérieures sont nécessaires au fonctionnement de la solution.

Pour configurer l’appliance Citrix ADC en tant que fournisseur d’identité OAuth à l’aide de l’interface graphique

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

  2. Cliquez sur Profil, puis sur Ajouter.

    Dans l’écran Créer un profil de fournisseur d’identité OAuth d’authentification, définissez des valeurs pour les paramètres suivants, puis cliquez sur Créer.

    • Nom  : nom du profil d’authentification. Doit commencer par une lettre, un chiffre ou le caractère de soulignement (_) et ne doit contenir que des lettres, des chiffres et le trait d’union (-), le point (.), la livre (#), l’espace (), à (@), égal à (=), deux-points (:) et les caractères de soulignement. Impossible de modifier une fois le profil créé.

    • ID client  : chaîne unique qui identifie le SP. Le serveur d’autorisation déduit la configuration du client à l’aide de cet ID. Longueur maximale : 127.
    • Client Secret  : chaîne secrète établie par l’utilisateur et le serveur d’autorisation. Longueur maximale : 239.
    • URL de redirection  : point de terminaison sur le SP auquel le code/jeton doit être publié.
    • Nom de l’émetteur  : identité du serveur dont les jetons doivent être acceptés. Longueur maximale : 127.
    • Audience  : destinataire cible du jeton envoyé par l’IdP. Cela peut être vérifié par le destinataire.
    • Skew Time (Temps d’inclinaison) : cette option spécifie le décalage d’horloge autorisé en minutes que Citrix ADC autorise sur un jeton entrant. Par exemple, si SkewTime est 10, le jeton sera valide de (heure actuelle - 10) min à (heure actuelle + 10) min, soit 20 min en tout. Valeur par défaut : 5.
    • Groupe d’authentification par défaut  : groupe ajouté à la liste de groupes interne de la session lorsque ce profil est choisi par l’IdP qui peut être utilisé dans le flux nFactor. Il peut être utilisé dans l’expression (AAA.USER.IS_MEMBER_OF (« xxx »)) pour les stratégies d’authentification identifier le flux de facteurs lié à la partie de confiance. Longueur maximale : 63

    A group added to the session for this profile to simplify policy evaluation and help in customizing policies. This is the default group that is chosen when the authenticatiob succeeds in addition to the extracted groups. Maximum Length: 63.

  3. Cliquez sur Stratégies et cliquez sur Ajouter.

  4. Dans l’écran Créer une stratégie de fournisseur d’identité OAuth d’authentification, 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.
    • Action de consignation : nom de l’action du journal des messages à utiliser lorsqu’une demande correspond à cette stratégie. Ce n’est pas un dépôt obligatoire.
    • Actionà résultat non défini — Action à exécuter si le résultat de l’évaluation de la politique n’est pas défini (UNDEF). Ce champ n’est pas obligatoire.
    • Expression  : expression de stratégie avancée utilisée par la stratégie pour répondre à une demande spécifique. Par exemple, vrai.
    • Commentaires  : tout commentaire concernant 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 des applications AAA > Stratégies > Authentification > Stratégies avancées > Actions > LDAP.

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

  3. Dans l’écran Créer un serveur LDAP d’authentification, 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 et 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.
    • Administrator Bind DN : 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 de 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 des applications 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 stratégie avancée utilisée par la stratégie pour répondre à une demande spécifique. Par exemple, c’est vrai**.

La fonctionnalité OAuth prend désormais en charge les fonctionnalités suivantes dans l’API de jeton du côté de la partie de confiance (RP) et du côté IdP de Citrix Gateway et Citrix ADC.

  • Prise en charge de PKCE (Proof Key for Code Exchange)

  • Prise en charge de client_assertion

Pour configurer l’appliance Citrix ADC en tant que fournisseur d’identité à l’aide du protocole OIDC 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 <>
<!--NeedCopy-->

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 le protocole OIDC

L’appliance Citrix ADC avec le mécanisme OIDC 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 cryptage Web JSON pour calculer les jetons chiffrés et ne prend en charge que la sérialisation compacte des jetons chiffrés. Pour chiffrer un jeton OpenID, une appliance Citrix ADC a besoin de la 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 le profil d’authentification OAuthIDPProfile. « profil.

Pour configurer le point de terminaison de la partie de confiance à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

```set authentication OAuthIDPProfile [-relyingPartyMetadataURL ] [-refreshInterval ] [-status < >]


-  **RelyingPartyMetadataURL**  : point de terminaison sur lequel le fournisseur d'identité Citrix ADC peut obtenir des détails sur la partie de confiance en cours de configuration. La réponse aux métadonnées doit inclure des points de terminaison pour jwks_uri pour les clés publiques RP.

-  **RefreshInterval**  : définit la fréquence à laquelle ce point de terminaison doit être interrogé pour mettre à jour les certificats en quelques minutes.

-  **status** - Indique le statut de l'opération d'interrogation. L'état est terminé une fois que l'appliance Citrix ADC a obtenu les clés publiques.

    **Exemple**

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

Une fois le point de terminaison configuré, une 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 de la réponse, l’état du profil n’est pas complet.
  • Si le ‘jwks_uri’ est présent dans la réponse, Citrix ADC interrogeait également 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 de confiance OpenID peuvent nécessiter plus qu’un nom d’utilisateur ou un nom d’utilisateur principal (UPN) dans le jeton pour créer le profil utilisateur ou prendre des décisions d’autorisation. Le plus souvent, les groupes d’utilisateurs sont tenus d’appliquer des stratégies d’autorisation pour l’utilisateur. Parfois, des détails supplémentaires, tels que le prénom ou le nom de famille, sont nécessaires pour provisionner un compte d’utilisateur.

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

Appliance Citrix ADC JSONifie 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 un 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 l’interface de ligne de commande

À l’invite de commandes, tapez :

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

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}

  • L’expression PI précédente est une expression de stratégie avancée qui représente la valeur à utiliser pour 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é précédemment, le motif de début est « q {«). Si la valeur de l’attribut n’est pas un littéral de chaîne, l’expression est évaluée au moment de l’exécution et sa valeur est envoyée en jeton. Si la valeur au moment de l’exécution est vide, l’attribut correspondant n’est pas ajouté au jeton d’identification.
  • Comme défini dans l’exemple, « false » est une chaîne littérale pour l’attribut « jit ». De plus, « ssn » a une valeur codée en dur pour référence. Les groupes et « monnom » sont des expressions PI qui génèrent des chaînes.

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

Citrix Gateway configuré en tant que fournisseur d’identité (IdP) à l’aide du protocole OIDC peut prendre en charge les déploiements GSLB actifs-actifs. Le déploiement GSLB actif-actif sur le fournisseur d’identité Citrix Gateway permet d’équilibrer la charge d’une 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 la configuration de GSLB, voir Exemple de configuration et de configuration GSLB.