StoreFront

Authentification SAML

SAML (Security Assertion Markup Language) est une norme ouverte utilisée par les produits d’identité et d’authentification. En utilisant SAML, vous pouvez configurer StoreFront pour rediriger les utilisateurs vers un fournisseur d’identité externe pour l’authentification.

Remarque

Configurez StoreFront avec l’authentification SAML pour l’accès interne. Pour l’accès externe, configurez Citrix Gateway avec l’authentification SAML puis configurez StoreFront avec l’authentification pass-through Gateway.

StoreFront nécessite un fournisseur d’identité (IdP) compatible SAML 2.0 tel que :

  • Microsoft AD Federation Services utilisant les liaisons SAML (pas les liaisons WS-Federation). Pour plus d’informations, consultez CTX220638.
  • Citrix Gateway (configuré en tant qu’IdP).
  • Microsoft Entra ID. Pour plus d’informations, consultez CTX237490.

L’assertion SAML doit contenir un attribut saml:Subject contenant l’UPN de l’utilisateur. StoreFront recherche cet UPN dans Active Directory. StoreFront ne prend pas en charge les utilisateurs dans d’autres annuaires. Lors de l’utilisation d’Entra ID, l’utilisateur doit avoir une identité hybride.

Pour activer ou désactiver l’authentification SAML pour un magasin, dans la fenêtre Méthodes d’authentification, sélectionnez Authentification SAML. L’activation de l’authentification SAML pour un magasin l’active par défaut également pour tous les sites web de ce magasin. Vous pouvez désactiver ou activer indépendamment l’authentification SAML pour chaque site web sous l’onglet Méthodes d’authentification.

StoreFront™ Points de terminaison SAML

Pour configurer SAML, votre fournisseur d’identité peut nécessiter les points de terminaison suivants :

  • L’URL de l’ID d’entité. Il s’agit du chemin d’accès au service d’authentification du magasin, normalement https://[storefront host]/Citrix/[StoreName]Auth
  • L’URL du service consommateur d’assertions, normalement https://[storefront host]/Citrix/[StoreName]Auth/SamlForms/AssertionConsumerService
  • Le service de métadonnées, normalement https://[storefront host]/Citrix/[StoreName]Auth/SamlForms/ServiceProvider/Metadata

De plus, il existe un point de terminaison de test, normalement https://[storefront host]/Citrix/[StoreName]Auth/SamlTest

Vous pouvez utiliser le script PowerShell suivant pour lister les points de terminaison d’un magasin spécifié.

# Change this value for your Store
$storeVirtualPath = "/Citrix/Store"

$auth = Get-STFAuthenticationService -Store (Get-STFStoreService -VirtualPath $storeVirtualPath)
$spId = $auth.AuthenticationSettings["samlForms"].SamlSettings.ServiceProvider.Uri.AbsoluteUri
$acs = New-Object System.Uri $auth.Routing.HostbaseUrl, ($auth.VirtualPath + "/SamlForms/AssertionConsumerService")
$md = New-Object System.Uri $auth.Routing.HostbaseUrl, ($auth.VirtualPath + "/SamlForms/ServiceProvider/Metadata")
$samlTest = New-Object System.Uri $auth.Routing.HostbaseUrl, ($auth.VirtualPath + "/SamlTest")
Write-Host "SAML Service Provider information:
Entity ID: $spId
Assertion Consumer Service: $acs
Metadata: $md
Test Page: $samlTest"
<!--NeedCopy-->

Exemple de la sortie :

SAML Service Provider information:
Entity ID: https://storefront.example.com/Citrix/StoreAuth
Assertion Consumer Service: https://storefront.example.com/Citrix/StoreAuth/SamlForms/AssertionConsumerService
Metadata: https://storefront.example.com/Citrix/StoreAuth/SamlForms/ServiceProvider/Metadata
Test Page: https://storefront.example.com/Citrix/StoreAuth/SamlTest
<!--NeedCopy-->

Configurer à l’aide de l’échange de métadonnées

Pour simplifier la configuration, vous pouvez échanger des métadonnées (identifiants, certificats, points de terminaison et autres configurations) entre le fournisseur d’identité et le fournisseur de services, qui est StoreFront dans ce cas.

Si votre fournisseur d’identité prend en charge l’importation de métadonnées, vous pouvez le diriger vers le point de terminaison de métadonnées StoreFront. Remarque : Cela doit être fait via HTTPS.

Pour configurer StoreFront à l’aide des métadonnées d’un fournisseur d’identité, utilisez l’applet de commande Update-STFSamlIdPFromMetadata, par exemple :

Get-Module "Citrix.StoreFront*" -ListAvailable | Import-Module

# Remember to change this with the virtual path of your Store.
$StoreVirtualPath = "/Citrix/Store"

$store = Get-STFStoreService -VirtualPath $StoreVirtualPath
$auth = Get-STFAuthenticationService -StoreService $store

# To read the metadata directly from the Identity Provider, use the following:
# Note again this is only allowed for https endpoints
Update-STFSamlIdPFromMetadata -AuthenticationService $auth -Url https://example.com/FederationMetadata/2007-06/FederationMetadata.xml

# If the metadata has already been download, use the following:
# Note: Ensure that the file is encoded as UTF-8
Update-STFSamlIdPFromMetadata -AuthenticationService $auth -FilePath "C:\Users\exampleusername\Downloads\FederationMetadata.xml"
<!--NeedCopy-->

Configurer le fournisseur d’identité

  1. Cliquez sur le menu déroulant des paramètres dans la ligne Authentification SAML, puis cliquez sur Fournisseur d’identité.

    Capture d'écran du menu des paramètres SAML

    Capture d'écran de la fenêtre du fournisseur d'identité

  2. Choisissez la Liaison SAML Post ou Redirect.

  3. Saisissez l’adresse du fournisseur d’identité.

  4. Importez le certificat utilisé pour signer les jetons SAML.

  5. Appuyez sur OK pour enregistrer les modifications.

Configurer le fournisseur de services

  1. Cliquez sur le menu déroulant des paramètres dans la ligne Authentification SAML et cliquez sur Fournisseur de services.

    Capture d'écran de la fenêtre du fournisseur d'identité

  2. Facultativement, choisissez un Certificat de signature d’exportation, utilisé pour signer les messages envoyés au fournisseur d’identité.

  3. Facultativement, choisissez un Certificat de chiffrement d’exportation, utilisé pour déchiffrer les messages reçus du fournisseur d’identité.

  4. L’Identifiant du fournisseur de services est prérempli avec le service d’authentification pour le magasin.

  5. Appuyez sur OK pour enregistrer les modifications.

PowerShell

Utilisation de PowerShell :

Test

Pour tester l’intégration SAML :

  1. Accédez à la page de test SAML, voir Points de terminaison SAML StoreFront.
  2. Ceci vous redirige vers le fournisseur d’identité. Saisissez vos informations d’identification.
  3. Vous êtes redirigé vers la page de test qui affiche les revendications d’identité et les assertions.

Configurer Delivery Controller™ pour qu’il fasse confiance à StoreFront

Lors de l’utilisation de l’authentification SAML, StoreFront n’a pas accès aux informations d’identification de l’utilisateur et ne peut donc pas s’authentifier auprès de Citrix Virtual Apps and Desktops. Vous devez donc configurer le Delivery Controller pour qu’il fasse confiance aux requêtes de StoreFront, voir Considérations de sécurité et meilleures pratiques de Citrix Virtual Apps and Desktops.

Authentification unique aux VDA

Lors de l’utilisation de l’authentification SAML, StoreFront n’a pas accès aux informations d’identification de l’utilisateur, de sorte que l’authentification unique aux VDA n’est pas disponible par défaut. Les options suivantes sont disponibles :

Problèmes connus

L’authentification peut échouer avec l’erreur HTTP 404.15 - Introuvable. Cela se produit lorsque la chaîne de requête est trop longue et est bloquée par le filtrage des requêtes IIS. Par défaut, IIS définit une limite de chaîne de requête de 2048 et une longueur totale d’URL de 4096. Pour contourner ce problème, augmentez les longueurs maximales d’URL et de chaîne de requête.

  1. Ouvrez le Gestionnaire des services Internet (IIS).

  2. Dans le volet Connexions, développez le serveur et sélectionnez le répertoire virtuel d’authentification.

  3. Dans le volet principal, ouvrez Filtrage des requêtes.

    Capture d'écran du gestionnaire IIS montrant où trouver le filtrage des requêtes

  4. Dans le volet Actions, cliquez sur Modifier les paramètres de la fonctionnalité…

  5. Augmentez la Longueur maximale de l’URL (octets) et la Chaîne de requête maximale (octets).

    Capture d'écran des paramètres de filtrage des requêtes du gestionnaire IIS

  6. Sélectionnez OK pour enregistrer vos modifications.