แก้ปัญหา 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