เปิดใช้งานการตรวจสอบสิทธิ์เรียกใช้งานในฐานะของ Kerberos สำหรับตัวเชื่อมต่อ JDBC

ในเวอร์ชัน 2020.2 Tableau Server รองรับการตรวจสอบสิทธิ์ Kerberos สำหรับตัวเชื่อมต่อ JDBC

คุณสามารถกำหนดค่า Tableau Server เพื่อใช้บัญชีบริการ Kerberos ในการเข้าถึงฐานข้อมูลได้ ในสถานการณ์สมมตินี้ Tableau Server จะเชื่อมต่อกับฐานข้อมูลด้วยบัญชีบริการ หรือที่เรียกว่า “บัญชีบริการเรียกใช้งานในฐานะ” สถานการณ์สมมตินี้เรียกว่า “การตรวจสอบสิทธิ์การเรียกใช้งานในฐานะ”

ดูเรียกใช้งานในฐานะบัญชีบริการ

หากต้องการใช้ “การตรวจสอบสิทธิ์การเรียกใช้งานในฐานะ” บน Tableau Server คุณจะต้องสร้างเวิร์กบุ๊กหรือแหล่งข้อมูลใน Tableau Desktop ที่ใช้การตรวจสอบสิทธิ์แบบรวมก่อน เมื่อคุณเผยแพร่ไปยัง Tableau Server คุณจะได้รับตัวเลือกให้ใช้ “การตรวจสอบสิทธิ์การเรียกใช้งานในฐานะ” เมื่อสร้างแหล่งข้อมูลด้วย “การเขียนเว็บ” “การตรวจสอบสิทธิ์การเรียกใช้งานในฐานะ” จะเป็นการดำเนินการเริ่มต้นหากคุณเลือกการตรวจสอบสิทธิ์แบบรวมเอาไว้

แหล่งข้อมูลที่รองรับ

Tableau รองรับการมอบหมาย JDBC ของ Kerberos ด้วยแหล่งข้อมูลดังต่อไปนี้

  • Oracle
  • PostgreSQL

หากคุณกำลังกำหนดค่า “การตรวจสอบสิทธิ์การเรียกใช้งานในฐานะ” สำหรับแหล่งข้อมูล Oracle โดยใช้ตัวเชื่อมต่อที่ใช้ JDBC ให้คุณทำตามขั้นตอนในหัวข้อนี้ อีกทางหนึ่ง หากตัวเชื่อมต่อที่คุณใช้งานบน Tableau Server ใช้ไดรเวอร์รุ่นดั้งเดิม คุณไม่จำเป็นจะต้องทำตามขั้นตอนในหัวข้อนี้ แต่ให้ทำตามขั้นตอนเพื่อสร้างบัญชีบริการ “เรียกใช้งานในฐานะ” ตามที่ระบุไว้ในหัวข้อเปลี่ยนการเรียกใช้งานในฐานะบัญชีบริการแทน

ข้อกำหนด

การมอบหมาย Kerberos จำเป็นต้องใช้ Active Directory

  • ต้องกำหนดค่าที่เก็บข้อมูลของ Tableau Server เพื่อใช้ LDAP - Active Directory
  • ไม่รองรับ MIT KDC

กระบวนการกำหนดค่า

ส่วนนี้จะแสดงตัวอย่างของกระบวนการเพื่อเปิดใช้งาน “การตรวจสอบสิทธิ์การเรียกใช้งานในฐานะ” ของ Kerberos

  1. สร้างไฟล์คีย์แท็บสำหรับบัญชีบริการ “เรียกใช้งานในฐานะ”

    ตัวอย่างต่อไปนี้จะใช้เครื่องมือ ktab ที่มาพร้อมกับ JDK คุณสามารถดาวน์โหลดเครื่องมือได้ที่ AdoptOpenJDK(ลิงก์จะเปิดในหน้าต่างใหม่) เมื่อใช้ ktab เพื่อสร้างคีย์แท็บ ให้ใช้หลักการเข้าสู่ระบบในรูปแบบ UPN (ตัวอย่างเช่น service@EXAMPLE.COM) และไม่ใช่ชื่อหลักของบริการ (ตัวอย่างเช่น HTTP/service.example.com@EXAMPLE.COM) คุณยังสามารถสร้างคีย์แท็บด้วยยูทิลิตี้ ktpass ซึ่งในกรณีนี้ คุณสามารถใช้ชื่อหลักรูปแบบใดก็ได้

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

    Tableau Server จะใช้บัญชีบริการ “เรียกใช้งานในฐานะ” และคีย์แท็บที่เกี่ยวข้องเพื่อตรวจสอบสิทธิ์ และทำการเชื่อมต่อโดยตรงกับฐานข้อมูล

  2. คัดลอกคีย์แท็บลงในไดเรกทอรีข้อมูลของ Tableau Server และตรวจสอบว่าบัญชีบริการ “เรียกใช้งานในฐานะ” สามารถเข้าถึงและอ่านไฟล์คีย์แท็บได้ ตามค่าเริ่มต้น ไดเรกทอรีข้อมูลของ 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 และติดตั้งใน C:\Windows บนโหนด Tableau Server ทั้งหมด

    หากคุณมีไฟล์ 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 ไม่สามารถช่วยในการสร้าง 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