เปิดใช้งานการมอบหมาย Kerberos สำหรับตัวเชื่อมต่อ JDBC

จนถึงเวอร์ชัน 2020.2 นั้น Tableau Server รองรับการมอบหมาย Kerberos สำหรับตัวเชื่อมต่อ JDBC

การมอบหมาย Kerberos ช่วยให้ Tableau Server สามารถใช้ข้อมูลเข้าสู่ระบบ Kerberos ของผู้ดูเวิร์กบุ๊กหรือมุมมองเพื่อดำเนินการสืบค้นในนามของผู้ดูได้ ซึ่งจะเป็นประโยชน์ในสถานการณ์ต่อไปนี้:

  • คุณจำเป็นต้องรู้ว่าใครกำลังเข้าถึงข้อมูล (ชื่อของผู้ดูจะปรากฏในบันทึกการเข้าถึงสำหรับแหล่งข้อมูล)

  • แหล่งข้อมูลของคุณมีการรักษาความปลอดภัยในระดับแถว ซึ่งผู้ใช้แต่ละคนจะมีสิทธิ์เข้าถึงแถวที่ต่างกัน

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

Tableau รองรับการตรวจสอบสิทธิ์ JDBC Kerberos RunAs กับแหล่งข้อมูลต่อไปนี้

  • Oracle
  • PostgreSQL

หากคุณกำหนดค่าการมอบหมายกับแหล่งข้อมูล Oracle โดยใช้ตัวเชื่อมต่อที่ใช้ JDBC ให้ทำตามขั้นตอนในหัวข้อนี้ หรือถ้าหากตัวเชื่อมต่อที่คุณใช้บน Tableau Server ใช้ไดรเวอร์ในตัว ให้ทำตามขั้นตอนในหัวข้อความช่วยเหลือเปิดใช้งานการมอบหมาย Kerberos

ข้อกำหนด

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

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

หมายเหตุ: คุณไม่จำเป็นต้องเปิดใช้งานบัญชี “เรียกใช้งานในฐานะ” เพื่อดำเนินการในฐานะระบบปฏิบัติการ

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

ส่วนนี้จะแสดงตัวอย่างของกระบวนการเพื่อเปิดใช้งานการมอบหมาย Kerberos

  1. Tableau Server จะต้องมีตั๋วบริการ Kerberos เพื่อมอบหมายในนามของผู้ใช้ที่เริ่มต้นการเรียกไปยังฐานข้อมูล คุณต้องสร้างบัญชีโดเมนที่จะใช้เพื่อมอบหมายไปยังฐานข้อมูลที่กำหนด บัญชีนี้เรียกว่าบัญชีบริการ “เรียกใช้งานในฐานะ” ในหัวข้อนี้ ตัวอย่างที่ผู้ใช้กำหนดค่าเป็นบัญชี “เรียกใช้งานในฐานะ” คือ tabsrv@EXAMPLE.COM

    บัญชีต้องได้รับการกำหนดค่าสำหรับการมอบหมายใน Active Directory:

    1. ใน Windows Server ที่เชื่อมต่อกับโดเมนผู้ใช้ ให้เปิดผู้ใช้และคอมพิวเตอร์ Active Directory
    2. ในหน้าพร็อพเพอร์ตี้สำหรับบัญชีบริการ “เรียกใช้งานในฐานะ” ให้คลิกแท็บการมอบหมายแล้วเลือกเชื่อถือผู้ใช้รายนี้สำหรับการมอบหมายไปยังบริการที่ระบุเท่านั้นและใช้โปรโตคอลการตรวจสอบสิทธิ์ใดๆ
  2. สร้างไฟล์คีย์แท็บสำหรับบัญชีบริการ “เรียกใช้งานในฐานะ”

    ตัวอย่างต่อไปนี้จะใช้เครื่องมือ 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 จะใช้บัญชีบริการ “เรียกใช้งานในฐานะ” และคีย์แท็บที่เกี่ยวข้องเพื่อตรวจสอบสิทธิ์ และทำการเชื่อมต่อโดยตรงกับฐานข้อมูล

  3. คัดลอกคีย์แท็บลงในไดเรกทอรีข้อมูลของ Tableau Server และตรวจสอบว่าบัญชีบริการ “เรียกใช้งานในฐานะ” สามารถเข้าถึงและอ่านไฟล์คีย์แท็บได้ ตามค่าเริ่มต้น ไดเรกทอรีข้อมูลของ Tableau Server จะอยู่ที่ C:\ProgramData\Tableau หากคุณกำลังเรียกใช้ Tableau Server ในการปรับใช้แบบกระจาย ให้ทำขั้นตอนนี้กับแต่ละโหนดในคลัสเตอร์

  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 ต่อไปนี้เพื่อเปิดใช้งานการมอบหมาย Kerberos ตั้งค่าบัญชีบริการการมอบหมาย และเชื่อมโยงไฟล์คีย์แท็บกับบัญชีบริการ:

    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

    ในบางกรณี TSM อาจส่งคืนข้อผิดพลาดที่กล่าวถึง --force-keys หากคุณได้รับข้อผิดพลาดนี้ ให้เรียกใช้คำสั่งอีกครั้งด้วยพารามิเตอร์ --force-keys ต่อท้ายอาร์กิวเมนต์

  6. เรียกใช้คำสั่ง TSM ต่อไปนี้เพื่อปรับใช้การเปลี่ยนแปลงกับ Tableau Server:

    tsm pending-changes apply

    หากการเปลี่ยนแปลงที่รอดำเนินการจำเป็นต้องรีสตาร์ทเซิร์ฟเวอร์ คำสั่ง pending-changes apply จะแสดงข้อความแจ้งเพื่อแจ้งให้คุณทราบว่าจะรีสตาร์ท โดยข้อความแจ้งนี้จะปรากฏขึ้นแม้ว่าเซิร์ฟเวอร์จะหยุดทำงาน แต่ในกรณีนี้จะไม่มีการรีสตาร์ท คุณสามารถระงับข้อความแจ้งได้โดยใช้ตัวเลือก --ignore-prompt แต่การดำเนินการนี้จะไม่เปลี่ยนลักษณะการรีสตาร์ท หากการเปลี่ยนแปลงไม่จำเป็นต้องใช้การรีสตาร์ท ระบบจะปรับใช้การเปลี่ยนแปลงนั้นโดยไม่มีข้อความแจ้ง หากต้องการข้อมูลเพิ่มเติม โปรดดู tsm pending-changes apply

ขอบคุณสำหรับข้อเสนอแนะของคุณส่งข้อเสนอแนะของคุณเรียบร้อยแล้ว ขอขอบคุณ