StoreFront

Authentification OIDC Entra ID (aperçu)

Cette section décrit comment configurer NetScaler et StoreFront afin que les utilisateurs puissent s’authentifier à l’aide d’Entra ID. Dans cette configuration, les utilisateurs peuvent avoir une identité hybride ou une identité Entra uniquement sans compte Active Directory.

IMPORTANT :

L’authentification unique Entra ID vers VDA est actuellement en préversion. Cette fonctionnalité est fournie sans support et n’est pas encore recommandée pour une utilisation dans des environnements de production.

Prérequis

  • NetScaler ADC
  • StoreFront 2603 ou version ultérieure
  • Microsoft Entra ID et un compte avec l’une des autorisations suivantes :
    • Cloud Application Administrator
    • Application Administrator
    • Global Administrator

Créer une application Microsoft Azure Entra ID

Une inscription d’application dans Microsoft Entra ID définit votre application afin qu’Entra ID la reconnaisse — dans ce cas, NetScaler OIDC. Cette inscription gère également les demandes d’authentification et d’autorisation de l’application. Étant donné qu’OAuth nécessite un fournisseur d’identité (IdP) fiable pour authentifier les utilisateurs et émettre des jetons, l’enregistrement de votre application indique à Entra ID : « Cette application vous utilise comme son IdP pour les flux OAuth. »

  1. Connectez-vous au portail Azure pour le locataire Entra ID que vous utilisez pour l’authentification NetScaler ou StoreFront.
  2. Accédez à Microsoft Entra ID resource > Manage > App registrations, puis sélectionnez New registration.
  3. Nommez l’application, par exemple, NetScaler StoreFront Authentication.
  4. Sous Types de comptes pris en charge, sélectionnez Comptes dans ce répertoire organisationnel uniquement.
  5. Sous URI de redirection, sélectionnez Web pour le type d’application que vous souhaitez créer. Saisissez l’URI où le jeton d’accès est envoyé. Utilisez le format <URL du serveur virtuel NetScaler>/oauth/login, par exemple https://netscalerentra.customer.com/oauth/login.

    ID Azure

Créer un secret client

Pour créer un secret client :

  1. Après avoir enregistré l’application, accédez à Gérer > Certificats et secrets.
  2. Sélectionnez Secrets client, puis sélectionnez Nouveau secret client. Votre application utilise ces informations d’identification pour communiquer en toute sécurité avec l’IdP et demander des jetons.
  3. Fournissez une description du secret et une durée.
  4. Après avoir créé le secret, enregistrez sa valeur car vous en aurez besoin plus tard dans le processus de configuration et elle n’est visible que pendant cette étape de création.

Azure NetScaler

Configurer les autorisations d’application

Pour configurer les autorisations d’application :

  1. Accédez à Gérer > Enregistrements d’applications, puis sélectionnez votre application.
  2. Sélectionnez Gérer > Autorisations d’API.
  3. L’autorisation User.Read est déjà ajoutée par défaut.
  4. Ajoutez openid et profile.
  5. Sélectionnez Accorder le consentement administrateur pour <tenant name> et acceptez.

« Accorder le consentement administrateur pour » dans les autorisations d’API de Microsoft Entra ID signifie qu’un administrateur donne son approbation, au nom de tous les utilisateurs de l’organisation, pour qu’une application accède à des ressources ou des API spécifiques avec les autorisations demandées.

Autorisation d'octroi Azure

Configurer Citrix DaaS pour activer l’approbation XML

Par défaut, Citrix DaaS authentifie les requêtes à l’aide des informations d’identification Active Directory de l’utilisateur. Avec l’authentification Entra ID, StoreFront ne dispose pas des informations d’identification. Par conséquent, vous devez configurer DaaS pour qu’il fasse confiance à StoreFront sans exiger l’authentification de l’utilisateur. Il est fortement recommandé d’activer les clés de sécurité pour fournir une authentification au niveau du service à la place.

  1. Connectez-vous à Citrix Cloud et accédez à la console DaaS.
  2. Accédez à Paramètres.
  3. Activez l’approbation XML.

    Autorisation d'octroi Azure

  4. (Étape facultative) Pour une sécurité accrue, vous pouvez activer les clés de sécurité entre DaaS et StoreFront. Pour plus d’informations, consultez Gérer les clés de sécurité dans la documentation Citrix DaaS™.

Configurer le profil d’authentification NetScaler

Cette section décrit comment configurer un profil d’authentification NetScaler que vous pouvez lier à votre serveur virtuel VPN de passerelle. Cette configuration indique à l’ADC comment rediriger les utilisateurs vers un IdP OAuth externe (tel que Microsoft Entra ID) pour la connexion et comment gérer les jetons OAuth reçus après l’authentification. Elle spécifie les points de terminaison, les informations d’identification du client, les étendues et la manière dont l’ADC extrait les informations utilisateur des jetons.

Vous avez besoin du secret client des étapes précédentes et des points de terminaison d’authentification Microsoft Entra ID. Vous pouvez trouver les points de terminaison d’authentification dans le portail Azure en accédant à la vue d’ensemble de votre enregistrement d’application et en cliquant sur l’onglet Points de terminaison.

Créer un serveur virtuel d’authentification

Le serveur virtuel d’authentification gère l’authentification des utilisateurs.

add authentication vserver EntraId_Authentication_VirtualServer SSL 0.0.0.0 443 \
  -state ENABLED \
  -authentication ON \
  -td 0 -appflowLog ENABLED \
  -noDefaultBindings NO
<!--NeedCopy-->

Créer une stratégie et une action OAuth

L’action OAuth spécifie comment NetScaler ADC interagit avec un fournisseur d’identité OAuth tel que Microsoft Entra ID. Cette action permet à Citrix Gateway de rediriger les utilisateurs vers le fournisseur d’identité pour la connexion et de gérer le jeton OAuth renvoyé. Elle définit userNameField sur oid, ce qui amène la passerelle à transmettre l’OID comme nom d’utilisateur lors de l’authentification auprès de StoreFront. StoreFront valide que l’OID correspond aux détails qu’il obtient en recherchant le jeton d’accès Entra ID, sinon l’authentification échoue.

Vous avez besoin de l’ID client et du secret client des étapes précédentes.

add authentication OAuthAction EntraId_Oauth_Server \
  -authorizationEndpoint "https://login.microsoftonline.com/<TenantId>/oauth2/v2.0/authorize\?prompt=login" \
  -tokenEndpoint "https://login.microsoftonline.com/<TenantId>/oauth2/v2.0/token" \
  -clientID <ClientId> \
  -clientSecret <ClientSecret> \
  -Attribute1 email \
  -Attribute2 family_name \
  -Attribute3 given_name \
  -Attribute4 upn \
  -CertEndpoint "https://login.microsoftonline.com/<TenantId>/discovery/v2.0/keys" \
  -userNameField oid \
  -allowedAlgorithms HS256 RS256 RS512 \
  -PKCE ENABLED \
  -tokenEndpointAuthMethod client_secret_post \
  -OAuthType GENERIC \
  -grantType CODE \
  -refreshInterval 1440
add authentication Policy EntraId_Authentication_Policy \
  -rule true \
  -action EntraId_Oauth_Server
<!--NeedCopy-->

authorizationEndpoint inclut le paramètre de chaîne de requête prompt=login afin que les utilisateurs soient forcés de se réauthentifier lorsqu’ils tentent d’accéder à StoreFront via le NetScaler.

Lier la stratégie d’authentification au serveur virtuel

bind authentication vserver EntraId_Authentication_VirtualServer \
  -policy EntraId_Authentication_Policy \
  -priority 100 \
  -gotoPriorityExpression END
<!--NeedCopy-->

Créer un profil d’authentification

add authentication authnProfile EntraId_Auth_Profile \
  -authnVsName EntraId_Authentication_VirtualServer \
  -AuthenticationLevel 0
<!--NeedCopy-->

Créer un serveur virtuel VPN et lier le profil d’authentification

Effectuez les étapes 1, 2 et 4 de Intégrer NetScaler Gateway avec StoreFront, en utilisant le profil d’authentification créé lors des étapes précédentes.

Alternativement, si vous disposez déjà d’un Citrix Gateway approprié, vous pouvez lui lier le nouveau profil d’authentification. L’exécution de cette commande remplace le profil d’authentification existant.

set vpn vserver <StoreFront ICA Proxy vServer> \
  -authentication ON \
  -authnProfile EntraId_Auth_Profile
<!--NeedCopy-->

Configuration de l’injection de jetons Entra ID pour l’authentification unique (SSO) vers StoreFront

Une fois que la passerelle Citrix a authentifié l’utilisateur, elle doit transmettre des informations suffisantes à StoreFront afin qu’il puisse valider l’authentification de l’utilisateur et rechercher son appartenance à un groupe. Par défaut, la passerelle Citrix n’envoie que le nom d’utilisateur et le mot de passe Active Directory. Dans le cas de l’authentification Entra ID, elle doit transmettre le jeton d’accès Entra ID afin que StoreFront puisse rechercher les informations de l’utilisateur à l’aide de l’API Microsoft Graph. Pour ce faire, vous devez ajouter une stratégie de réécriture qui ajoute le jeton Entra ID à l’appel qu’elle effectue pour authentifier l’utilisateur auprès de StoreFront. Si la stratégie de réécriture du jeton d’accès Entra ID ne prend pas effet, la connexion échouera. Si la fonctionnalité de stratégie de réécriture est désactivée par défaut et n’est pas déjà activée, vous devez d’abord l’activer.

enable ns feature Rewrite
add rewrite action EntraId_Oauth_Insert_AccessToken_Header insert_http_header X-Citrix-OIDC-Access-Token "AAA.USER.ATTRIBUTE(\"accesstoken\")" \
  -comment "A rewrite policy to add the OAUTH access_token to subsequent user authentication requests"
add rewrite policy EntraId_Oauth_Insert_AccessToken_Policy "HTTP.REQ.URL.TO_LOWER.ENDSWITH(\"gatewayauth/login\") || HTTP.REQ.URL.TO_LOWER.ENDSWITH(\"citrixagbasic/authenticate\")" EntraId_Oauth_Insert_AccessToken_Header \
  -comment "A rewrite policy to add the OAUTH access_token to subsequent user authentication requests"
bind vpn vserver <StoreFront ICA Proxy vServer> \
  -policy EntraId_Oauth_Insert_AccessToken_Policy \
  -priority 100 \
  -gotoPriorityExpression END \
  -type REQUEST
<!--NeedCopy-->

Configurer Citrix Gateway dans StoreFront

  1. Ajouter une instance NetScaler Gateway sur StoreFront.

  2. Configurer les Citrix Gateways(/fr-fr/storefront/current-release/integrate-with-citrix-gateway-and-citrix-adc/configure-citrix-gateway).

    • Définissez le type de connexion sur Domaine.

    • Spécifiez une URL de rappel valide. Ceci est requis pour l’authentification Entra ID avec StoreFront.

  3. Configurer la passerelle pour l’accès à distance(/fr-fr/storefront/current-release/stores/remote-access.html) pour le Store qui agrège les ressources Citrix DaaS.

  4. Sur l’écran Gérer les méthodes d’authentification, activez Pass-through from Citrix Gateway et configurez les paramètres Entra ID