แก้ปัญหา Kerberos

คำแนะนำในการแก้ปัญหาในหัวข้อนี้แบ่งออกเป็นปัญหาที่เกี่ยวข้องกับการลงชื่อเพียงครั้งเดียว (SSO) บนเซิร์ฟเวอร์และปัญหาเกี่ยวกับแหล่งข้อมูลที่ได้รับมอบสิทธิ์

การลงชื่อเพียงครั้งเดียวใน Tableau Server

ในสภาพแวดล้อม Kerberos SSO ผู้ใช้ที่ลงชื่อเข้าใช้ Tableau Server จากเว็บเบราว์เซอร์หรือ Tableau Desktop อาจเห็นข้อความระบุว่า Tableau Server ไม่สามารถลงชื่อเข้าใช้โดยอัตโนมัติ (โดยใช้การลงชื่อเพียงครั้งเดียว) ขอแนะนำให้ระบุชื่อผู้ใช้และรหัสผ่าน Tableau Server แทน

การแก้ปัญหาข้อผิดพลาดในการลงชื่อเข้าใช้บนคอมพิวเตอร์ไคลเอ็นต์

  • ป้อนชื่อผู้ใช้และรหัสผ่าน หากต้องการตรวจสอบการเข้าถึง Tableau Server ทั่วไปของผู้ใช้ ให้เข้าสู่ระบบโดยป้อนชื่อผู้ใช้และรหัสผ่าน

    หากข้อมูลเข้าสู่ระบบเหล่านี้ล้มเหลว ผู้ใช้อาจไม่ใช่ผู้ใช้บน Tableau Server เพื่อให้ Kerberos SSO ทำงานได้ ผู้ใช้ต้องสามารถเข้าถึง Tableau Server และต้องได้รับทิกเก็ตที่ใช้ยืนยันคนที่ขอเข้าสู่ระบบ หรือ Ticket Granting Ticket (TGT) โดย Active Directory (ตามที่อธิบายไว้ในรายการ TGT ภายหลังในรายการนี้)

  • ตรวจสอบข้อมูลเข้าสู่ระบบ SSO ของผู้ใช้รายอื่น ลองเชื่อมต่อด้วย SSO กับ Tableau Server โดยใช้บัญชีผู้ใช้อื่น หากผู้ใช้ทั้งหมดได้รับผลกระทบ ปัญหาอาจอยู่ที่การกำหนดค่า Kerberos

  • ใช้คอมพิวเตอร์เครื่องอื่นที่ไม่ใช่คอมพิวเตอร์เซิร์ฟเวอร์ Kerberos SSO จะไม่ทำงานเมื่อคุณเข้าสู่ระบบ Tableau Server บน localhost ไคลเอ็นต์ต้องเชื่อมต่อจากคอมพิวเตอร์เครื่องอื่นที่ไม่ใช่คอมพิวเตอร์ Tableau Server

  • ใช้ชื่อเซิร์ฟเวอร์ ไม่ใช่ที่อยู่ IP Kerberos SSO จะไม่ทำงานหากคุณป้อนที่อยู่ IP เป็นชื่อ Tableau Server นอกจากนี้ ชื่อเซิร์ฟเวอร์ที่คุณใช้เพื่อเข้าถึง Tableau Server จะต้องตรงกับชื่อที่ใช้ในการกำหนดค่า Kerberos (ดู รายการตารางคีย์ ด้านล่าง)

  • ยืนยันว่าไคลเอ็นต์มี TGT คอมพิวเตอร์ไคลเอ็นต์ต้องมี TGT (Ticket Granting Ticket) จากโดเมน Active Directory ระบบไม่รองรับการมอบหมายที่จำกัด โดยพร็อกซีการได้รับทิกเก็ต

    ในการยืนยันว่าคอมพิวเตอร์ไคลเอนต์มี TGT ให้ทำดังต่อไปนี้

    • ใน Windows ให้เปิดข้อความแจ้งคำสั่ง แล้วพิมพ์ข้อความต่อไปนี้: klist tgt

    • ใน Mac ให้เปิดหน้าต่างเทอร์มินัล แล้วพิมพ์ดังต่อไปนี้: klist

    ผลลัพธ์ควรแสดง TGT สำหรับผู้ใช้/โดเมนที่พยายามตรวจสอบสิทธิ์กับ Tableau Server

    คอมพิวเตอร์ไคลเอ็นต์อาจไม่มี TGT ในสถานการณ์ต่อไปนี้

    • คอมพิวเตอร์ไคลเอ็นต์ใช้การเชื่อมต่อ VPN

    • คอมพิวเตอร์ไคลเอ็นต์ไม่ได้เข้าร่วมกับโดเมน (ตัวอย่างเช่น เป็นคอมพิวเตอร์ที่ใช้งานไม่ได้ที่ใช้ในที่ทำงาน)

    • ผู้ใช้เข้าสู่ระบบคอมพิวเตอร์ด้วยบัญชีในเครื่อง (ไม่ใช่โดเมน)

    • คอมพิวเตอร์คือ Mac ที่ไม่ได้ใช้ Active Directory เป็นเซิร์ฟเวอร์บัญชีเครือข่าย

  • ยืนยันเวอร์ชันและการตั้งค่าของเบราว์เซอร์ สำหรับการเข้าสู่ระบบเว็บเบราว์เซอร์ ตรวจสอบให้แน่ใจว่าเบราว์เซอร์รองรับ Kerberos และกำหนดค่าอย่างถูกต้อง หากจำเป็น

    • Internet Explorer (IE) และ Chrome ทำงาน “ทันทีหลังจากติดตั้งโดยไม่ต้องปรับแต่ง” บน Windows

    • Safari ทำงาน “ทันทีหลังจากติดตั้งโดยไม่ต้องปรับแต่ง” บน Mac

    • Firefox ต้องใช้การกำหนดค่าเพิ่มเติม

    หากต้องการข้อมูลเพิ่มเติม โปรดดู ไคลเอ็นต์ Tableau รองรับ SSO ของ Kerberos

การแก้ปัญหาข้อผิดพลาดในการเข้าสู่ระบบบนเซิร์ฟเวอร์

หากคุณไม่สามารถแก้ปัญหาจากคอมพิวเตอร์ไคลเอ็นต์ได้ ขั้นตอนต่อไปคือการแก้ปัญหาบนคอมพิวเตอร์ที่ใช้ Tableau Server ผู้ดูแลระบบสามารถใช้ ID คำขอเพื่อค้นหาความพยายามในการเข้าสู่ระบบในบันทึก Apache บน Tableau Server

  • ไฟล์บันทึก ตรวจสอบ Apache error.log เพื่อหาข้อผิดพลาดพร้อมเวลา/วันที่ที่แน่นอนของการพยายามเข้าสู่ระบบที่ล้มเหลว

    • ในไฟล์เก็บถาวร Ziplog บันทึกเหล่านี้อยู่ในโฟลเดอร์ \httpd

    • บน Tableau Server บันทึกเหล่านี้อยู่ในโฟลเดอร์ \data\tabsvc\logs\httpd\

  • รายการตารางคีย์ หากรายการ error.log มีข้อความว่า “ไม่มีรายการตารางคีย์ที่ตรงกับ HTTP/<servername>.<domain>.<org>@” ตัวอย่างเช่น:

    [Fri Oct 24 10:58:46.087683 2014] [:error] [pid 2104:tid 4776] [client 10.10.1.62:56789] gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, No key table entry found matching HTTP/servername.domain.com@)

    ข้อผิดพลาดนี้เป็นผลมาจากความไม่ตรงกันข้อใดข้อหนึ่งต่อไปนี้

    • Tableau Server URL - URL ที่คอมพิวเตอร์ไคลเอ็นต์ใช้เพื่อเข้าถึงเซิร์ฟเวอร์

      ซึ่งคือชื่อที่คุณพิมพ์ลงใน Tableau Desktop หรือแถบที่อยู่ของเบราว์เซอร์ อาจเป็นชื่อแบบย่อให้สั้นลง (http://servername) หรือชื่อโดเมนที่มีคุณสมบัติครบถ้วน (http://servername.domain.com)

    • การค้นหา DNS แบบย้อนกลับ สำหรับที่อยู่ IP ของเซิร์ฟเวอร์

      ซึ่งจะค้นหาชื่อ DNS โดยใช้ที่อยู่ IP

      ที่ข้อความแจ้งคำสั่ง ให้พิมพ์:

      ping servername

      พร้อมที่อยู่ IP ที่ส่งคืนโดยการ ping เซิร์ฟเวอร์ ให้ทำการค้นหา DNS แบบย้อนกลับ:

      nslookup <ip address>

      คำสั่ง nslookup จะส่งคืนข้อมูลเครือข่ายสำหรับที่อยู่ IP ในส่วน คำตอบที่ไม่ได้รับอนุญาต ของคำตอบ ให้ตรวจสอบว่าชื่อโดเมนที่มีคุณสมบัติครบถ้วน (FQDN) ตรงกับค่าที่กำหนดค่าไว้ต่อไปนี้ 

      • ไฟล์ Kerberos .keytab

      • ชื่อบริการหลัก (SPN) สำหรับเซิร์ฟเวอร์

      หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าค่าเหล่านี้ โปรดดู การทำความเข้าใจข้อกำหนดของ Keytab.

ตรวจสอบสคริปต์การกำหนดค่า Kerberos

คุณอาจต้องแก้ไขคำสั่ง ktpass ที่คุณได้ใช้สร้างไฟล์ keytab สำหรับตัวแปรสภาวะแวดล้อม ตรวจสอบขั้นตอนการแก้ปัญหาในบทความฐานความรู้ไม่สามารถสร้างการกำหนดค่าสคริปต์ Kerberos สำหรับ Tableau Server(ลิงก์จะเปิดในหน้าต่างใหม่)

SSO ของแหล่งข้อมูล

ความล้มเหลวในการเข้าถึงแหล่งข้อมูลที่ได้รับมอบสิทธิ์

ตรวจสอบไฟล์บันทึก vizqlserver สำหรับ "workgroup-auth-mode”

  • ในไฟล์เก็บถาวร Ziplog บันทึกเหล่านี้อยู่ในโฟลเดอร์ \vizqlserver\Logs

  • บน Tableau Server บันทึกเหล่านี้อยู่ในโฟลเดอร์ \data\tabsvc\vizqlserver\Logs

ค้นหา "workgroup-auth-mode" ในไฟล์บันทึก ซึ่งควรระบุว่า "kerberos-impersonate" ไม่ใช่ "as-is”

การกำหนดค่าการมอบหมาย Kerberos หลายโดเมน

Tableau Server สามารถมอบหมายผู้ใช้จากโดเมน Active Directory อื่น หากฐานข้อมูลของคุณใช้ MIT Kerberos คุณอาจต้องปรับ Kerberos หลักเป็นการแมปผู้ใช้ฐานข้อมูล โดยเฉพาะอย่างยิ่ง คุณจะต้องอัปเดต krb5.conf ด้วยกฎสำหรับ Kerberos realm (ชื่อกลุ่มระบบเครือข่าย) แต่ละรายการที่ผู้ใช้จะเชื่อมต่อ ใช้แท็ก auth_to_local ในส่วน [realms] เพื่อแมปชื่อหลักกับชื่อผู้ใช้ในเครื่อง

ตัวอย่างเช่น พิจารณาผู้ใช้ EXAMPLE\jsmith ซึ่งมี Kerberos หลักคือ jsmith@EXAMPLE.LAN ในกรณีนี้ Tableau Server จะระบุผู้ใช้ที่ได้รับมอบสิทธิ์ jsmith@EXAMPLE Tableau Server จะใช้ชื่อแทนโดเมนดั้งเดิมของ Active Directory เป็น Kerberos Realm

ฐานข้อมูลเป้าหมายอาจมีกฎอยู่แล้ว เช่น ต่อไปนี้เพื่อแมปผู้ใช้ jsmith@EXAMPLE.LAN กับผู้ใช้ฐานข้อมูล jsmith

EXAMPLE.LAN = {
   RULE:[1:$1@$0](.*@EXAMPLE.LAN)s/@.*//
   DEFAULT
}

เพื่อรองรับการมอบหมาย คุณต้องเพิ่มกฎอื่นเพื่อแมป jsmith@EXAMPLE กับผู้ใช้ฐานข้อมูล:

EXAMPLE.LAN = {
   RULE:[1:$1@$0](.*@EXAMPLE.LAN)s/@.*//
   RULE:[1:$1@$0](.*@EXAMPLE)s/@.*//
   DEFAULT
}

ดูหัวข้อเอกสาร MIT Kerberos krb5.conf(ลิงก์จะเปิดในหน้าต่างใหม่) หากต้องการทราบข้อมูลเพิ่มเติม

การมอบหมายที่จำกัดข้ามโดเมน

ในสถานการณ์ข้ามโดเมนบางสถานการณ์ที่ KDC กำลังทำงานบน Windows Server ก่อน Windows 2012 การมอบหมายอาจล้มเหลว ข้อผิดพลาดที่คุณอาจเห็น ได้แก่

  • อินเทอร์เฟซเครือข่าย SQL Server: ระบบไม่สามารถติดต่อตัวควบคุมโดเมนเพื่อให้บริการคำขอการตรวจสอบสิทธิ์ โปรดลองอีกครั้งในภายหลัง
  • เนทีฟไคลเอ็นต์ SQL Server: ไม่สามารถสร้างบริบท SSPI
  • ตัวควบคุมโดเมนส่งคืน: KRB-ERR-POLICY error with a status STATUS_CROSSREALM_DELEGATION_FAILURE (0xc000040b).

ข้ามโดเมนหมายถึงสถานการณ์ที่ Tableau Server ทำงานในโดเมนที่แตกต่างจากแหล่งข้อมูลด้วยบัญชีบริการต่างกัน ตัวอย่าง:

  • Tableau Server ทำงานบน โดเมนA ด้วยบัญชีบริการ โดเมนA
  • SQL Server ทำงานบน โดเมนB ด้วยบัญชีบริการ โดเมนB

การมอบหมายที่จำกัดแบบดั้งเดิมจะใช้งานได้ก็ต่อเมื่อเซิร์ฟเวอร์ทั้งสองอยู่ในโดเมนเดียวกัน ผู้ใช้สามารถมาจากโดเมนอื่น

หากคุณเห็นข้อผิดพลาดที่ระบุไว้ข้างต้น เพื่อเปิดใช้งานสถานการณ์นี้ ผู้ดูแลระบบ Active Directory ของคุณควรลบการมอบหมายที่จำกัดแบบดั้งเดิมซึ่งกำหนดค่าไว้ในบัญชีการมอบสิทธิ์ การลบการมอบหมายสามารถทำได้ด้วยเครื่องมือการจัดการ Active Directory หรือโดยการเอาค่าที่เกี่ยวข้องกับพร็อพเพอร์ตี้ Active Directory ออก msDS-AllowedToDelegateTo.

หากคุณต้องการเก็บรักษาการมอบหมายโดเมนเดียวที่มีอยู่ควบคู่ไปกับการรับมอบสิทธิ์ข้ามโดเมน คุณต้องกำหนดค่าทั้งคู่โดยใช้การมอบหมายที่จำกัดตามทรัพยากร

หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับ Kerberos และการมอบหมายที่จำกัด โปรดดูหัวข้อ Microsoft ภาพรวมการมอบหมายที่จำกัดของ Kerberos(ลิงก์จะเปิดในหน้าต่างใหม่)

การเขียนเว็บ

มีสถานการณ์การเขียนเว็บสองสถานการณ์ที่ไม่รองรับการมอบหมาย Kerberos: ฟีเจอร์ "เชื่อมต่อกับข้อมูลบนเว็บ" และ "สร้างแหล่งข้อมูลบนเว็บ" ยังไม่รองรับการมอบหมาย โดยเฉพาะอย่างยิ่ง หากคุณสร้างแหล่งข้อมูลที่ใช้ Kerberos กับการเขียนเว็บ แหล่งข้อมูลจะใช้การตรวจสอบสิทธิ์บัญชีบริการ “เรียกใช้เป็น” หากคุณต้องการใช้การมอบหมาย Kerberos เพื่อสร้างแหล่งข้อมูล คุณต้องเผยแพร่ด้วย Tableau Desktop หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับบัญชีบริการ “เรียกใช้เป็น” โปรดดู การเข้าถึงข้อมูลด้วยบัญชีบริการ “เรียกใช้งานในฐานะ”

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