แชร์ผ่าน


กําหนดค่า Kerberos เพื่อใช้รายงาน Power BI

เรียนรู้วิธีการกําหนดค่าเซิร์ฟเวอร์รายงานของคุณสําหรับการรับรองความถูกต้อง Kerberos ไปยังแหล่งข้อมูลที่ใช้ภายในรายงาน Power BI ของคุณสําหรับสภาพแวดล้อมแบบกระจาย

หมายเหตุ

วิดีโอนี้อาจใช้เซิร์ฟเวอร์รายงาน Power BI รุ่นก่อนหน้านี้

เซิร์ฟเวอร์รายงาน Power BI รวมถึงความสามารถในการโฮสต์รายงาน Power BI เซิร์ฟเวอร์รายงานของคุณสนับสนุนแหล่งข้อมูลจํานวนมาก ในขณะที่บทความนี้มุ่งเน้นโดยเฉพาะ SQL Server Analysis Services คุณสามารถใช้แนวคิดและนําไปใช้กับแหล่งข้อมูลอื่น ๆ เช่น SQL Server ได้

คุณสามารถติดตั้ง เซิร์ฟเวอร์รายงาน Power BI, SQL Server และ Analysis Services บนคอมพิวเตอร์เครื่องเดียวได้ และทุกอย่างควรใช้งานได้โดยไม่ต้องกําหนดค่าเพิ่มเติม ซึ่งยอดเยี่ยมสําหรับสภาพแวดล้อมการทดสอบ คุณอาจพบข้อผิดพลาดถ้าคุณมีบริการเหล่านี้ติดตั้งอยู่บนเครื่องที่แยกต่างหากที่เรียกว่าสภาพแวดล้อมแบบกระจาย ในสภาพแวดล้อมเช่นนี้ คุณจะต้องใช้การรับรองความถูกต้อง Kerberos ต้องมีการกําหนดค่าที่จําเป็นสําหรับการนําขั้นตอนนี้ไปใช้

โดยเฉพาะอย่างยิ่ง คุณจะต้องกําหนดค่าการมอบสิทธิ์ที่บังคับ คุณอาจมีการกําหนดค่า Kerberos ในสภาพแวดล้อมของคุณ แต่ Kerberos อาจไม่ถูกกําหนดค่าการมอบสิทธิ์ที่บังคับ

ข้อผิดพลาดในการเรียกใช้รายงาน

ถ้าเซิร์ฟเวอร์รายงานของคุณไม่ได้กําหนดค่าอย่างถูกต้อง คุณอาจได้รับข้อผิดพลาดต่อไปนี้

Something went wrong.

We couldn't run the report because we couldn't connect to its data source. The report or data source might not be configured correctly. 

ในรายละเอียดทางเทคนิค คุณจะเห็นข้อความต่อไปนี้

We couldn't connect to the Analysis Services server. The server forcibly closed the connection. To connect as the user viewing the report, your organization must have configured Kerberos constrained delegation.

Screenshot of Power B I Reports showing error message related to issues connecting with Analysis Services server.

การกําหนดค่าการมอบสิทธิ์แบบจํากัดของ Kerberos

มีหลายรายการที่จําเป็นต้องกําหนดค่าลําดับเพื่อให้การมอบหมายที่มีข้อจํากัดของ Kerberos ทํางานได้ ซึ่งรวมถึงชื่อบริการหลัก (SPN) และการตั้งค่าการมอบหมายบนบัญชีบริการ

หมายเหตุ

ในการกําหนดค่า SPN และการตั้งค่าการรับมอบสิทธิ์ คุณต้องเป็นผู้ดูแลโดเมน

เราจะต้องกําหนดค่าหรือตรวจสอบรายการต่อไปนี้

  1. ชนิดการรับรองความถูกต้องภายในการกําหนดค่าเซิร์ฟเวอร์รายงาน
  2. SPN สําหรับบัญชีผู้ใช้บริการเซิร์ฟเวอร์รายงาน
  3. SPN สําหรับบริการ Analysis Services
  4. SPN สําหรับบริการ SQL Browser บนเครื่องของ Analysis Services ซึ่งมีไว้สําหรับอินสแตนซ์ที่มีชื่อเท่านั้น
  5. การตั้งค่าการรับมอบสิทธิ์บนบัญชีผู้ใช้บริการเซิร์ฟเวอร์รายงาน

ชนิดการรับรองความถูกต้องภายในการกําหนดค่าเซิร์ฟเวอร์รายงาน

เราจําเป็นต้องกําหนดค่าชนิดการรับรองความถูกต้องสําหรับเซิร์ฟเวอร์รายงานเพื่ออนุญาตให้สามารถรับมอบสิทธิ์ Kerberos ที่บังคับได้ ซึ่งทําได้ภายในไฟล์ rsreportserver.config ตําแหน่งเริ่มต้นสําหรับไฟล์นี้คือC:\Program Files\Microsoft Power BI Report Server\PBIRS\ReportServer

ภายในไฟล์ rsreportserver.config คุณจะต้องการปรับส่วน การรับรองความถูกต้อง/AuthenticationTypes ให้ดียิ่งขึ้น

เราต้องตรวจสอบให้แน่ใจว่า RSWindowsNegotiate อยู่ในรายการและเป็นส่วนแรกในรายการของชนิดการรับรองความถูกต้อง ซึ่งควรมีลักษณะคล้ายต่อไปนี้

<AuthenticationTypes>
    <RSWindowsNegotiate/>
    <RSWindowsNTLM/>
</AuthenticationTypes>

ถ้าคุณต้องเปลี่ยนไฟล์การกําหนดค่า คุณจะต้องหยุดและเริ่มใช้งานเซิร์ฟเวอร์รายงานเพื่อตรวจสอบให้แน่ใจว่าการเปลี่ยนแปลงจะมีผล

สําหรับข้อมูลเพิ่มเติม ดู ที่กําหนดค่าการรับรองความถูกต้องของ Windows บนเซิร์ฟเวอร์รายงาน

SPN สําหรับบัญชีบริการเซิร์ฟเวอร์รายงาน

ถัดไป เราจําเป็นต้องตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์รายงานมี SPN ที่ถูกต้องพร้อมใช้งานหรือไม่ ซึ่งจะยึดตามบัญชีผู้ใช้บริการที่มีการกําหนดค่าสําหรับเซิร์ฟเวอร์รายงาน

บัญชีบริการเสมือนหรือบริการเครือข่าย

ถ้าเซิร์ฟเวอร์รายงานของคุณได้รับการกําหนดค่าสําหรับบัญชีบัญชีบริการเสมือนหรือบัญชีบริการเครือข่าย คุณไม่ควรต้องทําอะไรอีก สิ่งเหล่านี้อยู่ในบริบทของบัญชีเครื่อง บัญชีเครื่องจะมี SPN โฮสต์ตามค่าเริ่มต้น ซึ่งจะครอบคลุมบริการ HTTP และจะใช้โดยเซิร์ฟเวอร์รายงาน

ถ้าคุณกําลังใช้ชื่อเซิร์ฟเวอร์เสมือนที่ชื่อไม่เหมือนกับบัญชีเครื่อง รายการโฮสต์จะไม่ครอบคลุมและคุณจะต้องเพิ่ม SPN สําหรับชื่อโฮสต์เซิร์ฟเวอร์เสมือนด้วยตนเอง

บัญชีผู้ใช้โดเมน

ถ้าเซิร์ฟเวอร์รายงานของคุณถูกกําหนดค่าให้ใช้บัญชีผู้ใช้โดเมน คุณจะต้องสร้าง HTTP SPN บนบัญชีผู้ใช้นั้นด้วยตนเอง ซึ่งสามารถทําได้โดยใช้เครื่องมือ setspn ที่มาพร้อมกับ Windows

หมายเหตุ

คุณจะต้องมีสิทธิ์ผู้ดูแลระบบโดเมนเพื่อสร้าง SPN ขึ้น

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

<Service>/<Host>:<port>

เซิร์ฟเวอร์รายงาน Power BI จะใช้บริการของ HTTP สําหรับ HTTP SPN คุณจะไม่ทํารายการพอร์ต บริการที่เราสนใจที่นี่คือ HTTP โฮสต์ของ SPN จะเป็นชื่อที่คุณใช้ใน URL หนึ่ง โดยทั่วไปแล้ว นี่คือชื่อเครื่อง ถ้าคุณอยู่เบื้องหลังตัวปรับสมดุลการโหลด ชื่อนี้อาจเป็นชื่อเสมือน

หมายเหตุ

คุณสามารถตรวจสอบ URL ได้ด้วยการดูสิ่งที่คุณใส่ลงในแถบที่อยู่ของเบราว์เซอร์ หรือคุณสามารถค้นหาในตัวจัดการการกําหนดค่าเซิร์ฟเวอร์รายงานบนแท็บ Web Portal URL

ถ้าชื่อเครื่องของคุณคือ ContosoRS SPN ของคุณจะเป็นดังต่อไปนี้

ประเภท SPN Spn
ชื่อโดเมนแบบเต็มที่มีคุณสมบัติ (FQDN) HTTP/ContosoRS.contoso.com
Netbios HTTP/ContosoRS

ตําแหน่งที่ตั้งของ SPN

แล้วคุณใส่ SPN นี้ที่ไหน? SPN จะถูกวางไว้บนสิ่งที่คุณกําลังใช้สําหรับบัญชีบริการของคุณ ถ้าคุณกําลังใช้บัญชีผู้ใช้บริการเสมือนหรือบริการเครือข่าย นี่จะเป็นบัญชีเครื่อง แม้ว่าเราได้กล่าวถึงแล้วก่อนหน้านี้ คุณควรจําเป็นต้องทําสิ่งนี้สําหรับ URL เสมือนเท่านั้น ถ้าคุณกําลังใช้ผู้ใช้โดเมนสําหรับบัญชีผู้ใช้บริการเซิร์ฟเวอร์รายงาน คุณจะใส่ SPN ที่บัญชีผู้ใช้โดเมนนั้น

ตัวอย่างเช่น ถ้าเราใช้บัญชีผู้ใช้บริการเครือข่าย และชื่อเครื่องของเราคือ ContosoRS เราจะวาง SPN บน ContosoRS

ถ้าเราใช้บัญชีผู้ใช้โดเมนของ RSService เราจะวาง SPN บน RSService

ใช้ SetSPN เพื่อเพิ่ม SPN ดังกล่าว

เราสามารถใช้เครื่องมือ SetSPN เพื่อเพิ่ม SPN ดังกล่าวได้ เราจะทําตามตัวอย่างเดียวกันกับด้านบนด้วยบัญชีผู้ใช้เครื่องและบัญชีผู้ใช้โดเมน

การวาง SPN ดังกล่าวบนบัญชีเครื่องสําหรับทั้ง FQDN และ NetBIOS SPN จะมีลักษณะคล้ายกับรายการต่อไปนี้ถ้าเราใช้ URL แบบเสมือนของ contosoreports

Setspn -a HTTP/contosoreports.contoso.com ContosoRS
Setspn -a HTTP/contosoreports ContosoRS

การวาง SPN ดังกล่าวบนบัญชีผู้ใช้โดเมนสําหรับทั้ง FQDN และ NetBIOS SPN จะมีลักษณะคล้ายกับรายการต่อไปนี้ถ้าคุณใช้ชื่อเครื่องสําหรับโฮสต์ของ SPN

Setspn -S HTTP/ContosoRS.contoso.com RSService
Setspn -S HTTP/ContosoRS RSService

SPN สําหรับบริการ Analysis Services

SPN สําหรับ Analysis Services จะคล้ายกับที่เราดําเนินการกับเซิร์ฟเวอร์รายงาน Power BI รูปแบบของ SPN จะแตกต่างกันเล็กน้อยถ้าคุณมีอินสแตนซ์ที่มีชื่อแล้ว

สําหรับ Analysis Services เราใช้บริการของ MSOLAPSvc.3 เราจะระบุชื่ออินสแตนซ์สําหรับตําแหน่งที่ตั้งพอร์ตบน SPN ส่วนโฮสต์ของ SPN จะเป็นชื่อเครื่องหรือชื่อเสมือนของคลัสเตอร์

ตัวอย่างของ SPN ของ Analysis Services จะมีลักษณะดังต่อไปนี้

ขนิด รูปแบบ
อินสแตนซ์เริ่มต้น MSOLAPSvc.3/ContosoAS.contoso.com
MSOLAPSvc.3/ContosoAS
อิน สแตนซ์ MSOLAPSvc.3/ContosoAS.contoso.com:INSTANCENAME
MSOLAPSvc.3/ContosoAS:INSTANCENAME

การวาง SPN จะคล้ายกับสิ่งที่กล่าวถึงด้วยเซิร์ฟเวอร์รายงาน Power BI ซึ่งจะยึดตามบัญชีผู้ใช้บริการ ถ้าคุณกําลังใช้ระบบภายในเครื่องหรือบริการเครือข่าย คุณจะอยู่ในบริบทของบัญชีเครื่อง ถ้าคุณกําลังใช้บัญชีผู้ใช้โดเมนสําหรับอินสแตนซ์ Analysis Services คุณจะวาง SPN ที่บัญชีผู้ใช้โดเมนนั้น

ใช้ SetSPN เพื่อเพิ่ม SPN ดังกล่าว

เราสามารถใช้เครื่องมือ SetSPN เพื่อเพิ่ม SPN ดังกล่าวได้ สําหรับตัวอย่างนี้ ชื่อเครื่องจะเป็น ContosoAS

การวาง SPN ดังกล่าวบนบัญชีเครื่องสําหรับทั้ง FQDN และ NetBIOS SPN จะมีลักษณะคล้ายกับรายการต่อไปนี้

Setspn -S MSOLAPSvc.3/ContosoAS.contoso.com ContosoAS
Setspn -S MSOLAPSvc.3/ContosoAS ContosoAS

การวาง SPN ดังกล่าวบนบัญชีผู้ใช้โดเมนสําหรับทั้ง FQDN และ NetBIOS SPN จะมีลักษณะคล้ายกับรายการต่อไปนี้

Setspn -S MSOLAPSvc.3/ContosoAS.contoso.com OLAPService
Setspn -S MSOLAPSvc.3/ContosoAS OLAPService

SPN สําหรับบริการ SQL Browser

ถ้าคุณมีอินสแตนซ์ Analysis Services ที่มีชื่อแล้ว คุณยังจําเป็นต้องตรวจสอบให้แน่ใจว่าคุณมี SPN สําหรับบริการเบราว์เซอร์ดังกล่าวด้วย ซึ่งมีเฉพาะใน Analysis Services

SPN สําหรับ SQL Browser จะคล้ายกับที่เราดําเนินการกับเซิร์ฟเวอร์รายงาน Power BI

สําหรับ SQL Browser เราใช้บริการของ MSOLAPDisco.3 เราจะระบุชื่ออินสแตนซ์สําหรับตําแหน่งที่ตั้งพอร์ตบน SPN ส่วนโฮสต์ของ SPN จะเป็นชื่อเครื่องหรือชื่อเสมือนของคลัสเตอร์ คุณไม่จําเป็นต้องระบุสิ่งใดสําหรับชื่อหรือพอร์ตตัวอย่าง

ตัวอย่างของ SPN ของ Analysis Services จะมีลักษณะดังต่อไปนี้

MSOLAPDisco.3/ContosoAS.contoso.com
MSOLAPDisco.3/ContosoAS

การวาง SPN จะคล้ายกับสิ่งที่กล่าวถึงด้วยเซิร์ฟเวอร์รายงาน Power BI ความแตกต่างที่นี่คือ SQL Browser ทํางานภายใต้บัญชีระบบภายในเครื่องเสมอ ซึ่งหมายความว่า SPN จะไปที่บัญชีเครื่องเสมอ

ใช้ SetSPN เพื่อเพิ่ม SPN ดังกล่าว

เราสามารถใช้เครื่องมือ SetSPN เพื่อเพิ่ม SPN ดังกล่าวได้ สําหรับตัวอย่างนี้ ชื่อเครื่องจะเป็น ContosoAS

การวาง SPN ดังกล่าวบนบัญชีเครื่องสําหรับทั้ง FQDN และ NetBIOS SPN จะมีลักษณะคล้ายกับรายการต่อไปนี้

Setspn -S MSOLAPDisco.3/ContosoAS.contoso.com ContosoAS
Setspn -S MSOLAPDisco.3/ContosoAS ContosoAS

สําหรับข้อมูลเพิ่มเติม ดู จําเป็นต้องมี SPN สําหรับบริการเบราว์เซอร์เซิร์ฟเวอร์ SQL

การตั้งค่าการรับมอบสิทธิ์บนบัญชีผู้ใช้บริการเซิร์ฟเวอร์รายงาน

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

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

เราจะต้องกําหนดค่าการมอบสิทธิ์ที่บังคับด้วยการส่งผ่านโปรโตคอล สําหรับการรับมอบสิทธิ์ที่บังคับ คุณจําเป็นต้องมีความชัดเจนว่าบริการใดที่คุณต้องการมอบหมาย เราจะไปและเพิ่มทั้ง SPN ของบริการ Analysis Services และ SPN SQL Browser ไปยังรายการที่เซิร์ฟเวอร์รายงาน Power BI สามารถมอบหมายสิทธิ์ได้

  1. คลิกขวาบนบัญชีผู้ใช้บริการเซิร์ฟเวอร์รายงาน และเลือกคุณสมบัติ

  2. เลือก แท็บ การรับ มอบสิทธิ์

  3. เลือก เชื่อถือคอมพิวเตอร์เครื่องนี้สําหรับการรับมอบสิทธิ์ไปยังบริการที่ระบุเท่านั้น

  4. เลือก ใช้โปรโตคอลรับรองความถูกต้องใดก็ได้

  5. ภายใต้บริการที่บัญชีผู้ใช้นี้สามารถใช้ข้อมูลประจําตัวที่ได้รับมอบหมาย: เลือกเพิ่ม

  6. ในกล่องโต้ตอบใหม่ เลือกผู้ใช้หรือคอมพิวเตอร์

  7. ป้อนบัญชีบริการสําหรับบริการ Analysis Services และเลือก ตกลง

  8. เลือก SPN ที่คุณสร้างขึ้น ซึ่งจะเริ่มต้นด้วยMSOLAPSvc.3 ถ้าคุณเพิ่มทั้ง FQDN และ NetBIOS SPN ระบบจะเลือกทั้งสองอย่าง คุณอาจเห็นเพียงหนึ่งรายการเท่านั้น

  9. เลือก ตกลง คุณควรเห็น SPN ในรายการแล้วตอนนี้

  10. คุณอาจเลือก ขยาย เพื่อแสดงทั้ง FQDN และ NetBIOS SPN ในรายการ

  11. เลือก เพิ่ม อีกครั้ง เราจะเพิ่ม SPN SQL Browser ตอนนี้

  12. ในกล่องโต้ตอบใหม่ เลือกผู้ใช้หรือคอมพิวเตอร์

  13. ใส่ชื่อเครื่องสําหรับเครื่องที่บริการ SQL Browser เปิดอยู่ และเลือกตกลง

  14. เลือก SPN ที่คุณสร้างขึ้น ซึ่งจะเริ่มต้นด้วยMSOLAPDisco.3 ถ้าคุณเพิ่มทั้ง FQDN และ NetBIOS SPN ระบบจะเลือกทั้งสองอย่าง คุณอาจเห็นเพียงหนึ่งรายการเท่านั้น

  15. เลือกตกลง กล่องโต้ตอบควรมีลักษณะคล้ายกับข้อความต่อไปนี้ ถ้าคุณได้ทําเครื่องหมายที่ขยาย

    Screenshot of Power B I Reports showing Delegation tab of Properties window.

  16. เลือกตกลง

  17. ปิดและเปิดเซิร์ฟเวอร์รายงาน Power BI ใหม่

การเรียกใช้รายงาน Power BI

หลังจากที่มีการกําหนดค่าด้านบนทั้งหมดแล้ว รายงานของคุณควรแสดงอย่างถูกต้อง

Screenshot of Power B I Reports showing sample Dashboard view.

ขณะที่การกําหนดค่านี้ควรใช้ได้ในกรณีส่วนใหญ่ ด้วย Kerberos อาจมีการกําหนดค่าที่แตกต่างกันโดยขึ้นอยู่กับสภาพแวดล้อมของคุณ ถ้ารายงานยังคงไม่โหลด คุณจะต้องติดต่อผู้ดูแลระบบโดเมนของคุณเพื่อตรวจสอบเพิ่มเติมหรือติดต่อฝ่ายสนับสนุน

มีคำถามเพิ่มเติมหรือไม่? ลองถามชุมชน Power BI