ใช้ Kerberosสำหรับ SSO จากPower BI ไปยังแหล่งข้อมูลภายในองค์กรConfigure Kerberos-based SSO from Power BI service to on-premises data sources

การเปิดใช้งาน SSO ทำให้รายงาน Power BI และแดชบอร์ดสามารถรีเฟรชข้อมูลจากแหล่งข้อมูลภายในองค์กรได้อย่างง่ายดาย ในขณะที่ยังเป็นไปตามสิทธิ์ระดับผู้ใช้ที่กำหนดค่าไว้บนแหล่งข้อมูลเหล่านั้นEnabling SSO makes it easy for Power BI reports and dashboards to refresh data from on-premises sources while respecting user-level permissions configured on those sources. ใช้ การมอบสิทธิ์แบบจำกัดของ Kerberos เพื่อเปิดใช้งานการเชื่อมต่อการลงชื่อเข้าใช้ครั้งเดียว (SSO) แบบไร้รอยต่อUse Kerberos constrained delegation to enable seamless SSO connectivity.

ข้อกำหนดเบื้องต้นPrerequisites

คุณจะต้องกำหนดค่าหลายรายการเพื่อให้การมอบสิทธิ์แบบจำกัดของ Kerberos ทำงานได้อย่างถูกต้อง ซึ่งรวมถึง_ชื่อบริการหลัก (SPN)_ และการตั้งค่าการมอบสิทธิ์บนบัญชีบริการSeveral items must be configured for Kerberos constrained delegation to work properly, including Service Principal Names (SPN) and delegation settings on service accounts.

ติดตั้งและกำหนดค่าเกตเวย์ข้อมูลภายในองค์กร MicrosoftInstall and configure the Microsoft on-premises data gateway

เกตเวย์ข้อมูลภายในองค์กรรองรับการอัปเกรดแบบแทนที่ และ_การแทนที่การตั้งค่า_ของเกตเวย์เดิมThe on-premises data gateway supports an in-place upgrade, and settings takeover of existing gateways.

เรียกใช้บริการ Windows ของเกตเวย์ด้วยบัญชีโดเมนRun the gateway Windows service as a domain account

ในการติดตั้งแบบมาตรฐาน เกตเวย์จะทำงานเป็นบัญชีบริการภายในเครื่อง NT Service\PBIEgwServiceIn a standard installation, the gateway runs as the machine-local service account, NT Service\PBIEgwService.

บัญชีบริการภายในเครื่อง

เมื่อต้องการเปิดใช้งานการมอบสิทธิ์แบบจำกัดของ Kerberos เกตเวย์ต้องทำงานเป็นบัญชีโดเมน เว้นแต่ว่าอินสแตนซ์ Azure Active Directory (Azure AD) ของคุณได้ซิงโครไนซ์กับอินสแตนซ์ Active Directory ภายในเครื่องของคุณแล้ว (โดยใช้ Azure AD DirSync/Connect)To enable Kerberos constrained delegation, the gateway must run as a domain account, unless your Azure Active Directory (Azure AD) instance is already synchronized with your local Active Directory instance (by using Azure AD DirSync/Connect). เมื่อต้องการสลับไปยังบัญชีโดเมน ให้ดู เปลี่ยนบัญชีบริการเกตเวย์To switch to a domain account, see change the gateway service account.

หมายเหตุ

ถ้ามีการกำหนดค่า Azure AD Connect และบัญชีผู้ใช้ซิงโครไนซ์ บริการเกตเวย์ไม่จำเป็นต้องดำเนินการภายใน Azure AD ค้นหาในขณะทำงานIf Azure AD Connect is configured and user accounts are synchronized, the gateway service doesn't need to perform local Azure AD lookups at runtime. แต่คุณสามารถใช้ SID ของบริการภายในเครื่องสำหรับบริการเกตเวย์เพื่อทำการกำหนดค่าที่จำเป็นทั้งหมดใน Azure AD ให้เสร็จสมบูรณ์Instead, you can simply use the local service SID for the gateway service to complete all required configuration in Azure AD. ขั้นตอนการกำหนดค่าการมอบสิทธิ์แบบจำกัดของ Kerberos ที่ระบุไว้ในบทความนี้เหมือนกับการกำหนดค่าที่จำเป็นในบริบท Azure ADThe Kerberos constrained delegation configuration steps outlined in this article are the same as the configuration steps required in the Azure AD context. โดยแค่นำไปใช้กับออบเจ็กต์คอมพิวเตอร์ของเกตเวย์ (ตามที่ได้ระบุโดย SID ของบริการภายในเครื่อง) ใน Azure AD แทนบัญชีโดเมนThey are applied to the gateway's computer object (as identified by the local service SID) in Azure AD instead of the domain account.

รับสิทธิ์ผู้ดูแลระบบโดเมนเพื่อกำหนดค่า SPN (SetSPN) และการตั้งค่าการมอบสิทธิ์แบบจำกัดของ KerberosObtain domain admin rights to configure SPNs (SetSPN) and Kerberos constrained delegation settings

เมื่อต้องการกำหนดค่าการตั้งค่าการมอบสิทธิ์ SPN และ Kerberos ผู้ดูแลระบบโดเมนควรหลีกเลี่ยงการให้สิทธิ์กับบุคคลที่ไม่มีสิทธิ์ผู้ดูแลระบบโดเมนTo configure SPNs and Kerberos delegation settings, a domain administrator should avoid granting rights to someone that doesn't have domain admin rights. ในส่วนต่อไปนี้ มีรายละเอียดเพิ่มเติมเกี่ยวกับขั้นตอนการกำหนดค่าที่แนะนำIn the following section, we cover the recommended configuration steps in more detail.

กำหนดค่าการมอบสิทธิ์แบบจำกัดของ Kerberos สำหรับเกตเวย์และแหล่งข้อมูลConfigure Kerberos constrained delegation for the gateway and data source

ในกรณีที่จำเป็น ให้กำหนดค่า SPN สำหรับบัญชีโดเมนของบริการเกตเวย์ในฐานะผู้ดูแลระบบโดเมนและกำหนดค่าการตั้งค่าการมอบสิทธิ์บนบัญชีโดเมนของบริการเกตเวย์If necessary, configure an SPN for the gateway service domain account as a domain administrator and configure delegation settings on the gateway service domain account.

กำหนดค่า SPN สำหรับบัญชีของบริการเกตเวย์Configure an SPN for the gateway service account

ขั้นแรก ตรวจสอบว่ามีการสร้าง SPN สำหรับบัญชีโดเมน ที่จะใช้เป็นบัญชีของบริการเกตเวย์ ไว้แล้วหรือไม่:First, determine whether an SPN was already created for the domain account used as the gateway service account:

  1. ในฐานะผู้ดูแลระบบโดเมน ให้เรียกใช้สแน็ปอิน Active Directory Users and Computers Microsoft Management Console (MMC)As a domain administrator, launch the Active Directory Users and Computers Microsoft Management Console (MMC) snap-in.

  2. ในบานหน้าต่างด้านซ้าย ให้คลิกขวาที่ชื่อโดเมน เลือก ค้นหา จากนั้นป้อนชื่อบัญชีของบัญชีบริการเกตเวย์In the left pane, right-click the domain name, select Find, and then enter the account name of the gateway service account.

  3. ในผลลัพธ์การค้นหา คลิกขวาบนบัญชีของบริการเกตเวย์ แล้วเลือก คุณสมบัติIn the search result, right-click the gateway service account and select Properties.

  4. ถ้าเห็นแท็บการมอบสิทธิ์ ในกล่องโต้ตอบคุณสมบัติ แสดงว่า SPN ได้ถูกสร้างขึ้นเรียบร้อยแล้ว และคุณสามารถข้ามไปยัง ตัดสินใจเลือกประเภทของการมอบสิทธิ์แบบจำกัดของ Kerberos ที่จะใช้If the Delegation tab is visible on the Properties dialog, then an SPN was already created and you can skip to Decide on the type of Kerberos constrained delegation to use.

  5. ถ้าไม่มีแท็บการมอบสิทธิ์บนกล่องโต้ตอบคุณสมบัติ คุณสามารถสร้าง SPN บนบัญชีผู้ใช้นั้นด้วยตนเองเพื่อเปิดการใช้งานIf there isn't a Delegation tab on the Properties dialog box, you can manually create an SPN on the account to enable it. ใช้ เครื่องมือ setspn ที่มาพร้อมกับ Windows (คุณจำเป็นต้องมีสิทธิ์ผู้ดูแลระบบโดเมนเพื่อสร้าง SPN)Use the setspn tool that comes with Windows (you need domain admin rights to create the SPN).

    ยกตัวอย่าง สมมติว่าบัญชีผู้ใช้บริการเกตเวย์คือ Contoso\GatewaySvc และบริการเกตเวย์กำลังทำงานบนเครื่องชื่อว่า MyGatewayMachineFor example, suppose the gateway service account is Contoso\GatewaySvc and the gateway service is running on the machine named MyGatewayMachine. เมื่อต้องการตั้งค่า SPN สำหรับบัญชีบริการเกตเวย์ ให้เรียกใช้คำสั่งต่อไปนี้:To set the SPN for the gateway service account, run the following command:

    setspn -a gateway/MyGatewayMachine Contoso\GatewaySvc

    คุณสามารถตั้งค่า SPN ได้โดยใช้สแนปอิน Active Directory Users and Computers MMCYou can also set the SPN by using the Active Directory Users and Computers MMC snap-in.

เพิ่มบัญชีผู้ใช้บริการเกตเวย์ไปยัง Windows Authorization และ Access Group ถ้าจำเป็นAdd gateway service account to Windows Authorization and Access Group if required

ในบางกรณีบัญชีผู้ใช้บริการเกตเวย์จะต้องถูกเพิ่มเข้าไปใน Windows Authorization และ Access GroupIn certain scenarios the gateway service account must be added to the Windows Authorization and Access Group. ซึ่งกรณีนี้รวมถึงการรักษาความปลอดภัยของ Active Directory environment และเมื่อบัญชีผู้ใช้บริการเกตเวย์และผู้ใช้เกตเวย์นั้นต้องเลียนแบบโดเมนหรือฟอเรสต์ที่แยกกันThese scenarios include security hardening of the Active Directory environment, and when the gateway service account and the user accounts that the gateway will impersonate are in separate domains or forests. คุณยังสามารถเพิ่มบัญชีผู้ใช้บริการเกตเวย์ไปยัง Windows Authorization และ Access Group ในสถานการณ์ที่โดเมนและฟอเรสต์ไม่ได้ทำงานหนักมาก (ไม่บังคับ)You can also add the gateway service account to Windows Authorization and Access Group in situations where the domain / forest has not been hardened, but it isn't required.

สำหรับข้อมูลเพิ่มเติมให้ดู การอนุมัติของ Windows และกลุ่มการเข้าถึงFor more information, see Windows Authorization and Access Group.

ในการดำเนินการขั้นตอนการกำหนดค่านี้ให้เสร็จสมบูรณ์สำหรับแต่ละโดเมนที่มีผู้ใช้ Active Directory ที่คุณต้องการให้บัญชีบริการเกตเวย์สามารถเลียนแบบได้:To complete this configuration step, for each domain that contains Active Directory users you want the gateway service account to be able to impersonate:

  1. ลงชื่อเข้าใช้คอมพิวเตอร์ในโดเมนและเปิดใช้งาน Active Directory และคอมพิวเตอร์ MMC snap-inSign in to a computer in the domain, and launch the Active Directory Users and Computers MMC snap-in.
  2. ค้นหากลุ่ม การอนุญาตของ Windows และการเข้าถึงกลุ่มซึ่งโดยทั่วไปแล้วจะพบได้ในคอนเทนเนอร์ บิวท์อินLocate the group Windows Authorization and Access Group, which is typically found in the Builtin container.
  3. ดับเบิลคลิกที่กลุ่มและคลิกที่แท็บ สมาชิกDouble click on the group, and click on the Members tab.
  4. คลิก เพิ่มและเปลี่ยนตำแหน่งที่ตั้งโดเมนไปยังโดเมนที่บัญชีผู้ใช้บริการเกตเวย์อาศัยอยู่ในClick Add, and change the domain location to the domain that the gateway service account resides in.
  5. พิมพ์ชื่อบัญชีผู้ใช้บริการเกตเวย์และคลิก ตรวจสอบชื่อ เพื่อตรวจสอบว่าบัญชีบริการเกตเวย์สามารถเข้าถึงได้Type in the gateway service account name and click Check Names to verify that the gateway service account is accessible.
  6. คลิก ตกลงClick OK.
  7. คลิกใช้Click Apply.
  8. รีสตาร์ทบริการเกตเวย์Restart the gateway service.

ตัดสินใจเลือกประเภทของการมอบสิทธิ์แบบจำกัดของ Kerberos ที่จะใช้Decide on the type of Kerberos constrained delegation to use

คุณสามารถกำหนดค่าการตั้งค่าการมอบสิทธิ์สำหรับทั้งการมอบสิทธิ์แบบจำกัดของ Kerberos ตามมาตรฐาน หรือการมอบสิทธิ์แบบจำกัดของ Kerberos ตามทรัพยากรYou can configure delegation settings for either standard Kerberos constrained delegation or resource-based Kerberos constrained delegation. ใช้การมอบสิทธิ์ตามทรัพยากร (ต้องใช้ Windows Server 2012 หรือใหม่กว่า) ถ้าแหล่งข้อมูลของคุณเป็นของโดเมนอื่นนอกเหนือจากเกตเวย์ของคุณUse resource-based delegation (requires Windows Server 2012 or later) if your data source belongs to a different domain than your gateway. สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความแตกต่างระหว่างสองวิธีในการมอบสิทธิ์ โปรดดูภาพรวมของการมอบสิทธิ์แบบจำกัดของ KerberosFor more information on the differences between the two approaches to delegation, see Kerberos constrained delegation overview.

ให้ดำเนินการในส่วนใดส่วนหนึ่งต่อไปนี้ โดยขึ้นอยู่กับวิธีการที่คุณต้องการใช้Depending on which approach you want to use, proceed to one of the following sections. ไม่จำเป็นต้องทำให้เสร็จทั้งสองส่วน:Don't complete both sections:

กำหนดค่าบัญชีผู้ใช้บริการเกตเวย์สำหรับการมอบหมายที่มีข้อจำกัดของ Kerberos มาตรฐานConfigure the gateway service account for standard Kerberos constrained delegation

หมายเหตุ

ทำตามขั้นตอนในส่วนนี้ให้เสร็จสมบูรณ์ถ้าคุณต้องการเปิดใช้งานการมอบสิทธิ์แบบจำกัดของ Kerberos ตามมาตรฐานComplete the steps in this section if you want to enable standard Kerberos constrained delegation. มิฉะนั้น ถ้าคุณต้องการเปิดใช้งานการมอบสิทธิ์แบบจำกัดของ Kerberos ตามทรัพยากร ให้ทำตามขั้นตอนใน กำหนดค่าบัญชีบริการเกตเวย์สำหรับการมอบสิทธิ์แบบจำกัดของ Kerberos ตามทรัพยากรOtherwise, if you want to enable resource-based Kerberos constrained delegation, complete the steps in Configure the gateway service account for resource-based Kerberos constrained delegation.

ตอนนี้เราจะตั้งค่าการมอบสิทธิ์สำหรับบัญชีบริการเกตเวย์We'll now set the delegation settings for the gateway service account. มีเครื่องมือหลายตัวที่คุณสามารถใช้เพื่อดำเนินการขั้นตอนเหล่านี้There are multiple tools you can use to perform these steps. ในที่นี้ เราจะใช้สแนปอิน Active Directory Users and Computers MMC เพื่อจัดการและเผยแพร่ข้อมูลในไดเรกทอรีHere, we'll use the Active Directory Users and Computers MMC snap-in to administer and publish information in the directory. ซึ่งพร้อมใช้งานบนตัวควบคุมโดเมนตามค่าเริ่มต้น; บนเครื่องอื่น คุณสามารถเปิดใช้งานผ่านทางการกำหนดค่าคุณลักษณะของ WindowsIt's available on domain controllers by default; on other machines, you can enable it through Windows feature configuration.

เราจำเป็นต้องกำหนดค่าการมอบสิทธิ์แบบจำกัดของ Kerberos ด้วยเปลี่ยนโพรโทคอลWe need to configure Kerberos constrained delegation with protocol transiting. สำหรับการมอบสิทธิ์แบบจำกัด คุณต้องมีความชัดเจนว่าบริการใดที่คุณต้องการอนุญาตให้เกตเวย์นำเสนอข้อมูลประจำตัวที่ได้รับมอบสิทธิ์With constrained delegation, you must be explicit about which services you allow the gateway to present delegated credentials to. ตัวอย่างเช่น เฉพาะ SQL Server หรือเซิร์ฟเวอร์ SAP HANA ของคุณเท่านั้นที่ยอมรับการเรียกรับสิทธิ์จากบัญชีบริการเกตเวย์For example, only SQL Server or your SAP HANA server accepts delegation calls from the gateway service account.

ส่วนนี้ถือว่า คุณได้กำหนดค่า SPN สำหรับแหล่งข้อมูลพื้นฐานของคุณ (เช่น SQL Server, SAP HANA,SAP BW Teradata และ Spark)This section assumes you have already configured SPNs for your underlying data sources (such as SQL Server, SAP HANA, SAP BW, Teradata, or Spark). หากต้องการเรียนรู้วิธีกำหนดค่า SPN ของเซิร์ฟเวอร์แหล่งข้อมูล โปรดอ้างอิงเอกสารทางเทคนิคสำหรับเซิร์ฟเวอร์ฐานข้อมูลที่เกี่ยวข้องและดูส่วน SPN ใดที่แอปของคุณจำเป็นต้องมี ในบล็อกโพสต์ รายการตรวจสอบ Kerberos ของฉันTo learn how to configure those data source server SPNs, refer to the technical documentation for the respective database server and see the section What SPN does your app require? in the My Kerberos Checklist blog post.

ในขั้นตอนต่อไปนี้ เราสมมติว่าสภาพแวดล้อมในองค์กรที่มีสองเครื่องในโดเมนที่เหมือนกัน: เครื่องเกตเวย์และเซิร์ฟเวอร์ฐานข้อมูลที่เรียกใช้ SQL Server ที่ได้รับการกำหนดค่าสำหรับ SSO ที่ใช้ Kerberos อยู่แล้วIn the following steps, we assume an on-premises environment with two machines in the same domain: a gateway machine and a database server running SQL Server that has already been configured for Kerberos-based SSO. ขั้นตอนนี้สามารถนำมาใช้ได้กับแหล่งข้อมูลที่ได้รับการสนับสนุนอีกหนึ่งรายการดังนั้นตราบใดที่แหล่งข้อมูลได้รับการกำหนดค่าไว้สำหรับการลงชื่อเข้าใช้แบบครั้งเดียวที่ใช้ KerberosThe steps can be adopted for one of the other supported data sources, so long as the data source has already been configured for Kerberos-based single sign-on. สำหรับตัวอย่างนี้ เราจะใช้การตั้งค่าต่อไปนี้:For this example, we'll use the following settings:

  • Active Directory Domain (Netbios): ContosoActive Directory Domain (Netbios): Contoso
  • ชื่อเครื่องเกตเวย์: MyGatewayMachineGateway machine name: MyGatewayMachine
  • บัญชีบริการเกตเวย์: Contoso\GatewaySvcGateway service account: Contoso\GatewaySvc
  • ชื่อเครื่องแหล่งข้อมูล SQL Server: TestSQLServerSQL Server data source machine name: TestSQLServer
  • บัญชีบริการแหล่งข้อมูล SQL Server: Contoso\SQLServiceSQL Server data source service account: Contoso\SQLService

นี่คือวิธีการกำหนดค่าการตั้งค่าการมอบสิทธิ์:Here's how to configure the delegation settings:

  1. ให้เปิดสแนปอิน Active Directory Users and Computers MMC ด้วยสิทธิ์ผู้ดูแลระบบโดเมนWith domain administrator rights, open the Active Directory Users and Computers MMC snap-in.

  2. คลิกขวาบนบัญชีบริการเกตเวย์ (Contoso\GatewaySvc) แล้วเลือก คุณสมบัติRight-click the gateway service account (Contoso\GatewaySvc), and select Properties.

  3. เลือกแถบ การมอบหมายSelect the Delegation tab.

  4. เลือก เชื่อถือคอมพิวเตอร์เครื่องนี้สำหรับการมอบหมายบริการที่ระบุเท่านั้น > ใช้โพรโทคอลการรับรองความถูกต้องใด ๆSelect Trust this computer for delegation to specified services only > Use any authentication protocol.

  5. ภายใต้ บริการที่บัญชีผู้ใช้นี้สามารถใช้ข้อมูลประจำตัวที่ได้รับมอบหมาย: เลือก เพิ่มUnder Services to which this account can present delegated credentials, select Add.

  6. ในกล่องโต้ตอบใหม่ เลือก ผู้ใช้หรือคอมพิวเตอร์In the new dialog box, select Users or Computers.

  7. ป้อนบัญชีบริการสำหรับแหล่งข้อมูล จากนั้นเลือก ตกลงEnter the service account for the data source, and then select OK.

    ตัวอย่างเช่น แหล่งข้อมูล SQL Server สามารถมีบัญชีบริการเช่น Contoso\SQLServiceFor example, a SQL Server data source can have a service account like Contoso\SQLService. ควรตั้งค่า SPN ที่เหมาะสมสำหรับแหล่งข้อมูลในบัญชีนี้แล้วAn appropriate SPN for the data source should have already been set on this account.

  8. เลือก SPN ที่คุณสร้างขึ้นสำหรับเซิร์ฟเวอร์ฐานข้อมูลSelect the SPN that you created for the database server.

    ในตัวอย่างของเรา SPN จะเริ่มต้นด้วย MSSQLSvcIn our example, the SPN begins with MSSQLSvc. ถ้าคุณเพิ่มทั้ง FQDN และ NetBIOS SPN สำหรับบริการฐานข้อมูลของคุณ ให้เลือกทั้งสองอย่างIf you added both the FQDN and the NetBIOS SPN for your database service, select both. คุณอาจเห็นได้เพียงหนึ่งรายการเท่านั้นYou might see only one.

  9. เลือกตกลงSelect OK.

    ขณะนี้คุณควรเห็น SPN ในรายการของบริการ ซึ่งบัญชีบริการเกตเวย์สามารถแสดงข้อมูลประจำตัวที่ได้รับมอบหมายได้You should now see the SPN in the list of services to which the gateway service account can present delegated credentials.

    กล่องโต้ตอบคุณสมบัติของตัวเชื่อมต่อเกตเวย์

  10. หากต้องการดำเนินกระบวนการตั้งค่าต่อไป ดำเนินการต่อเพื่ออนุญาตให้ใช้สิทธิ์ของนโยบายภายในของบัญชีบริการเกตเวย์บนเครื่องเกตเวย์To continue the setup process, proceed to Grant the gateway service account local policy rights on the gateway machine.

กำหนดค่าบัญชีผู้ใช้บริการเกตเวย์สำหรับการมอบหมายที่มีข้อจำกัดของ Kerberos ที่ใช้ทรัพยากรConfigure the gateway service account for resource-based Kerberos constrained delegation

หมายเหตุ

ทำตามขั้นตอนในส่วนนี้ให้เสร็จสมบูรณ์ถ้าคุณต้องการเปิดใช้งานการมอบสิทธิ์แบบจำกัดของ Kerberos ตามทรัพยากรComplete the steps in this section if you want to enable resource-based Kerberos constrained delegation. มิฉะนั้น ถ้าคุณต้องการเปิดใช้งานการมอบสิทธิ์แบบจำกัดของ Kerberos ตามมาตรฐาน ให้ทำตามขั้นตอนใน กำหนดค่าบัญชีบริการเกตเวย์สำหรับการมอบสิทธิ์แบบจำกัดของ Kerberos ตามมาตรฐานOtherwise, if you want to enable standard Kerberos constrained delegation, complete the steps in Configure the gateway service account for standard Kerberos constrained delegation.

คุณใช้การมอบสิทธิ์แบบจำกัดของ Kerberos ตามทรัพยากรเพื่อเปิดใช้งานการเชื่อมต่อการลงชื่อเข้าใช้แบบครั้งเดียวสำหรับ Windows Server 2012 และเวอร์ชันที่ใหม่กว่าYou use resource-based Kerberos constrained delegation to enable single sign-on connectivity for Windows Server 2012 and later versions. การมอบสิทธิ์ประเภทนี้จะอนุญาตให้บริการส่วนหน้าและส่วนหลังอยู่ในโดเมนที่ต่างกันThis type of delegation permits front-end and back-end services to be in different domains. เพื่อให้สามารถใช้งานได้ โดเมนบริการส่วนหลังจำเป็นต้องเชื่อถือโดเมนบริการส่วนหน้าFor it to work, the back-end service domain needs to trust the front-end service domain.

ในขั้นตอนต่อไปนี้เราสมมติว่าสภาพแวดล้อมในองค์กรที่มีสองเครื่องในโดเมนที่ต่างกัน: เครื่องเกตเวย์และเซิร์ฟเวอร์ฐานข้อมูลที่เรียกใช้ SQL Server ที่ได้รับการกำหนดค่าสำหรับ SSO ที่ใช้ Kerberos อยู่แล้วIn the following steps, we assume an on-premises environment with two machines in different domains: a gateway machine and a database server running SQL Server that has already been configured for Kerberos-based SSO. ขั้นตอนเหล่านี้สามารถนำมาใช้ได้กับแหล่งข้อมูลใดแหล่งข้อมูลหนึ่งในแหล่งข้อมูลที่ได้รับการสนับสนุนอื่น ๆ ตราบใดที่มีการกำหนดค่าแหล่งข้อมูลสำหรับการลงชื่อเข้าใช้แบบครั้งเดียวที่ใช้ KerberosThese steps can be adopted for one of the other supported data sources, so long as the data source has already been configured for Kerberos-based single sign-on. สำหรับตัวอย่างนี้ เราจะใช้การตั้งค่าต่อไปนี้:For this example, we'll use the following settings:

  • ระบบโดเมนส่วนหน้าของ Active Directory (Netbios): ContosoFrontEndActive Directory frontend Domain (Netbios): ContosoFrontEnd
  • ระบบโดเมนส่วนหลังของ Active Directory (Netbios): ContosoBackEndActive Directory backend Domain (Netbios): ContosoBackEnd
  • ชื่อเครื่องเกตเวย์: MyGatewayMachineGateway machine name: MyGatewayMachine
  • บัญชีบริการเกตเวย์: ContosoFrontEnd\GatewaySvcGateway service account: ContosoFrontEnd\GatewaySvc
  • ชื่อเครื่องแหล่งข้อมูล SQL Server: TestSQLServerSQL Server data source machine name: TestSQLServer
  • บัญชีบริการแหล่งข้อมูล SQL Server: ContosoBackEnd\SQLServiceSQL Server data source service account: ContosoBackEnd\SQLService

ทำตามขั้นตอนการกำหนดค่าต่อไปนี้ให้เสร็จสิ้น:Complete the following configuration steps:

  1. ใช้สแนปอิน Active Directory Users and Computers MMC บนตัวควบคุมโดเมนสำหรับโดเมน ContosoFrontEnd และตรวจสอบว่าไม่มีการตั้งค่าการมอบสิทธิ์สำหรับบัญชีบริการเกตเวย์Use the Active Directory Users and Computers MMC snap-in on the domain controller for the ContosoFrontEnd domain and verify no delegation settings are applied for the gateway service account.

    คุณสมบัติของตัวเชื่อมต่อเกตเวย์

  2. ใช้ Active Directory Users and Computers บนตัวควบคุมโดเมนสำหรับโดเมน ContosoBack-end และตรวจสอบว่าไม่มีการปรับใช้การตั้งค่าการมอบสิทธิ์สำหรับบัญชีบริการส่วนหลังUse Active Directory Users and Computers on the domain controller for the ContosoBackEnd domain and verify no delegation settings are applied for the back-end service account.

    คุณสมบัติของบริการ SQL

  3. ในแท็บ ตัวแก้ไขแอตทริบิวต์ ของคุณสมบัติบัญชี ให้ตรวจสอบว่าไม่มีการตั้งค่าแอตทริบิวต์ msDS-AllowedToActOnBehalfOfOtherIdentityIn the Attribute Editor tab of the account properties, verify that the msDS-AllowedToActOnBehalfOfOtherIdentity attribute isn't set.

    แอตทริบิวต์บริการ SQL

  4. ใน Active Directory Users and Computers ให้สร้างกลุ่มบนตัวควบคุมโดเมนสำหรับโดเมน ContosoBackEndIn Active Directory Users and Computers, create a group on the domain controller for the ContosoBackEnd domain. เพิ่มบัญชีบริการเกตเวย์ GatewaySvc ไปยังกลุ่ม ResourceDelGroupAdd the GatewaySvc gateway service account to the ResourceDelGroup group.

    คุณสมบัติของกลุ่ม

  5. เปิดพร้อมท์คำสั่งและเรียกใช้คำสั่งต่อไปนี้ในตัวควบคุมโดเมนสำหรับโดเมน ContosoBackEnd เพื่ออัปเดตแอตทริบิวต์ msDS-AllowedToActOnBehalfOfOtherIdentity ของบัญชีบริการส่วนหลัง:Open a command prompt and run the following commands in the domain controller for the ContosoBackEnd domain to update the msDS-AllowedToActOnBehalfOfOtherIdentity attribute of the back-end service account:

    $c = Get-ADGroup ResourceDelGroup
    Set-ADUser SQLService -PrincipalsAllowedToDelegateToAccount $c
    
  6. ใน Active Directory Users and Computers ให้ตรวจสอบว่าการอัปเดตจะแสดงอยู่ในแท็บ ตัวแก้ไขแอตทริบิวต์ ในคุณสมบัติสำหรับบัญชีบริการส่วนหลังหรือไม่In Active Directory Users and Computers, verify that the update is reflected in the Attribute Editor tab in the properties for the back-end service account.

การอนุญาต สิทธิ์ของนโยบายภายในของบัญชีบริการเกตเวย์บนเครื่องเกตเวย์Grant the gateway service account local policy rights on the gateway machine

สุดท้าย บนเครื่องที่ใช้บริการเกตเวย์ (MyGatewayMachine ในตัวอย่างของเรา) ให้สิทธิ์ในการเลียนแบบไคลเอ็นต์หลังจากการรับรองความถูกต้อง และการทำหน้าที่เป็นส่วนหนึ่งของระบบปฏิบัติการ (SeTcbPrivilege) ของนโยบายภายในเครื่องแก่บัญชีบริการเกตเวย์Finally, on the machine running the gateway service (MyGatewayMachine in our example), grant the gateway service account the local policies Impersonate a client after authentication and Act as part of the operating system (SeTcbPrivilege). ดำเนินการกำหนดค่านี้ด้วยตัวแก้ไขนโยบายกลุ่มภายใน (gpedit.msc)Perform this configuration with the Local Group Policy Editor (gpedit.msc).

  1. บนเครื่องเกตเวย์ ให้เรียกใช้ gpedit.mscOn the gateway machine, run gpedit.msc.

  2. ฟหกดไปยัง นโยบายคอมพิวเตอร์ > การกำหนดค่าคอมพิวเตอร์ > การตั้งค่า Windows > การตั้งค่าความปลอดภัย > นโยบายภายในเครื่อง > การกำหนดสิทธิ์ของผู้ใช้Go to Local Computer Policy > Computer Configuration > Windows Settings > Security Settings > Local Policies > User Rights Assignment.

    โครงสร้างโฟลเดอร์นโยบายคอมพิวเตอร์ภายใน

  3. ภายใต้ การกำหนดสิทธิ์ของผู้ใช้ จากรายการนโยบาย ให้เลือก เลียนแบบไคลเอ็นต์หลังจากการรับรองความถูกต้องUnder User Rights Assignment, from the list of policies, select Impersonate a client after authentication.

    เลียนแบบนโยบายฝั่งไคลเอ็นต์

  4. คลิกขวาที่นโยบาย เปิดคุณสมบัติ จากนั้นดูรายการบัญชีRight-click the policy, open Properties, and then view the list of accounts.

    รายการจะต้องมีบัญชีบริการเกตเวย์ (Contoso\GatewaySvc หรือ ContosoFrontEnd\GatewaySvc ทั้งนี้ขึ้นอยู่กับประเภทของการมอบสิทธิ์แบบจำกัด)The list must include the gateway service account (Contoso\GatewaySvc or ContosoFrontEnd\GatewaySvc depending on the type of constrained delegation).

  5. ภายใต้การกำหนดสิทธิ์ของผู้ใช้ ให้เลือกทำหน้าที่เป็นส่วนหนึ่งของระบบปฏิบัติการ (SeTcbPrivilege) จากรายการนโยบายUnder User Rights Assignment, select Act as part of the operating system (SeTcbPrivilege) from the list of policies. ตรวจสอบให้แน่ใจว่าบัญชีบริการเกตเวย์รวมอยู่ในรายการบัญชีหรือไม่Ensure that the gateway service account is included in the list of accounts.

  6. รีสตาร์ต เกตเวย์ข้อมูลในองค์กรRestart the On-premises data gateway service process.

ตั้งพารามิเตอร์การกำหนดค่าการแมปผู้ใช้บนเครื่องเกตเวย์ (ถ้าจำเป็น)Set user-mapping configuration parameters on the gateway machine (if necessary)

ถ้าคุณไม่ได้กำหนดค่า Azure AD Connect ไว้ ให้ทำตามขั้นตอนเหล่านี้เพื่อแมปผู้ใช้ของบริการ Power BI ทุกรายเข้ากับผู้ใช้ Azure ADIf you don't have Azure AD Connect configured, follow these steps to map a Power BI service user to a local Active Directory user. ผู้ใช้ Active Directory แต่ละคนที่ถูกแมปด้วยวิธีนี้จะต้องมีสิทธิ์ SSO สำหรับแหล่งข้อมูลของคุณEach Active Directory user mapped in this way needs to have SSO permissions for your data source. สำหรับข้อมูลเพิ่มเติม โปรดดูที่ วิดีโอ Guy in a CubeFor more information, see Guy in a Cube video.

  1. เปิดไฟล์การกำหนดค่าเกตเวย์หลัก Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dllOpen the main gateway configuration file, Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll. ตามค่าเริ่มต้น ไฟล์นี้จะถูกเก็บไว้ที่ C:\Program Files\On-premises data gatewayBy default, this file is stored at C:\Program Files\On-premises data gateway.

  2. ตั้งค่า ADUserNameLookupProperty เป็นแอตทริบิวต์ Active Directory ที่ยังไม่ได้ใช้งานSet ADUserNameLookupProperty to an unused Active Directory attribute. เราจะใช้ msDS-cloudExtensionAttribute1 ในขั้นตอนต่อไปนี้We'll use msDS-cloudExtensionAttribute1 in the steps that follow. แอตทริบิวต์นี้จะพร้อมใช้งานใน Windows Server 2012 และรุ่นที่ใหม่กว่าเท่านั้นThis attribute is available only in Windows Server 2012 and later.

  3. ตั้งค่า ADUserNameReplacementProperty เป็น SAMAccountName จากนั้นบันทึกไฟล์การกำหนดค่าSet ADUserNameReplacementProperty to SAMAccountName and then save the configuration file.

  4. จากแท็บ บริการ ของตัวจัดการงาน ให้คลิกขวาบริการเกตเวย์ แล้วเลือก รีสตาร์ทFrom the Services tab of Task Manager, right-click the gateway service and select Restart.

    สกรีนช็อตของแท็บบริการตัวจัดการงาน

  5. สำหรับผู้ใช้บริการของ Power BI แต่ละคนที่คุณต้องการเปิดใช้งาน Kerberos SSO ให้ตั้งค่าคุณสมบัติ msDS-cloudExtensionAttribute1 ของผู้ใช้ Active Directory ภายในเครื่อง (ด้วยสิทธิ์ SSO กับแหล่งข้อมูลของคุณ) เป็นชื่อผู้ใช้แบบเต็ม (UPN) ของผู้ใช้บริการ Power BIFor each Power BI service user you want to enable Kerberos SSO for, set the msDS-cloudExtensionAttribute1 property of a local Active Directory user (with SSO permission to your data source) to the full username (UPN) of the Power BI service user. ตัวอย่างเช่น ถ้าคุณเข้าสู่ระบบบริการ Power BI ในฐานะ test@contoso.com และคุณต้องการแมปผู้ใช้รายนี้ไปยังผู้ใช้ Active Directory ภายในเครื่องที่มีสิทธิ์ SSO ให้พูดว่า test@LOCALDOMAIN.COM ตั้งค่าแอตทริบิวต์msDS-cloudExtensionAttribute1 ของผู้ใช้เป็น test@contoso.comFor example, if you sign in to Power BI service as test@contoso.com and you want to map this user to a local Active Directory user with SSO permissions, say, test@LOCALDOMAIN.COM, set this user's msDS-cloudExtensionAttribute1 attribute to test@contoso.com.

    คุณสามารถตั้งค่าคุณสมบัติ msDS-cloudExtensionAttribute1 ด้วยสแนปอิน Active Directory Users and Computers MMC:You can set the msDS-cloudExtensionAttribute1 property with the Active Directory Users and Computers MMC snap-in:

    1. ในฐานะผู้ดูแลโดเมน ให้เรียกใช้งาน Active Directory Users and ComputersAs a domain administrator, launch Active Directory Users and Computers.

    2. คลิกขวาบนชื่อโดเมน เลือก ค้นหา และพิมพ์ชื่อบัญชีของผู้ใช้ Active Directory ภายในเครื่องที่คุณต้องการแมปRight-click the domain name, select Find, and then enter the account name of the local Active Directory user to map.

    3. เลือกแท็บ ตัวแก้ไขแอตทริบิวต์Select the Attribute Editor tab.

      วางตำแหน่งคุณสมบัติ msDS-cloudExtensionAttribute1 แล้วดับเบิลคลิกLocate the msDS-cloudExtensionAttribute1 property, and double-click it. ตั้งค่าให้กับชื่อผู้ใช้แบบเต็ม (UPN) ของผู้ใช้ที่คุณใช้ในการลงชื่อเข้าใช้บริการของ Power BISet the value to the full username (UPN) of the user you use to sign in to the Power BI service.

    4. เลือกตกลงSelect OK.

      หน้าต่างตัวแก้ไขแอตทริบิวต์สตริง

    5. เลือกนำไปใช้Select Apply. ตรวจสอบว่ามีการตั้งค่าที่ถูกต้องในคอลัมน์ Value หรือไม่Verify that the correct value has been set in the Value column.

ทำตามขั้นตอนการกำหนดค่าเฉพาะแหล่งข้อมูลComplete data source-specific configuration steps

SAP HANA และ SAP BW มีข้อกำหนดการกำหนดค่าเฉพาะแหล่งข้อมูลเพิ่มเติมและข้อกำหนดเบื้องต้นที่จำเป็นต้องได้รับการตอบสนองก่อนที่คุณสามารถสร้างการเชื่อมต่อ SSO ผ่านเกตเวย์ไปยังแหล่งข้อมูลเหล่านี้ได้SAP HANA and SAP BW have additional data-source specific configuration requirements and prerequisites that you need to meet before you can establish an SSO connection through the gateway to these data sources. สำหรับข้อมูลเพิ่มเติม โปรดดูหน้า การกำหนดค่า SAP HANA และ SAP BW-CommonCryptoLib (sapcrypto.dll)For more information, see SAP HANA configuration and the SAP BW - CommonCryptoLib (sapcrypto.dll) configuration page. แม้ว่าเป็นไปได้ที่จะ กำหนดค่า SAP BW สำหรับใช้กับไลบรารี gx64krb5 SNC แต่ไม่แนะนำให้ใช้ไลบรารีนี้เนื่องจากไม่มีการสนับสนุนจาก SAP อีกต่อไปAlthough it's possible to configure SAP BW for use with the gx64krb5 SNC library, this library isn't recommended because it's no longer supported by SAP. คุณควรใช้ CommonCryptoLib หรือ gx64krb5 เป็นไลบรารีของคุณYou should use CommonCryptoLib or gx64krb5 as your SNC library. ไม่ต้องทำขั้นตอนการกำหนดค่าสำหรับทั้งสองไลบรารีให้เสร็จสมบูรณ์Don't complete the configuration steps for both libraries.

หมายเหตุ

แม้ว่าไลบรารี SNC อื่นอาจใช้งานได้กับ BW SSO แต่ก็ไม่ได้รับการสนับสนุนอย่างเป็นทางการจาก MicrosoftAlthough other SNC libraries might also work for BW SSO, they aren't officially supported by Microsoft.

เปิดใช้รายงาน Power BIRun a Power BI report

หลังจากคุณดำเนินการขั้นตอนการกำหนดค่าทั้งหมดเสร็จสิ้นแล้ว ให้ใช้หน้า จัดการเกตเวย์ ใน Power BI เพื่อกำหนดค่าแหล่งข้อมูลที่จะใช้สำหรับ SSOAfter you complete all the configuration steps, use the Manage Gateway page in Power BI to configure the data source to use for SSO. ถ้าคุณมีเกตเวย์หลายแห่งให้ตรวจสอบให้แน่ใจว่าคุณเลือกเกตเวย์ที่กำหนดค่าไว้สำหรับ Kerberos SSOIf you have multiple gateways, ensure that you select the gateway you've configured for Kerberos SSO. จากนั้นภายใต้ การตั้งค่าขั้นสูง สำหรับแหล่งข้อมูล คุณควรตรวจสอบให้แน่ใจว่า ใช้ SSO ผ่านทาง Kerberos สำหรับคิวรี DirectQuery หรือ ใช้ SSO ผ่าน Kerberos สำหรับคิวรี DirectQuery และ Import ได้รับการตรวจสอบสำหรับรายงานที่ยึดตาม DirectQuery และ ใช้ SSO ผ่าน Kerberos สำหรับคิวรี DirectQuery และ Import ได้รับการตรวจสอบสำหรับการรีเฟรชตามรายงานThen, under Advanced Settings for the data source, ensure Use SSO via Kerberos for DirectQuery queries or Use SSO via Kerberos for DirectQuery And Import queries is checked for DirectQuery based Reports and Use SSO via Kerberos for DirectQuery And Import queries is checked for Refresh based Reports.

ตัวเลือกการตั้งค่าขั้นสูง

ถ้าคุณเผยแพร่รายงานที่ยึดตาม DirectQuery จาก Power BI Desktop และแมปรายงานดังกล่าวไปยังแหล่งข้อมูลที่มี ใช้ SSO ผ่าน Kerberos สำหรับคิวรี DirectQuery หรือ ใช้ SSO ผ่าน Kerberos สำหรับคิวรี DirectQuery และ Import ที่ตรวจสอบแล้ว รายงานนี้จะใช้ข้อมูลที่สามารถเข้าถึงผู้ใช้ที่มีการแมปกับผู้ใช้ (Azure) Active Directory ที่ลงทะเบียนไว้ในบริการ Power BIIf you publish a DirectQuery-based report from Power BI Desktop and map it to a data source having the Use SSO via Kerberos for DirectQuery queries or the Use SSO via Kerberos for DirectQuery And Import queries checked, this report would use data that is accessible to the user that's mapped to the (Azure) Active Directory user that signs in to the Power BI service.

ในทำนองเดียวกันถ้าคุณเผยแพร่รายงานที่ยึดตามการรีเฟรชจาก Power BI desktop และแมปรายงานดังกล่าวไปยังแหล่งข้อมูลที่มี ใช้ SSO ผ่าน Kerberos สำหรับคิวรี DirectQuery และ Import ที่ตรวจสอบแล้ว คุณไม่จำเป็นต้องระบุข้อมูลประจำตัวใดๆSimilarly if you publish a Refresh-based report from Power BI desktop and map it to a data source having the Use SSO via Kerberos for DirectQuery And Import queries checked, you do not need to provide any credentials. การรีเฟรชจะดำเนินการภายใต้บริบทไดเรกทอรีที่ใช้งานของเจ้าของชุดข้อมูลThe refresh is executed under the the dataset owner's active directory context.

อย่างไรก็ตาม หากคุณแมปรายงานกับแหล่งข้อมูลที่ไม่ได้มีการตรวจสอบ ใช้ SSO ผ่าน Kerberos สำหรับคิวรี DirectQuery และ Import การรีเฟรชจะใช้ข้อมูลประจำตัวที่คุณป้อนในเขตข้อมูล ชื่อผู้ใช้ และ รหัสผ่าน เมื่อคุณสร้างแหล่งข้อมูลIf however, you map it to a data source where Use SSO via Kerberos for DirectQuery And Import queries isn't checked, the refresh uses the credentials that you entered in the Username and Password fields when you created the data source. อีกอย่างหนึ่ง Kerberos SSO ไม่ได้ถูกนำมาใช้งานIn other words, Kerberos SSO is not used.

เมื่อคุณเผยแพร่ ให้เลือกเกตเวย์ที่กำหนดค่าไว้สำหรับ SSO ถ้าคุณมีหลายเกตเวย์When you publish, select the gateway you've configured for SSO if you have multiple gateways.

กำหนดค่านี้ทำงานในกรณีส่วนใหญ่This configuration works in most cases. อย่างไรก็ตาม การใช้งานกับ Kerberos อาจต้องมีการตั้งค่าที่แตกต่างกันออกไป ขึ้นอยู่กับสภาพแวดล้อมของคุณHowever, with Kerberos there can be different configurations depending on your environment. ถ้าไม่สามารถโหลดรายงานได้ ให้ติดต่อผู้ดูแลระบบโดเมนของคุณเพื่อตรวจสอบเพิ่มเติมIf the report won't load, contact your domain administrator to investigate further. ถ้าแหล่งข้อมูลของคุณคือ SAP BW ให้ดูส่วนการแก้ไขปัญหาของหน้าการกำหนดค่าเฉพาะแหล่งข้อมูลสำหรับ CommonCryptoLib และ gx64krb5/gsskrb5 ทั้งนี้ขึ้นอยู่กับไลบรารี SNC ที่คุณเลือกไว้แล้วIf your data source is SAP BW, refer to the troubleshooting sections of the data source-specific configuration pages for CommonCryptoLib and gx64krb5/gsskrb5, depending on which SNC library you've chosen.

ขั้นตอนถัดไปNext steps

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเกตเวย์ข้อมูลภายในองค์กรและ DirectQuery ให้ดูแหล่งข้อมูลต่อไปนี้:For more information about the on-premises data gateway and DirectQuery, see the following resources: