Annexe - Niveau Web avec exemple de déploiement Apache

Cette rubrique fournit une procédure de bout en bout qui décrit comment mettre en œuvre un niveau Web dans l’architecture AWS de référence. L’exemple de configuration est composé des composants suivants :

  • Équilibreur de charge d’application AWS
  • Serveurs proxy Apache
  • Module d’authentification Mellon
  • IdP Okta
  • Authentification SAML

Remarque : l’exemple de configuration de niveau Web présenté dans cette section comprend des procédures détaillées pour le déploiement de logiciels et de services tiers. Nous avons tout mis en œuvre pour vérifier et documenter les procédures permettant d’activer le scénario de niveau Web. Il peut toutefois arriver que le logiciel tiers change ou que votre scénario diffère de l’architecture de référence décrite ici. Veuillez vous référer à la documentation du fournisseur tiers pour les détails de configuration et l’assistance.

Les exemples Linux tout au long de cette section montrent des commandes pour les distributions de type RHEL. Plus précisément, les commandes présentées ici ont été développées avec la distribution Amazon Linux 2. Si vous exécutez la distribution Ubuntu, modifiez les commandes en conséquence.

Le déploiement du niveau Web dans cet exemple suit une procédure de configuration et de vérification par étapes. La configuration du niveau Web principal comprend les étapes suivantes pour activer HTTP entre Tableau et Internet. Apache est exécuté et configuré pour un proxy inverse/équilibrage de charge derrière l’équilibreur de charge d’application AWS :

  1. Installer Apache
  2. Configurez le serveur proxy inverse pour tester la connectivité à Tableau Server
  3. Configurer l’équilibrage de charge sur le proxy
  4. Configurer l’équilibreur de charge d’application AWS

Une fois que vous avez configuré le niveau Web et vérifié la connectivité avec Tableau, configurez l’authentification avec un fournisseur externe.

Installer Apache

Exécutez la procédure suivante sur les deux hôtes EC2 (Proxy 1 et Proxy 2). Si vous effectuez un déploiement dans AWS conformément à l’exemple d’architecture de référence, vous devez avoir deux zones de disponibilité et exécuter un seul serveur proxy dans chaque zone.

  1. Installez Apache :

    sudo yum update -y
    sudo yum install -y httpd
  2. Configurez de manière à démarrer Apache au redémarrage :

    sudo systemctl enable --now httpd

  3. Vérifiez que la version de httpd que vous avez installée inclut proxy_hcheck_module :

    sudo httpd -M

    Le module proxy_hcheck_module est requis. Si votre version de httpd n’inclut pas ce module, mettez à jour à une version de httpd qui l’inclut.

Configurer le serveur proxy pour tester la connectivité à Tableau Server

Exécutez cette procédure sur l’un des hôtes proxy (Proxy 1). Le but de cette étape est de vérifier la connectivité entre Internet et votre serveur proxy et Tableau Server dans le groupe de sécurité privé.

  1. Créez un fichier appelé tableau.conf et ajoutez-le au répertoire /etc/httpd/conf.d.

    Copiez le code suivant et spécifiez les clés ProxyPass et ProxyPassReverse avec l’adresse IP privée du Nœud 1 de Tableau Server.

    Important : la configuration présentée ci-dessous n’est pas sécurisée et ne doit pas être utilisée en production. Cette configuration ne doit être utilisée que pendant le processus d’installation pour vérifier la connectivité de bout en bout.

    Par exemple, si l’adresse IP privée du nœud 1 est 10.0.30.32, le contenu du fichier tableau.conf serait :

    <VirtualHost *:80>
    ProxyPreserveHost On
    ProxyPass "/" "http://10.0.30.32:80/"
    ProxyPassReverse "/" "http://10.0.30.32:80/"
    </VirtualHost>
  2. Redémarrez httpd :

    sudo systemctl restart httpd

Vérification : configuration de la topologie de base

Vous devriez pouvoir accéder à la page d’administration de Tableau Server en accédant à http://<proxy-public-IP-address>.

Si la page de connexion à Tableau Server ne se charge pas dans votre navigateur, suivez ces étapes de dépannage sur l’hôte Proxy 1 :

  • Arrêtez puis démarrez httpd comme première étape de dépannage.
  • Revérifiez le fichier tableau.conf. Vérifiez que l’adresse IP privée de Nœud 1 est correcte. Vérifiez les guillemets doubles et examinez attentivement la syntaxe.
  • Exécutez la commande curl sur le serveur proxy inverse avec l’adresse IP privée de Nœud 1, par exemple curl 10.0.1.90. Si l’interpréteur de commandes ne renvoie pas html ou s’il renvoie html pour la page Web de test Apache, vérifiez la configuration du protocole/port entre les groupes de sécurité Public et Privé.
  • Exécutez la commande curl avec l’adresse IP privée de Proxy 1, par exemple curl 10.0.0.163. Si l’interpréteur de commandes renvoie le code html de la page Web de test Apache, le fichier proxy n’est pas configuré correctement.
  • Redémarrez toujours httpd (sudo systemctl restart httpd) après toute modification de configuration du fichier proxy ou des groupes de sécurité.
  • Assurez-vous que TSM s’exécute sur le Nœud 1.

Configurer l’équilibrage de charge sur le proxy

  1. Sur le même hôte proxy (Proxy 1) où vous avez créé le fichier tableau.conf, supprimez la configuration d’hôte virtuel existante et modifiez le fichier pour inclure la logique d’équilibrage de charge.

    Par exemple :

    <VirtualHost *:80>
    ServerAdmin admin@example.com
    #Load balancing logic.
    ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
    Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED 
    <Proxy balancer://tableau>
    #Replace IP addresses below with the IP addresses to the Tableau Servers running the Gateway service.
    BalancerMember http://10.0.3.40/ route=1 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
    BalancerMember http://10.0.4.151/ route=2 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
    ProxySet stickysession=ROUTEID
    </Proxy>
    ProxyPreserveHost On
    ProxyPass / balancer://tableau/
    ProxyPassReverse / balancer://tableau/ 
    </VirtualHost>
  2. Arrêtez puis démarrez httpd :

    sudo systemctl stop httpd
    sudo systemctl start httpd
  3. Vérifiez la configuration en accédant à l’adresse IP publique du proxy 1.

Copier la configuration sur le deuxième serveur proxy

  1. Copiez le fichier tableau.conf depuis le proxy 1 et enregistrez-le dans le répertoire /etc/httpd/conf.d sur l’hôte proxy 2.
  2. Arrêtez puis démarrez httpd :

    sudo systemctl stop httpd
    sudo systemctl start httpd
  3. Vérifiez la configuration en accédant à l’adresse IP publique du proxy 2.

Configurer l’équilibreur de charge d’application AWS

Configurez l’équilibreur de charge en tant qu’écouteur HTTP. La procédure ici décrit comment ajouter un équilibreur de charge dans AWS.

Étape 1 : Créer un groupe cible

Un groupe cible est une configuration AWS qui définit les instances EC2 exécutant vos serveurs proxy. Ce sont les cibles pour le trafic provenant du LBS.

  1. EC2>Groupes cibles > Créer un groupe cible

  2. Sur la page Créer :

    • Entrez un nom de groupe cible, par exemple TG-internal-HTTP
    • Type de cible : Instances
    • Protocole : HTTP
    • Port : 80
    • VPC : Sélectionnez votre VPC
    • Sous Contrôles d’intégrité > Paramètres avancés des contrôles d’intégrité > Codes de réussite, ajoutez la liste des codes pour lire : 200,303.
    • Cliquez sur Créer
  3. Sélectionnez le groupe cible que vous venez de créer, puis cliquez sur l’onglet Cibles

    • Cliquez sur Modifier.
    • Sélectionnez les instances d’EC2 (ou une seule instance si vous en configurez une à la fois) qui exécutent l’application proxy, puis cliquez sur Ajouter à l’enregistrement.
    • Cliquez sur Enregistrer.

Étape 2 : Lancer l’assistant d’équilibrage de charge

  1. EC2 > Équilibreurs de charge > Créer un équilibreur de charge

  2. Sur la page « Sélectionner le type d’équilibreur de charge », créez un équilibreur de charge d’application.

Remarque : l’interface utilisateur qui s’affiche pour configurer l’équilibreur de charge peut présenter des différences selon les centres de données AWS. La procédure ci-dessous, « Configuration de l’assistant », correspond à l’assistant de configuration AWS qui commence par l’Étape 1 Configurer l’équilibreur de charge

Si votre centre de données affiche toutes les configurations sur une seule page qui inclut un bouton Créer un équilibreur de charge en bas de la page, suivez la procédure « Configuration d’une seule page » ci-dessous.

  1. Page Configurer l’équilibreur de charge :

    • Précisez le nom
    • Schéma : face à Internet (par défaut)
    • Type d’adresse IP : ipv4 (par défaut)
    • Écouteurs (écouteurs et routage) :
      1. Laissez l’écouteur HTTP par défaut
      2. Cliquez sur Ajouter un écouteur et ajoutez HTTPS:443
    • VPC : sélectionnez le VPC où vous avez tout installé
    • Zones de disponibilité :
      • Sélectionnez a et b comme vos régions de centre de données
      • Dans chaque liste de sélection déroulante correspondante, sélectionnez le sous-réseau Public (où résident vos serveurs proxy).
    • Cliquez sur : Configurer les paramètres de sécurité
  2. Page Configurer les paramètres de sécurité

    • Téléversez votre certificat SSL public.
    • Cliquez sur Suivant : Configurer des groupes de sécurité.
  3. Page Configurer les groupes de sécurité :

    • Sélectionnez le groupe de sécurité Public. Si le groupe de sécurité par défaut est sélectionné, effacez cette sélection.
    • Cliquez sur Suivant : Configurer le routage.
  4. Page Configurer le routage

    • Groupe cible : Groupe cible existant.
    • Nom : sélectionnez le groupe cible que vous avez créé précédemment
    • Cliquez sur Suivant : Enregistrer les cibles.
  5. Page Enregistrer les cibles

    • Les deux instances de serveur proxy que vous avez configurées précédemment doivent s’afficher.
    • Cliquez sur Suivant : Vérifier.
  6. Page Révision

    Cliquez sur Créer.

Configuration de base

  • Précisez le nom
  • Schéma : face à Internet (par défaut)
  • Type d’adresse IP : ipv4 (par défaut)

Mappages réseau

  • VPC : sélectionnez le VPC où vous avez tout installé
  • Mappages :
    • Sélectionnez les zones de disponibilité a et b (ou comparables) comme vos régions de centres de données
    • Dans chaque liste de sélection déroulante correspondante, sélectionnez le sous-réseau Public (où résident vos serveurs proxy).

Groupes de sécurité

  • Sélectionnez le groupe de sécurité Public. Si le groupe de sécurité par défaut est sélectionné, effacez cette sélection.
  • Écouteurs et routage

    • Laissez l’écouteur HTTP par défaut. Dans Action par défaut, spécifiez le groupe cible que vous avez précédemment configuré.
    • Cliquez sur Ajouter un écouteur et ajoutez HTTPS:443. Dans Action par défaut, spécifiez le groupe cible que vous avez précédemment configuré.

    Paramètres d’écoute sécurisés

    • Téléversez votre certificat SSL public.

    Cliquez sur Créer un équilibreur de charge.

    Étape 3 : Activer la persistance

    1. Une fois l’équilibreur de charge créé, vous devez activer la persistance sur le groupe cible.

      • Ouvrez la page Groupe cible AWS (EC2> Équilibreurs de charge> Groupes cibles), sélectionnez l’instance d’équilibreur de charge cible que vous venez de configurer. Dans le menu Actions, sélectionnez Modifier les attributs.
      • Sur la page Modifier les attributs, sélectionnez Persistance, spécifiez une durée 1 day, puis Enregistrer les modifications.
    2. Dans l’équilibreur de charge, activez la persistance sur l’écouteur HTTP. Sélectionnez l’équilibreur de charge que vous venez de configurer, puis cliquez sur l’onglet Écouteurs.

      • Pour http:80, cliquez sur Afficher/modifier les règles. Dans la page Règles résultante, cliquez sur l’icône de modification (une fois en haut de la page, puis à nouveau près de la règle) pour modifier la règle. Supprimez la règle THEN existante et remplacez-la en cliquant sur Ajouter une action > Transférer vers.... Dans la configuration THEN résultante, spécifiez le même groupe cible que vous avez créé. Sous Persistance au niveau du groupe, activez la persistance et définissez la durée sur 1 jour. Enregistrez le paramètre, puis cliquez sur Mettre à jour.

    Étape 4 : Définir le délai d’inactivité sur l’équilibreur de charge

    Sur l’équilibreur de charge, mettez à jour le délai d’inactivité à 400 secondes.

    Sélectionnez l’équilibreur de charge que vous avez configuré pour ce déploiement, puis cliquez sur Actions > Modifier les attributs. Définissez le délai d’inactivité sur 400 secondes, puis cliquez sur Enregistrer.

    Étape 5 : Vérifier la connectivité LBS

    Ouvrez la page de l’équilibreur de charge AWS (EC2> Équilibreurs de charge), puis sélectionnez l’instance d’équilibreur de charge que vous venez de configurer.

    Sous Description, copiez le nom DNS et collez-le dans un navigateur pour accéder à la page de connexion Tableau Server.

    Si vous obtenez une erreur de niveau 500, vous devrez probablement redémarrer vos serveurs proxy.

    Mettre à jour le DNS avec l’URL publique de Tableau

    Utilisez le nom de zone DNS de votre domaine dans la description de l’équilibreur de charge AWS pour créer une valeur CNAME dans votre DNS. Le trafic vers votre URL (tableau.example.com) doit être envoyé au nom DNS public AWS.

    Vérifier la connectivité

    Une fois vos mises à jour DNS terminées, vous devriez pouvoir accéder à la page de connexion Tableau Server en saisissant votre URL publique, par exemple https://tableau.example.com.

    Exemple de configuration d’authentification : SAML avec fournisseur d’identités externe

    L’exemple suivant décrit comment installer et configurer SAML avec un fournisseur d’identités Okta et un module d’authentification Mellon pour un déploiement Tableau exécuté dans l’architecture de référence AWS. L’exemple décrit comment configurer Tableau Server et les serveurs proxy Apache pour utiliser HTTP. Okta enverra la demande à l’équilibreur de charge AWS via HTTPS, mais tout le trafic interne transitera via HTTP. Lors de la configuration de ce scénario, tenez compte des protocoles HTTP et HTTPS lors de la définition des chaînes d’URL.

    Cet exemple utilise Mellon comme module de fournisseur de services de pré-authentification sur les serveurs proxy inverses. Cette configuration garantit que seul le trafic authentifié se connecte à Tableau Server, qui fait également office de fournisseur de services avec le fournisseur d’identités Okta. Par conséquent, vous devez configurer deux applications de fournisseur d’identités : une pour le fournisseur de services Mellon et une pour le fournisseur de services Tableau.

    Créer un compte d’administrateur Tableau

    Une erreur courante lors de la configuration de SAML est d’oublier de créer un compte administrateur sur Tableau Server avant d’activer l’authentification unique.

    La première étape consiste à créer un compte sur Tableau Server avec un rôle d’administrateur de serveur. Pour le scénario de l’exemple Okta, le nom d’utilisateur doit utiliser le format d’une adresse de courriel valide, par exemple user@example.com. Vous devez définir un mot de passe pour cet utilisateur, mais le mot de passe ne sera pas utilisé une fois SAML configuré.

    Configurer l’application de pré-authentification Okta

    Le scénario de bout en bout décrit dans cette section nécessite deux applications Okta :

    • Demande de pré-autorisation Okta
    • Application Okta Tableau Server

    Chacune de ces applications est associée à différentes métadonnées que vous devrez configurer sur le serveur proxy inverse et Tableau Server, respectivement.

    Cette procédure décrit comment créer et configurer l’application de pré-authentification Okta. Plus loin dans cette rubrique, vous créerez l’application Okta Tableau Server. Pour un test gratuit de compte Okta avec un nombre limité d’utilisateurs, consultez la page Web Okta Developer(Le lien s’ouvre dans une nouvelle fenêtre).

    Créez une intégration d’application SAML pour le fournisseur de services de pré-authentification Mellon.

    1. Ouvrez le tableau de bord d’administration d’Okta > Applications > Créer une intégration d’application.

    2. Dans la page Créer une nouvelle intégration d’application, sélectionnez SAML 2.0, puis cliquez sur Suivant.

    3. Dans l’onglet Paramètres généraux, saisissez un nom d’application, par exemple Tableau Pre-Auth, puis cliquez sur Suivant.

    4. Dans l’onglet Configurer SAML :

      • URL d’authentification unique (SSO). Le dernier élément du chemin dans l’URL d’authentification unique est appelé MellonEndpointPath dans le fichier de configuration mellon.conf présenté plus loin dans cette procédure. Vous pouvez spécifier le point de terminaison de votre choix. Dans cet exemple, sso est le point de terminaison. Le dernier élément, postResponse, est requis : https://tableau.example.com/sso/postResponse.
      • Décochez la case : Use this for Recipient URL and Destination URL (À utiliser comme URL du destinataire et URL de destination).
      • URL du destinataire : identique à l’URL SSO, mais avec HTTP. Par exemple, http://tableau.example.com/sso/postResponse.
      • URL de destination : identique à l’URL SSO, mais avec HTTP. Par exemple, http://tableau.example.com/sso/postResponse.
      • URI d’audience (ID d’entité SP). Par exemple, https://tableau.example.com.
      • Format d’identification du nom : EmailAddress
      • Nom d’utilisateur de l’application : Email
      • Déclarations d’attributs : Nom =mail; Format du nom = Unspecified; Valeur = user.email.

      Cliquez sur Suivant.

    5. Dans l’onglet Commentaires, sélectionnez :

      • Je suis un client Okta ajoutant une application interne
      • Il s’agit d’une application interne que nous avons créée
      • Cliquez sur Terminer.
    6. Créez le fichier de métadonnées IdP de pré-autorisation :

      • Dans Okta : Applications > Applications > Votre nouvelle application (par exemple Tableau Pre-Auth ) > Connexion
      • À côté de Certificats de signature SAML, cliquez sur Afficher les instructions de configuration SAML.
      • Sura page Comment configurer SAML 2.0 pour l’application <pré-autorisée>, faites défiler jusqu’à la section Facultatif, fournissez les métadonnées IdP suivantes à votre fournisseur de SP.
      • Copiez le contenu du champ XML et enregistrez-le dans un fichier appelé pre-auth_idp_metadata.xml.
    7. (Facultatif) Configurez l’authentification multifacteur :

      • Dans Okta : Applications > Applications > Votre nouvelle application (par exemple Tableau Pre-Auth ) > Connexion
      • Sous Stratégie de connexion, cliquez sur Ajouter une règle.
      • Dans Règle de connexion aux applications, spécifiez un nom et les différentes options MFA. Pour tester la fonctionnalité, vous pouvez laisser toutes les options par défaut. Par contre, sous Actions, vous devez sélectionner Demander le facteur, puis spécifier la fréquence à laquelle les utilisateurs doivent se connecter. Cliquez sur Enregistrer.

    Créer et affecter un utilisateur Okta

    1. Dans Okta, créez un utilisateur avec le même nom d’utilisateur que vous avez créé dans Tableau (user@example.com)  : Répertoire > Personnes > Ajouter une personne.
    2. Une fois l’utilisateur créé, attribuez la nouvelle application Okta à cette personne : cliquez sur le nom d’utilisateur, puis attribuez l’application dans Attribuer une application.

    Installer Mellon pour la pré-authentification

    1. Sur les instances EC2 qui exécutent le serveur proxy Apache, exécutez les commandes suivantes pour installer PHP et les modules Mellon :

      sudo yum install httpd php mod_auth_mellon

    2. Créez le répertoire /etc/httpd/mellon

    Configurer Mellon comme module de pré-authentification

    Exécutez cette procédure sur les deux serveurs proxy.

    Vous devez avoir une copie du fichier pre-auth_idp_metadata.xml que vous avez créé à partir de la configuration Okta.

    1. Changez de répertoire :

      cd /etc/httpd/mellon

    2. Créez les métadonnées du fournisseur de services. Exécutez le script mellon_create_metadata.sh. Vous devez inclure l’ID d’entité et l’URL de retour de votre entreprise dans la commande.

      L’URL de retour est appelée URL d’authentification unique dans Okta. Le dernier élément du chemin dans l’URL de retour est appelé MellonEndpointPath dans le fichier de configuration mellon.conf présenté plus loin dans cette procédure. Dans cet exemple, nous spécifions sso comme chemin de point de terminaison.

      Par exemple :

      sudo /usr/libexec/mod_auth_mellon/mellon_create_metadata.sh https://tableau.example.com "https://tableau.example.com/sso"

      Le script renvoie le certificat du fournisseur de services, la clé et les fichiers de métadonnées.

    3. Renommez les fichiers du fournisseur de services dans le répertoire mellon pour une meilleure lisibilité. Nous désignerons ces fichiers par les noms suivants dans la documentation :

      sudo mv *.key mellon.key
      sudo mv *.cert mellon.cert
      sudo mv *.xml sp_metadata.xml

    4. Copiez le fichier pre-auth_idp_metadata.xml dans le même répertoire.

    5. Créez le fichier mellon.conf dans le répertoire /etc/httpd/conf.d :

      sudo nano /etc/httpd/conf.d/mellon.conf

    6. Copiez le contenu suivant dans mellon.conf.

      <Location />
      MellonSPPrivateKeyFile /etc/httpd/mellon/mellon.key
      MellonSPCertFile /etc/httpd/mellon/mellon.cert
      MellonSPMetadataFile /etc/httpd/mellon/sp_metadata.xml
      MellonIdPMetadataFile /etc/httpd/mellon/pre-auth_idp_metadata.xml
      MellonEndpointPath /sso
      MellonEnable "info"
      </Location>
    7. Ajoutez le contenu suivant dans le fichier tableau.conf existant :

      À l’intérieur du bloc <VirtualHost *:80>, ajoutez le contenu suivant. Mettez à jour ServerName avec le nom d’hôte public dans votre ID d’entité :

      DocumentRoot /var/www/html
      ServerName tableau.example.com
      ServerSignature Off
      ErrorLog logs/error_sp.log
      CustomLog logs/access_sp.log combined
      LogLevel info 

      Ajoutez le bloc Emplacement en dehors du bloc <VirtualHost *:80>. Mettez à jour MellonCookieDomain avec le domaine de premier niveau pour conserver l’information sur les témoins, comme indiqué :

      <Location />
      AuthType Mellon
      MellonEnable auth
      Require valid-user
      MellonCookieDomain example.com					
      </Location>

      Le fichier tableau.conf complet peut se présenter comme suit :

      <VirtualHost *:80>
      ServerAdmin admin@example.com
      ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
      Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
      <Proxy balancer://tableau>
      BalancerMember http://10.0.3.36/ route=1 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
      BalancerMember http://10.0.4.15/ route=2 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
      ProxySet stickysession=ROUTEID
      </Proxy>
      ProxyPreserveHost On
      ProxyPass / balancer://tableau/
      ProxyPassReverse / balancer://tableau/
      DocumentRoot /var/www/html
      ServerName tableau.example.com
      ServerSignature Off
      ErrorLog logs/error_sp.log
      CustomLog logs/access_sp.log combined
      LogLevel info 
      </VirtualHost>
      <Location />
      AuthType Mellon
      MellonEnable auth
      Require valid-user
      MellonCookieDomain example.com
      </Location>
    8. Vérifiez la configuration. Exécutez la commande suivante :

      sudo apachectl configtest

      Si le test de configuration renvoie une erreur, corrigez les erreurs et exécutez à nouveau configtest. Une configuration réussie retournera Syntax OK.

    9. Redémarrez httpd :

      sudo systemctl restart httpd

    Créer une application Tableau Server dans Okta

    1. Dans le tableau de bord Okta : Applications > Applications > Parcourir le catalogue d’applications
    2. Dans Parcourir le catalogue d’intégration d’applications, recherchez Tableau, sélectionnez la section Tableau Server, puis cliquez sur Ajouter.
    3. Sur Ajouter Tableau Server > Paramètres généraux, saisissez une étiquette, puis cliquez sur Suivant.
    4. Dans Options de connexion, sélectionnez SAML 2.0, puis faites défiler jusqu’à Paramètres de connexion avancés :
      • ID d’entité SAML : saisissez l’URL publique, par exemple https://tableau.example.com.
      • Format du nom d’utilisateur de l’application : Courriel
    5. Cliquez sur le lien Métadonnées du fournisseur d’identité pour lancer un navigateur. Copiez le lien du navigateur. C’est le lien que vous utiliserez lorsque vous configurerez Tableau dans la procédure qui suit.
    6. Cliquez sur Terminé.
    7. Attribuez la nouvelle application Tableau Server Okta à votre utilisateur (user@example.com) : cliquez sur le nom d’utilisateur, puis attribuez l’application dans Attribuer une application.

    Activer SAML sur Tableau Server pour fournisseur d’identités

    Exécutez cette procédure sur le Nœud 1 de Tableau Server.

    1. Téléchargez les métadonnées de l’application Tableau Server depuis Okta. Utilisez le lien que vous avez enregistré de la procédure précédente :

      wget https://dev-66144217.okta.com/app/exk1egxgt1fhjkSeS5d7/sso/saml/metadata -O idp_metadata.xml

    2. Copiez un certificat TLS et le fichier de clé associé sur Tableau Server. Le fichier de clé doit être une clé RSA. Pour plus d’informations sur la certificat et les exigences du fournisseur d’identités, consultez Exigences en matière d’authentification SAML (Linux(Le lien s’ouvre dans une nouvelle fenêtre)).

      Pour simplifier la gestion et le déploiement des certificats, et comme meilleure pratique de sécurité, nous vous recommandons d’utiliser des certificats générés par une autorité de certification (AC) tierce de confiance majeure. Vous pouvez aussi générer des certificats auto-signés ou utiliser des certificats d’une PKI pour TLS.

      Si vous n’avez pas de certificat TLS, vous pouvez générer un certificat auto-signé en appliquant la procédure intégrée ci-dessous.

      Générer un certificat auto-signé

      Exécutez cette procédure sur le Nœud 1 de Tableau Server.

      1. Générez la clé de l’autorité de certification racine (AC) de signature :

        openssl genrsa -out rootCAKey-saml.pem 2048

      2. Créez le certificat CA racine :

        openssl req -x509 -sha256 -new -nodes -key rootCAKey-saml.pem -days 3650 -out rootCACert-saml.pem

        Vous serez invité à saisir des valeurs pour les champs du certificat. Par exemple :

        Country Name (2 letter code) [XX]:US
        State or Province Name (full name) []:Washington
        Locality Name (eg, city) [Default City]:Seattle
        Organization Name (eg, company) [Default Company Ltd]:Tableau
        Organizational Unit Name (eg, section) []:Operations
        Common Name (eg, your name or your server's hostname) []:tableau.example.com
        Email Address []:example@tableau.com
      3. Créez le certificat et la clé associée (server-saml.csr et server-saml.key dans l’exemple ci-dessous). Le nom du sujet du certificat doit correspondre au nom de l’hôte public de l’hôte Tableau. Le nom du sujet est défini à l’aide de l’option -subj avec le format "/CN=<host-name>", par exemple :

        openssl req -new -nodes -text -out server-saml.csr -keyout server-saml.key -subj "/CN=tableau.example.com"

      4. Signez le nouveau certificat avec le certificat CA que vous avez créé ci-dessus. La commande suivante génère également le certificat au format crt :

        openssl x509 -req -in server-saml.csr -days 3650 -CA rootCACert-saml.pem -CAkey rootCAKey-saml.pem -CAcreateserial -out server-saml.crt

      5. Convertissez le fichier de clé en RSA. Tableau requiert un fichier de clé RSA pour SAML. Pour convertir la clé, exécutez la commande suivante :

        openssl rsa -in server-saml.key -out server-saml-rsa.key

    3. Configurez SAML. Exécutez la commande suivante, en spécifiant votre ID d’entité et votre URL de retour, ainsi que les chemins d’accès au fichier de métadonnées, au fichier de certificat et au fichier de clé :

      tsm authentication saml configure --idp-entity-id "https://tableau.example.com" --idp-return-url "https://tableau.example.com" --idp-metadata idp_metadata.xml --cert-file "server-saml.crt" --key-file "server-saml-rsa.key"

      tsm authentication saml enable

    4. Si votre entreprise exécute Tableau Desktop 2021.4 ou une version ultérieure, vous devez exécuter la commande suivante pour activer l’authentification via les serveurs proxy inverses.

      Les versions de Tableau Desktop 2021.2.1 - 2021.3 fonctionneront sans que cette commande soit exécutée, à condition que votre module de pré-authentification (par exemple Mellon) soit configuré pour autoriser la conservation des cookies de domaine de niveau supérieur.

      tsm configuration set -k features.ExternalBrowserOAuth -v false

    5. Appliquez les changements de configuration :

      tsm pending-changes apply

    Valider la fonctionnalité SAML

    Pour valider la fonctionnalité SAML de bout en bout, connectez-vous à Tableau Server avec l’URL publique (par exemple, https://tableau.example.com) en utilisant le compte administrateur Tableau que vous avez créé au début de cette procédure.

    Résolution des problèmes de validation

    Requête incorrecte : une erreur courante pour ce scénario est une erreur « Bad Request » (Requête incorrecte) d’Okta. Ce problème se produit souvent lorsque le navigateur met en cache les données de la session Okta précédente. Par exemple, si vous gérez les applications Okta en tant qu’administrateur Okta, puis tenez d’accéder à Tableau à l’aide d’un autre compte compatible Okta, les données de session provenant des données de l’administrateur peuvent provoquer l’erreur « Bad Request ». Si cette erreur persiste même après la suppression du cache du navigateur local, essayez de valider le scénario Tableau en vous connectant avec un autre navigateur.

    Une autre cause de l’erreur « Demande incorrecte » est une faute de frappe dans l’une des nombreuses URL que vous saisissez lors des processus de configuration Okta, Mellon et SAML. Vérifiez soignusement toutes ces erreurs.

    Souvent le fichier httpderror.log sur le serveur Apache indique l’URL à l’origine de l’erreur.

    Introuvable - L’URL demandée était introuvable sur ce serveur : cette erreur indique l’une des nombreuses erreurs de configuration possibles.

    Si l’utilisateur est authentifié avec Okta, puis reçoit cette erreur, il est probable que vous ayez téléversé l’application de pré-authentification Okta sur Tableau Server lorsque vous avez configuré SAML. Vérifiez que vous avez configuré les métadonnées de l’application Okta Tableau Server sur Tableau Server, et non pas les métadonnées de l’application de pré-authentification Okta

    Autres étapes de dépannage :

    • Vérifiez soigneusement que tableau.conf ne contient pas de fautes de frappe ou d’erreurs de configuration.
    • Passez en revue les paramètres de l’application de pré-authentification Okta. Assurez-vous que les protocoles HTTP vs HTTPS sont définis comme spécifié dans cette rubrique.
    • Redémarrez httpd sur les deux serveurs proxy.
    • Vérifiez que sudo apachectl configtest renvoie « Syntaxe OK » sur les deux serveurs proxy.
    • Vérifiez que l’utilisateur test est affecté aux deux applications dans Okta.
    • Vérifiez que l’adhérence est activée sur l’équilibreur de charge et les groupes cibles associés

    Configurer SSL/TLS depuis l’équilibreur de charge vers Tableau Server

    Certaines organisations exigent un canal de chiffrement de bout en bout du client au service principal. L’architecture de référence par défaut telle que décrite jusqu’ici spécifie SSL du client à l’équilibreur de charge exécuté dans le niveau Web de votre organisation.

    Pour configurer SSL de l’équilibreur de charge vers Tableau Server, vous devez :

    • Installer un certificat SSL valide sur les serveurs Tableau et proxy.
    • Configurer SSL depuis l’équilibreur de charge vers les serveurs proxy inverses.
    • Configurer SSL des serveurs proxy vers Tableau Server.
    • Vous pouvez également configurer SSL de Tableau Server vers l’instance PostgreSQL.

    Le reste de cette rubrique décrit cette mise en œuvre dans le contexte de l’exemple d’architecture de référence AWS.

    Exemple : Configurer SSL/TLS dans l’architecture de référence AWS

    Cette section décrit comment configurer SSL sur Tableau et sur un serveur proxy Apache le tout s’exécutant dans l’exemple d’architecture AWS de référence.

    Les procédures Linux décrites tout au long de cet exemple montrent des commandes pour les distributions de type RHEL. Plus précisément, les commandes présentées ici ont été développées avec la distribution Amazon Linux 2. Si vous exécutez la distribution Ubuntu, modifiez les commandes en conséquence.

    Étape 1 : Rassembler les certificats et les clés connexes

    Pour simplifier la gestion et le déploiement des certificats, et comme meilleure pratique de sécurité, nous vous recommandons d’utiliser des certificats générés par une autorité de certification (AC) tierce de confiance majeure.

    Vous pouvez aussi générer des certificats auto-signés ou utiliser des certificats d’une PKI pour TLS.

    La procédure suivante explique comment générer des certificats auto-signés. Si vous utilisez des certificats tiers comme nous le recommandons, vous pouvez ignorer cette procédure.

    Exécutez cette procédure sur l’un des hôtes proxy. Après avoir généré le certificat et la clé associée, vous les partagerez avec l’autre hôte proxy et avec le Nœud 1 de Tableau Server.

    1. Générez la clé de l’autorité de certification racine (AC) de signature :

      openssl genrsa -out rootCAKey.pem 2048

    2. Créez le certificat CA racine :

      openssl req -x509 -sha256 -new -nodes -key rootCAKey.pem -days 3650 -out rootCACert.pem

      Vous serez invité à saisir des valeurs pour les champs du certificat. Par exemple :

      Country Name (2 letter code) [XX]:US
      State or Province Name (full name) []:Washington
      Locality Name (eg, city) [Default City]:Seattle
      Organization Name (eg, company) [Default Company Ltd]:Tableau
      Organizational Unit Name (eg, section) []:Operations
      Common Name (eg, your name or your server's hostname) []:tableau.example.com
      Email Address []:example@tableau.com
    3. Créez le certificat et la clé associée (serverssl.csr et serverssl.key dans l’exemple ci-dessous). Le nom du sujet du certificat doit correspondre au nom de l’hôte public de l’hôte Tableau. Le nom du sujet est défini à l’aide de l’option -subj avec le format "/CN=<host-name>", par exemple :

      openssl req -new -nodes -text -out serverssl.csr -keyout serverssl.key -subj "/CN=tableau.example.com"

    4. Signez le nouveau certificat avec le certificat CA que vous avez créé à l’étape 2. La commande suivante génère également le certificat au format crt :

      openssl x509 -req -in serverssl.csr -days 3650 -CA rootCACert.pem -CAkey rootCAKey.pem -CAcreateserial -out serverssl.crt

    Étape 2 : Configurer le serveur proxy pour SSL

    Exécutez cette procédure sur les deux serveurs proxy.

    1. Installez le module Apache ssl :

      sudo yum install mod_ssl

    2. Créez le répertoire /etc/ssl/private :

      sudo mkdir -p /etc/ssl/private

    3. Copiez les fichiers crt et key dans les chemins d’accès /etc/ssl/ suivants :

      sudo cp serverssl.crt /etc/ssl/certs/

      sudo cp serverssl.key /etc/ssl/private/

    4. Mettez à jour le fichier tableau.conf existant avec les mises à jour suivantes :

      • Ajoutez le bloc de réécriture SSL :
        RewriteEngine on
        RewriteCond %{SERVER_NAME} =tableau.example.com
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
      • Dans le bloc de réécriture SSL, mettez à jour le nom du serveur RewriteCond : ajoutez votre nom d’hôte public, par exemple tableau.example.com.
      • Modifiez <VirtualHost *:80> en <VirtualHost *:443>.
      • Enveloppez les blocs <VirtualHost *:443> et <Location /> avec <IfModule mod_ssl.c>... </IfModule>.
      • BalancerMember : modifiez le protocole dehttp en https.
      • Ajoutez les éléments SSL* à l’intérieur du bloc <VirtualHost *:443> :
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/serverssl.crt
        SSLCertificateKeyFile /etc/ssl/private/serverssl.key
        SSLProxyEngine on
        SSLProxyVerify none
        SSLProxyCheckPeerName off
        SSLProxyCheckPeerExpire off
      • Dans l’élément LogLevel : ajoutez ssl:warn.
      • Facultatif : si vous avez installé et configuré un module d’authentification, vous pouvez avoir des éléments supplémentaires dans le fichier tableau.conf. Par exemple, le bloc <Location /> </Location> inclura des éléments.

      Un exemple de fichier tableau.conf configuré pour SSL est présenté ici :

      RewriteEngine on
      RewriteCond %{SERVER_NAME} =tableau.example.com
      RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
      
      <IfModule mod_ssl.c>
      <VirtualHost *:443>
      ServerAdmin admin@example.com
      ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
      Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
      <Proxy balancer://tableau>
      BalancerMember https://10.0.3.36/ route=1 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
      BalancerMember https://10.0.4.15/ route=2 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
      ProxySet stickysession=ROUTEID
      </Proxy>
      ProxyPreserveHost On
      ProxyPass / balancer://tableau/
      ProxyPassReverse / balancer://tableau/
      DocumentRoot /var/www/html
      ServerName tableau.example.com
      ServerSignature Off
      ErrorLog logs/error_sp.log
      CustomLog logs/access_sp.log combined
      LogLevel info ssl:warn
      SSLEngine on
      SSLCertificateFile /etc/ssl/certs/serverssl.crt
      SSLCertificateKeyFile /etc/ssl/private/serverssl.key
      SSLProxyEngine on
      SSLProxyVerify none
      SSLProxyCheckPeerName off
      SSLProxyCheckPeerExpire off
      </VirtualHost>
      <Location />
      #If you have configured a pre-auth module (e.g. Mellon) include those elements here.
      </Location>
      </IfModule>
    5. Ajoutez le fichier index.html pour supprimer les erreurs 403 :

      sudo touch /var/www/html/index.html
    6. Redémarrez httpd :

      sudo systemctl restart httpd

    Étape 3 : Configurer Tableau Server pour SSL externe

    Copiez les fichiers serverssl.crt et serverssl.key de l’hôte Proxy 1 vers l’instance Tableau Server initiale (Nœud 1).

    Exécutez les commandes suivantes sur le Nœud 1 :

    tsm security external-ssl enable --cert-file serverssl.crt --key-file serverssl.key
    tsm pending-changes apply

    Étape 4 : Configuration facultative de l’authentification

    Si vous avez configuré un fournisseur d’identités externe pour Tableau, vous devrez probablement mettre à jour les URL de retour dans le tableau de bord administratif du fournisseur d’identités.

    Par exemple, si vous utilisez une application de pré-authentification Okta, vous devrez mettre à jour l’application de manière à utiliser le protocole HTTPS pour l’URL du destinataire et l’URL de destination.

    Étape 5 : Configurer l’équilibreur de charge AWS pour HTTPS

    Si vous effectuez un déploiement avec l’équilibreur de charge AWS comme documenté dans ce guide, vous allez reconfigurer l’équilibreur de charge AWS de manière à envoyer le trafic HTTPS aux serveurs proxy :

    1. Annulez l’enregistrement du groupe cible HTTP existant :

      Dans Groupes cibles, sélectionnez le groupe cible HTTP qui a été configuré pour l’équilibreur de charge, cliquez sur Actions, puis sur Enregistrer et annuler l’enregistrement de l’instance.

      Sur la page Enregistrer et annuler l’enregistrement des cibles, sélectionnez les instances actuellement configurées, cliquez sur Annuler l’enregistrement, puis sur Enregistrer.

    2. Créez un groupe HTTPS cible :

      Groupes cibles > Créer un groupe cible

      • Sélectionnez « Instances »
      • Entrez un nom de groupe cible, par exemple TG-internal-HTTPS
      • Sélectionnez votre VPC
      • Protocole : HTTPS 443
      • Sous Contrôles d’intégrité > Paramètres avancés des contrôles d’intégrité > Codes de réussite, ajoutez la liste des codes pour lire : 200,303.
      • Cliquez sur Créer.
    3. Sélectionnez le groupe cible que vous venez de créer, puis cliquez sur l’onglet Cibles

      • Cliquez sur Modifier.
      • Sélectionnez les instances EC2 qui exécutent l’application proxy, puis cliquez sur Ajouter aux instances enregistrées.
      • Cliquez sur Enregistrer.
    4. Une fois le groupe cible créé, vous devez activer la permanence :

      • Ouvrez la page Groupe cible AWS (EC2> Équilibreurs de charge> Groupes cibles), sélectionnez l’instance d’équilibreur de charge cible que vous venez de configurer. Dans le menu Actions, sélectionnez Modifier les attributs.
      • Sur la page Modifier les attributs, sélectionnez Persistance, spécifiez une durée 1 day, puis Enregistrer les modifications.
    5. Sur l’équilibreur de charge, mettez à jour les règles d’écoute. Sélectionnez l’équilibreur de charge que vous avez configuré pour ce déploiement, puis cliquez sur l’onglet Écouteurs.

      • Pour http:80, cliquez sur Afficher/modifier les règles. Dans la page Règles résultante, cliquez sur l’icône de modification (une fois en haut de la page, puis à nouveau près de la règle) pour modifier la règle. Supprimez la règle THEN existante et remplacez-la en cliquant sur Ajouter une action > Rediriger vers.... Dans la configuration THEN résultante, spécifiez les ports HTTPS et 443 et conservez les paramètres par défaut des autres options. Enregistrez le paramètre, puis cliquez sur Mettre à jour.
      • Pour http:443, cliquez sur Afficher/modifier les règles. Dans la page Règles résultante, cliquez sur l’icône de modification (une fois en haut de la page, puis à nouveau près de la règle) pour modifier la règle. Dans la configuration THEN, sous Transférer vers... , remplacez le groupe cible par le groupe HTTPS que vous venez de créer. Sous Persistance au niveau du groupe, activez la persistance et définissez la durée sur 1 jour. Enregistrez le paramètre, puis cliquez sur Mettre à jour.

    Étape 6 : Vérifier SSL

    Vérifiez la configuration en accédant à https://tableau.example.com.

    Merci de vos commentaires!Votre commentaire s été envoyé avec succès. Merci!