Activer l’authentification Kerberos Exécuter en tant que pour les connecteurs JDBC

Depuis la version 2020.2, Tableau Server prend en charge l’authentification Kerberos pour les connecteurs JDBC.

Vous pouvez configurer Tableau Server de manière à utiliser un compte de service Kerberos pour accéder à une base de données. Dans ce scénario, Tableau Server se connecte à des bases de données avec un compte de service (également appelé « Compte Exécuter en tant que service »). Ce scénario est appelé « Authentification Exécuter en tant que »

Consultez Compte Exécuter en tant que service.

Pour utiliser l’authentification Exécuter en tant que sur Tableau Server, vous devez d’abord créer un classeur ou une source de données qui utilise l’authentification intégrée. Lorsque vous publiez sur Tableau Server, vous obtenez l’accès à l’option d’authentification Exécuter en tant que. Lors de la création d’une source de données avec la création Web, l’authentification Exécuter en tant que est l’opération par défaut si vous sélectionnez l’authentification intégrée.

Sources de données prises en charge

Tableau prend en charge la délégation JDBC avec les sources de données suivantes :

  • Oracle
  • PostgreSQL

Si vous configurez l’authentification Exécuter en tant que pour 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, vous n’avez pas à suivre les étapes de cette rubrique. Suivez plutôt les étapes pour créer un compte Exécuter en tant que service, comme indiqué dans la rubrique Modifier le compte Exécuter en tant que service.

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.

Processus de configuration

Cette section propose un exemple du processus d’activation de l’authentification Kerberos Exécuter en tant que.

  1. 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.

  2. 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.

  3. Exécutez les commandes TSM suivantes pour définir le compte Exécuter en tant que service et le chemin d’accès au fichier keytab :

    tsm configuration set -k native_api.datasource_runas_principal -v tabsrv@EXAMPLE.COM
    tsm configuration set -k native_api.datasource_runas_keytab_path -v <path-to-file>kerberos.keytab

    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.

  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 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.