JDBC 커넥터에서 Kerberos 서비스 계정 인증 사용

버전 2020.2부터 Tableau Server는 JDBC 커넥터에서 Kerberos 인증을 지원합니다.

Tableau Server가 Kerberos 서비스 계정을 사용하여 데이터베이스에 액세스하도록 구성할 수 있습니다. 이 시나리오에서 Tableau Server는 서비스 계정('서비스 계정' 서비스 계정이라고도 함)을 사용하여 데이터베이스에 연결합니다. 이 시나리오를 "서비스 계정 인증"이라고 합니다.

자세한 내용은 '서비스 계정' 서비스 계정을 참조하십시오.

Tableau Server에서 '서비스 계정' 인증을 사용하려면 먼저 통합 인증을 사용하는 통합 문서 또는 데이터 원본을 만들어야 합니다. Tableau Server에 게시할 때 '서비스 계정' 인증을 사용하는 옵션이 나타납니다. 웹 작성을 사용하여 데이터 원본을 만들 때 통합 인증을 선택하는 경우 '서비스 계정' 인증이 기본 작동입니다.

지원되는 데이터 원본

Tableau는 다음 데이터 원본에서 JDBC Kerberos 위임을 지원합니다.

  • Oracle
  • PostgreSQL

JDBC 기반 커넥터를 사용하여 Oracle 데이터 원본에 대한 '서비스 계정' 인증을 구성하는 경우 이 항목의 절차를 따르십시오. 그렇지 않고 Tableau Server에서 실행 중인 커넥터가 네이티브 드라이버를 사용하는 경우 이 항목의 단계를 수행할 필요가 없습니다. 대신 '서비스 계정' 서비스 계정 변경 항목에 설명된 대로 '서비스 계정' 서비스 계정을 만드는 단계를 수행합니다.

요구 사항

Kerberos 위임에는 Active Directory가 필요합니다.

  • LDAP - Active Directory를 사용하도록 Tableau Server 정보 저장소를 구성해야 합니다.
  • MIT KDC는 지원되지 않습니다.

구성 프로세스

이 섹션에서는 Kerberos RunAs 인증을 사용하도록 설정하는 프로세스의 예를 제공합니다.

  1. ‘서비스 계정’ 서비스 계정에 대한 keytab 파일을 만듭니다.

    다음 예제에서는 JDK에 제공되는 ktab 도구를 사용합니다. 이 도구는 AdoptOpenJDK(링크가 새 창에서 열림)에서 다운로드할 수 있습니다. ktab을 사용하여 keytab을 만드는 경우 UPN 형식(예: service@EXAMPLE.COM)의 로그온 사용자를 사용합니다. 서비스 사용자 이름(예: HTTP/service.example.com@EXAMPLE.COM)을 사용해서는 안 됩니다. ktpass 유틸리티를 사용하여 keytab을 생성할 수도 있으며, 이 경우 두 사용자 이름 형식 중 하나를 사용할 수 있습니다.

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

    Tableau Server는 ‘서비스 계정’ 서비스 계정 및 관련 keytab을 사용하여 인증하고 데이터베이스에 직접 연결합니다.

  2. keytab 파일을 Tableau Server 데이터 디렉터리에 복사하고 '서비스 계정' 서비스 계정이 keytab 파일을 액세스하고 읽을 수 있는지 확인합니다. 기본적으로 Tableau Server 데이터 디렉터리는 C:\ProgramData\Tableau에 위치합니다. 분산 배포에서 Tableau Server를 실행하는 경우 클러스터의 각 노드에서 이 단계를 수행합니다.

  3. 다음 TSM 명령을 실행하여 '서비스 계정' 서비스 계정과 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

    일부 경우 TSM이 --force-keys에 관한 오류를 반환할 수 있습니다. 이 오류가 발생하면 --force-keys 매개 변수를 인수에 추가하고 명령을 다시 실행합니다.

  4. krb5.conf 파일을 만들고 모든 Tableau Server 노드의 C:\Windows에 설치합니다.

    조직의 컴퓨터에 이미 krb5.ini 파일이 배포되어 있는 경우 해당 파일을 복사하여 Tableau Server에 사용합니다. 자세한 내용은 MIT Kerberos 설명서 항목 krb5.conf(링크가 새 창에서 열림)를 참조하십시오.

    Kerberos 구성 파일의 위치를 변경하려면 다음 TSM 명령을 실행합니다.

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

    다음은 krb5.conf 파일의 예입니다. Tableau Support는 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. 다음 TSM 명령을 실행하여 변경 사항을 Tableau Server에 적용합니다.

    tsm pending-changes apply

    보류 중인 변경 내용을 적용하려면 서버를 다시 시작해야 하는 경우 pending-changes apply 명령은 서버가 다시 시작됨을 알리는 메시지를 표시합니다. 서버가 중지된 경우에도 이 메시지가 표시되지만 이 경우 다시 시작은 없습니다. --ignore-prompt 옵션을 사용하여 이 메시지를 표시하지 않을 수 있지만 다시 시작 동작은 변경되지 않습니다. 변경 내용을 적용해도 다시 시작할 필요가 없는 경우 메시지 없이 변경 내용이 적용됩니다. 자세한 내용은 tsm pending-changes apply를 참조하십시오.