Activer l’authentification Kerberos pour les connecteurs JDBC

Depuis la version 2020.2, Tableau Server prend en charge la délégation Kerberos pour les connecteurs JDBC.

La délégation Kerberos permet à Tableau Server d’utiliser les informations d’identification Kerberos de l’observateur qui visualise un classeur ou une vue pour exécuter une requête au nom de l’observateur. Cette option est utile dans les situations suivantes :

  • Vous avez besoin de savoir qui accède aux données (le nom de l’utilisateur de type Viewer figurera dans les fichiers journaux d’accès de la source de données).

  • La sécurité de votre source de données s’exerce au niveau ligne. Dans ce cas, des utilisateurs différents accèdent à des lignes différentes.

Sources de données prises en charge

Tableau prend en charge l’authentification JDBC Kerberos RunAs avec les sources de données suivantes :

  • Oracle
  • PostgreSQL

Si vous configurez la délégation avec une source de données Oracle utilisant un connecteur basé sur JDBC, suivez la procédure décrite dans cette rubrique. Par ailleurs, si le connecteur que vous utilisez sur Tableau Server utilise un pilote natif, suivez la procédure décrite dans la rubrique d’aide Activer la délégation Kerberos.

Exigences

La délégation Kerberos requiert Active Directory.

  • La banque d’informations Tableau Server doit être configurée pour utiliser LDAP - Active Directory.
  • MIT KDC n’est pas pris en charge.

Remarque : vous n’avez pas besoin d’autoriser le compte « Exécuter en tant que » à faire office de système d’exploitation.

Processus de configuration

Cette section fournit un exemple du processus d’activation de la délégation Kerberos.

  1. Tableau Server aura besoin d’un billet de service Kerberos pour la délégation pour le compte de l’utilisateur qui initie l’appel à la base de données. Vous devez créer un compte de domaine qui sera utilisé pour la délégation vers la base de données donnée. Le compte est appelé le compte Exécuter en tant que service. Dans cette rubrique, l’exemple d’utilisateur configuré comme compte « Exécuter en tant que » est tabsrv@EXAMPLE.COM.

    Le compte doit être configuré pour la délégation dans Active Directory :

    1. Sur un serveur Windows connecté au domaine utilisateur, ouvrez les utilisateurs et les ordinateurs Active Directory.
    2. Dans la page Propriétés du compte Exécuter en tant que service, cliquez sur l’onglet Délégation et sélectionnez N’approuver cet utilisateur que pour la délégation aux services spécifiés et Utiliser n’importe quel protocole d’authentification.
  2. Créez un fichier keytab pour le compte Exécuter en tant que service.

    L’exemple suivant utilise l’outil ktab fourni avec le JDK. Vous pouvez télécharger l’outil sur le site AdoptOpenJDK(Le lien s’ouvre dans une nouvelle fenêtre). Lorsque vous utilisez ktab pour créer le fichier keytab, utilisez un identifiant de connexion principal au format UPN (par exemple, service@EXAMPLE.COM), et non un nom de service principal (par exemple, HTTP/service.example.com@EXAMPLE.COM). Vous pouvez également générer des fichiers keytab avec l’utilitaire ktpass, dans quel cas vous pouvez utiliser l’un ou l’autre style de nom principal.

    <JDK_HOME>/bin/ktab -k E:/tmp/tabsrv.keytab -a tabsrv@EXAMPLE.COM

    Tableau Server utilisera le compte Exécuter en tant que service et le fichier keytab associé pour l’authentification et l’établissement d’une connexion directe à la base de données.

  3. Copiez le fichier keytab dans le répertoire de données de Tableau Server et vérifiez que le compte Exécuter en tant que service peut accéder au fichier keytab et le lire. Par défaut, le répertoire de données Tableau Server se trouve à l’adresse : C:\ProgramData\Tableau. Si vous exécutez Tableau Server dans un déploiement distribué, exécutez cette étape sur chaque nœud du groupement.

  4. Créez un fichier krb5.conf et installez-le dans C:\Windows sur tous les nœuds Tableau Server.

    Si vous avez déjà déployé un fichier krb5.ini sur les ordinateurs de votre entreprise, copiez ce fichier et utilisez-le pour Tableau Server. Pour plus d’informations, consultez la rubrique krb5.conf(Le lien s’ouvre dans une nouvelle fenêtre) dans la documentation MIT Kerberos.

    Pour modifier l’emplacement du fichier de configuration Kerberos, exécutez la commande TSM suivante :

    tsm configuration set -k native_api.kerberos_config_path --force-keys -v "C:\temp\krb5.ini"

    Voici un exemple de fichier krb5.conf. L’assistance Tableau ne peut pas aider à la création de krb5.conf.

    [libdefaults]
    forwardable = true
    default_realm = EXAMPLE.COM
    default_tkt_enctypes = rc4-hmac
    default_tgs_enctypes = rc4-hmac
    
    [realms]
    EXAMPLE.COM = {
    kdc = kdc.example.com
    admin_server = kdc.example.com
    }
    
    [domain_realm]
    .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM
  5. Exécutez les commandes TSM suivantes pour activer la délégation Kerberos, configurer le compte de service de délégation et associer le fichier keytab avec le compte de service :

    tsm configuration set -k wgserver.delegation.enabled -v true
    tsm configuration set -k native_api.datasource_impersonation_runas_principal -v tabsrv@EXAMPLE.COM
    tsm configuration set -k native_api.datasource_impersonation_runas_keytab_path -v <path-to-file>kerberos.keytab
    tsm configuration set -k native_api.protocol_transition_a_d_short_domain -v false
    tsm configuration set -k native_api.protocol_transition_uppercase_realm -v true

    Dans certains cas, TSM peut renvoyer une erreur indiquant --force-keys. Si cette erreur s’affiche, réexécutez la commande en ajoutant le paramètre --force-keys à l’argument.

  6. Exécutez la commande TSM suivante pour appliquer les modifications à Tableau Server :

    tsm pending-changes apply

    Si les modifications en attente nécessitent un redémarrage du serveur, la commande pending-changes apply affichera une invite pour vous informer qu’un redémarrage va avoir lieu. Cette invite s’affiche même si le serveur est arrêté, mais dans ce cas, il n’y a pas de redémarrage. Vous pouvez supprimer l’invite à l’aide de l’option --ignore-prompt, mais cela ne modifiera pas le comportement de redémarrage. Si les modifications ne nécessitent pas de redémarrage, les modifications sont appliquées sans invite. Pour plus d’informations, consultez tsm pending-changes apply.

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