Ativar delegação do Kerberos para conectores JDBC

A partir da versão 2020.2, o Tableau Server é compatível com a delegação do Kerberos para conectores JDBC.

A delegação do Kerberos permite que o Tableau Server use as credenciais do Kerberos do visualizador de uma pasta de trabalho ou exibição para executar uma consulta a pedido do visualizador. Essa opção é útil nas seguintes situações:

  • É preciso saber quem está acessando os dados (o nome do visualizador será exibido nos logs de acesso da fonte de dados).

  • Sua fonte de dados apresenta segurança em nível de linha, na qual usuários diferentes têm acesso a linhas diferentes.

Fontes de dados compatíveis

O Tableau é compatível com a autenticação RunAs do JDBC Kerberos com as seguintes fontes de dados:

  • Oracle
  • PostgreSQL

Se você estiver configurando a delegação com uma fonte de dados Oracle que usa um conector JDBC, siga o procedimento neste tópico. Como alternativa, se o conector executado no Tableau Server usar um driver nativo, siga o procedimento no tópico de ajuda, Habilitar a Delegação do Kerberos.

Requisitos

A delegação do Kerberos exige o Active Directory.

  • O armazenamento de informações do Tableau Server deve ser configurado para usar LDAP - Active Directory.
  • O MIT KDC não é compatível.

Observação: você não precisa ativar a conta Run As para atuar como sistema operacional.

Processo de configuração

Esta seção fornece um exemplo do processo para habilitar a delegação do Kerberos.

  1. O Tableau Server precisará de um ticket de serviço do Kerberos para delegar em nome do usuário que está iniciando a chamada para o banco de dados. Crie uma conta de domínio que será usada para delegar ao banco de dados fornecido. Essa conta é chamada de conta de serviço Run As. Neste tópico, o usuário de exemplo configurado como a conta Run As é tabsrv@EXAMPLE.COM.

    A conta deve ser configurada para delegação no Active Directory:

    1. Em um Servidor Windows conectado ao domínio do usuário, abra Usuários e computadores do Active Directory.
    2. Na página Propriedades da conta de serviço Run As, clique na guia Delegação e selecione Confiar neste usuário para a delegação apenas em serviços específicos e Usar qualquer protocolo de autenticação.
  2. Crie um arquivo keytab para a conta de serviço Run As.

    O exemplo a seguir usa a ferramenta ktab fornecida com o JDK. É possível baixar a ferramenta no AdoptOpenJDK(O link abre em nova janela). Ao usar o ktab para criar o keytab, use um principal de logon no formato UPN (por exemplo, service@EXAMPLE.COM) e não um nome principal de serviço (por exemplo, HTTP/service.example.com@EXAMPLE.COM). Além disso, é possível gerar keytabs com o utilitário ktpass. Nesse caso, você pode usar qualquer estilo de nome principal.

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

    O Tableau Server usará a conta de serviço Run As e o keytab associado para autenticar e fazer uma conexão direta com o banco de dados.

  3. Copie o keytab no diretório de dados do Tableau Server e verifique se a conta de serviço Run As pode acessar e ler o arquivo keytab. Por padrão, o diretório de registro do Tableau Server encontra-se em C:\ProgramData\Tableau. Se estiver executando o Tableau Server em uma implantação distribuída, realize essa etapa em cada nó no cluster.

  4. Crie um arquivo krb5.conf e instale em C:\Windows em todos os nós do Tableau Server.

    Se você já implantou um arquivo krb5.ini nos computadores da empresa, copie esse arquivo e use-o no Tableau Server. Para obter mais informações, consulte o tópico de Documentação do MIT Kerberos, krb5.conf(O link abre em nova janela).

    Para alterar a localização do arquivo de configuração Kerberos, execute o seguinte comando TSM:

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

    O exemplo a seguir mostra um arquivo krb5.conf. O Suporte do Tableau não pode ajudar na criação do 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. Execute os seguintes comandos do TSM para habilitar a delegação do Kerberos, defina a conta de serviço da delegação e associe o arquivo keytab à conta de serviço:

    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

    Em alguns casos, o TSM pode retornar um erro mencionando o --force-keys. Caso tenha recebido esse erro, execute o comando novamente com o parâmetro --force-keys anexado ao argumento.

  6. Execute o seguinte comando do TSM para aplicar as alterações ao Tableau Server:

    tsm pending-changes apply

    Se as alterações pendentes exigirem uma reinicialização do servidor, o comando pending-changes apply exibirá um prompt para que você saiba que ocorrerá uma reinicialização. Esse prompt será exibido mesmo que o servidor esteja parado, porém, nesse caso, não há reinicialização. Cancele o prompt com a opção --ignore-prompt, mas isso não altera o comportamento de reinicialização. Se as alterações não exigirem uma reinicialização, elas serão aplicadas sem um prompt. Para obter mais informações, consulte tsm pending-changes apply.

Agradecemos seu feedback!Seu feedback foi enviado. Obrigado!