ใช้ Microsoft SQL Server กับ Power Apps อย่างปลอดภัย
มีหลายวิธีที่จะ เชื่อมต่อ และรับรองความถูกต้อง SQL Server ด้วย Power Apps บทความนี้จะสรุปแนวคิดที่เป็นประโยชน์ในการเลือกวิธีเชื่อมต่อกับ SQL Server ด้วยวิธีการรักษาความปลอดภัยที่ตรงกับข้อกำหนดสำหรับแอปของคุณ
ข้อสำคัญ
คุณลักษณะ การเชื่อมต่อโดยนัยที่ปลอดภัย เปิดตัวในเดือนมกราคม 2024 Microsoft ขอแนะนำอย่างยิ่งให้แอปทั้งหมดที่ใช้การเชื่อมต่อโดยนัยในปัจจุบันแปลงเป็นการเชื่อมต่อโดยนัยที่ปลอดภัย และเพิกถอนการเชื่อมต่อที่ใช้ร่วมกับผู้ใช้ปลายทาง
ความแตกต่างระหว่างการเชื่อมต่อที่ชัดเจน โดยนัย และโดยนัยที่ปลอดภัย
การเชื่อมต่อกับ SQL Server จะถูกสร้างขึ้นทุกครั้งที่คุณสร้างแอปโดยใช้การเชื่อมต่อ Power Apps กับ SQL Server เมื่อมีการเผยแพร่และแชร์แอปดังกล่าวกับผู้อื่น ทั้งแอปและการเชื่อมต่อจะถูกปรับใช้กับผู้ใช้เหล่านั้น กล่าวอีกนัยหนึ่ง แอปและการเชื่อมต่อ—ทั้งสองจะปรากฏต่อผู้ใช้ที่แชร์แอปด้วย
วิธีการรับรองความถูกต้องที่ใช้สำหรับการเชื่อมต่อดังกล่าวสามารถเป็น ชัดเจน หรือ โดยนัย นอกจากนี้เรายังสามารถพูดได้ว่าการเชื่อมต่อดังกล่าวมีการแบ่งปันโดยชัดเจนหรือโดยนัย
- การเชื่อมต่อที่ใช้ร่วมกันอย่างชัดเจน หมายความว่าผู้ใช้ปลายทางของแอปพลิเคชันต้องรับรองความถูกต้อง SQL Server ด้วยข้อมูลประจำตัวที่ชัดเจนของตนเอง โดยปกติการรับรองความถูกต้องนี้จะเกิดขึ้นเบื้องหลังโดยเป็นส่วนหนึ่งของ Microsoft Entra หรือการจับมือรับรองความถูกต้องของ Windows ผู้ใช้ไม่ได้สังเกตด้วยซ้ำว่าการรับรองความถูกต้องเกิดขึ้นเมื่อใด
- การเชื่อมต่อที่ใช้ร่วมกันโดยนัย หมายความว่าผู้ใช้ใช้ข้อมูลประจำตัวของบัญชีที่ผู้ผลิตแอปใช้เชื่อมต่อและรับรองความถูกต้องโดยนัยกับแหล่งข้อมูลระหว่างสร้างแอป ข้อมูลประจำตัวของผู้ใช้ ไม่ ใช้ในการรับรองความถูกต้อง ทุกครั้งที่ผู้ใช้เรียกใช้แอป พวกเขากำลังใช้ข้อมูลประจำตัวที่ผู้เขียนสร้างแอปด้วย
- การเชื่อมต่อที่ใช้ร่วมกันโดยนัยที่ปลอดภัย หมายถึงสถานการณ์ที่ผู้ใช้แอปใช้ข้อมูลประจำตัวของบัญชีที่ผู้ผลิตแอปใช้เชื่อมต่อและรับรองความถูกต้องโดยนัยกับแหล่งข้อมูลระหว่างสร้างแอป ซึ่งหมายความว่าข้อมูลประจำตัวของผู้ใช้ไม่ใช้ในการรับรองความถูกต้อง แต่เมื่อผู้ใช้เรียกใช้แอป ผู้ใช้จะใช้ข้อมูลประจำตัวที่ผู้เขียนสร้างแอปด้วย สิ่งสำคัญคือต้องทราบว่าผู้ใช้ปลายทางไม่ได้รับสิทธิ์ในการเข้าถึงการเชื่อมต่อโดยตรง และแอปอนุญาตให้เข้าถึงชุดการดำเนินการและตารางที่จำกัดเท่านั้น
สามารถใช้การรับรองความถูกต้องการเชื่อมต่อสี่ชนิดต่อไปนี้กับ SQL Server สำหรับ Power Apps:
ชนิดการรับรองความถูกต้อง | วิธีการเชื่อมต่อ Power Apps |
---|---|
Microsoft Entra ที่รวม | อย่างชัดเจน |
การรับรองความถูกต้องของ SQL Server | โดยนัย / โดยนัยที่ปลอดภัย |
การรับรองความถูกต้องของ Windows | โดยนัย / โดยนัยที่ปลอดภัย |
การรับรองความถูกต้องของ Windows (ไม่ใช้ร่วมกัน) | อย่างชัดเจน |
ความเสี่ยงในการใช้การเชื่อมต่อร่วมกันโดยนัย
แอปพลิเคชันใหม่ทั้งหมดจะใช้การเชื่อมต่อโดยนัยที่ปลอดภัยใหม่โดยอัตโนมัติ อย่างไรก็ตาม สำหรับแอปที่ใช้ 'การเชื่อมต่อโดยนัย' ที่เก่ากว่า ทั้งแอปและการเชื่อมต่อจะถูกปรับใช้กับผู้ใช้ปลายทาง ซึ่งหมายความว่า ผู้ใช้ปลายทางสามารถสร้างแอปพลิเคชันใหม่ตามการเชื่อมต่อเหล่านั้นได้
เมื่อผู้เขียนใช้ การเชื่อมต่อโดยนัยที่ปลอดภัย หมายความว่าจะไม่มีการใช้การเชื่อมต่อร่วมกัน และผู้ใช้ปลายทางจะไม่ได้รับออบเจ็กต์การเชื่อมต่อ ซึ่งจะช่วยลดความเสี่ยงที่ผู้เขียนของผู้ใช้ปลายทางจะใช้การเชื่อมต่อซ้ำเพื่อสร้างแอปใหม่ แต่แอปจะทำงานร่วมกับการเชื่อมต่อพร็อกซีที่รับรู้ถึงแอปและสื่อสารกับแอปนั้นๆ เท่านั้น การเชื่อมต่อพร็อกซีอนุญาตการดำเนินการที่จำกัด (สร้าง อ่าน อัปเดต ลบ) และเข้าถึงตารางเฉพาะในแอปที่กำหนดไว้เมื่อมีการเผยแพร่แอป ดังนั้นเฉพาะการดำเนินการที่ได้รับอนุญาตและการเข้าถึงเท่านั้นที่จะมอบให้กับผู้ใช้ปลายทาง
การเชื่อมต่อโดยนัยแบบง่ายในรูปแบบเก่าจะกระจายออบเจ็กต์การเชื่อมต่อไปยังผู้ใช้ปลายทาง ตัวอย่างเช่น หากคุณสร้างแอปที่กรองข้อมูลที่คุณไม่ต้องการให้ผู้ใช้เห็น แต่ข้อมูลที่กรองออกจะมีอยู่ในฐานข้อมูล แต่คุณอาศัยตัวกรองที่คุณกำหนดค่าไว้เพื่อให้แน่ใจว่าผู้ใช้จะไม่เห็นข้อมูลบางอย่าง
ด้วยการเชื่อมต่อโดยนัยแบบง่ายในรูปแบบเก่า หลังจากที่คุณปรับใช้แอปนี้ ผู้ใช้ปลายทางสามารถใช้การเชื่อมต่อที่ปรับใช้กับแอปของคุณในแอปใหม่ๆ ที่พวกเขาสร้างขึ้น ในแอปใหม่ ผู้ใช้สามารถดูข้อมูลที่คุณกรองออกในแอปพลิเคชันของคุณ การใช้การเชื่อมต่อโดยนัยที่ปลอดภัยใหม่เป็นสิ่งสำคัญ
ข้อสำคัญ
เมื่อมีการปรับใช้การเชื่อมต่อที่ใช้ร่วมกันโดยนัยที่เก่ากว่ากับผู้ใช้ปลายทางแล้ว ข้อจำกัดที่คุณอาจใส่ไว้ในแอปที่คุณใช้ร่วมกัน (เช่น ตัวกรองหรือการเข้าถึงแบบอ่านอย่างเดียว) จะไม่มีผลกับแอปใหม่ที่ผู้ใช้ปลายทางสร้างอีกต่อไป ผู้ใช้จะมีสิทธิ์ใดๆ ก็ตามที่การรับรองความถูกต้องอนุญาตโดยเป็นส่วนหนึ่งของการเชื่อมต่อที่ใช้ร่วมกันโดยนัย ดังนั้น เมื่อคุณแปลงแอปให้ใช้การเชื่อมต่อโดยนัยที่ปลอดภัย คุณต้องยกเลิกการเชื่อมต่อที่คุณใช้ร่วมกับแอปของคุณด้วย ผู้ดูแลระบบสามารถรับรายงานแอปที่มีการเชื่อมต่อที่ใช้ร่วมกันโดยนัยด้วยชุดเครื่องมือ COE
การรักษาความปลอดภัยของไคลเอ็นต์และเซิร์ฟเวอร์
คุณไม่สามารถพึ่งพาการรักษาความปลอดภัยของข้อมูลผ่านการกรองหรือการดำเนินการฝั่งไคลเอ็นต์อื่น ๆ เพื่อความปลอดภัย แอปพลิเคชันที่ต้องการการกรองข้อมูลอย่างปลอดภัยต้องตรวจสอบให้แน่ใจว่าทั้งการระบุผู้ใช้และการกรองเกิดขึ้นบนเซิร์ฟเวอร์
ใช้บริการ เช่น Microsoft Entra ID แทนที่จะอาศัยตัวกรองที่ออกแบบภายในแอปเมื่อพูดถึงข้อมูลประจำตัวและความปลอดภัยของผู้ใช้ การกำหนดค่านี้ช่วยให้แน่ใจว่าตัวกรองฝั่งเซิร์ฟเวอร์ทำงานตามที่คาดไว้
ภาพประกอบต่อไปนี้จะอธิบายว่ารูปแบบความปลอดภัยภายในแอปแตกต่างกันอย่างไรระหว่างโมเดลความปลอดภัยฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์
ในรูปแบบแอปความปลอดภัยของไคลเอ็นต์ [1] ผู้ใช้รับรองความถูกต้องกับแอปพลิเคชันทางฝั่งไคลเอ็นต์เท่านั้น แล้ว [2] แอปพลิเคชันขอข้อมูลของบริการและ [3] บริการส่งคืนข้อมูลตามคำขอข้อมูลเท่านั้น
ในรูปแบบความปลอดภัยฝั่งเซิร์ฟเวอร์ [1] ผู้ใช้จะรับรองความถูกต้องในบริการก่อนเพื่อให้รู้จักผู้ใช้บริการ จากนั้น [2] เมื่อมีการเรียกใช้จากแอปพลิเคชัน บริการ [3] ใช้ข้อมูลประจำตัวที่รู้จักของผู้ใช้ปัจจุบันเพื่อกรองข้อมูลอย่างเหมาะสมและ [4] ส่งคืนข้อมูล
สถานการณ์การแบ่งปันแผนกโดยนัยที่อธิบายข้างต้นเป็นการผสมผสานระหว่างรูปแบบทั้งสองนี้ ผู้ใช้ต้องลงชื่อเข้าใช้บริการ Power Apps โดยใช้ข้อมูลประจำตัว Microsoft Entra ลักษณะการทำงานนี้คือรูปแบบแอปความปลอดภัยของเซิร์ฟเวอร์ ผู้ใช้เป็นที่รู้จักโดยใช้ข้อมูลประจำตัว Microsoft Entra ในบริการ ดังนั้น แอปนี้จึงจำกัดเฉพาะกลุ่มผู้ใช้ที่ Power Apps ได้แบ่งปันแอปพลิเคชันอย่างเป็นทางการ
อย่างไรก็ตาม การเชื่อมต่อที่ใช้ร่วมกันโดยนัยกับ SQL Server เป็นรูปแบบแอปความปลอดภัยของไคลเอ็นต์ SQL Server รู้เพียงว่ามีการใช้ชื่อผู้ใช้และรหัสผ่านเฉพาะ ตัวอย่างเช่น การกรองฝั่งไคลเอ็นต์ใดๆ สามารถข้ามได้ด้วยแอปพลิเคชันใหม่โดยใช้ชื่อผู้ใช้และรหัสผ่านเดียวกัน
ในการกรองข้อมูลทางฝั่งเซิร์ฟเวอร์อย่างปลอดภัย ให้ใช้คุณสมบัติความปลอดภัยในตัวใน SQL Server เช่น ความปลอดภัยระดับแถว สำหรับแถวและ ปฏิเสธ สิทธิ์สำหรับออบเจ็กต์เฉพาะ (เช่น คอลัมน์) แก่ผู้ใช้เฉพาะ วิธีนี้จะใช้ข้อมูลประจำตัวผู้ใช้ Microsoft Entra เพื่อกรองข้อมูลบนเซิร์ฟเวอร์
บริการขององค์กรที่มีอยู่บางบริการได้ใช้วิธีการที่ข้อมูลประจำตัวผู้ใช้ถูกบันทึกในชั้นข้อมูลธุรกิจในลักษณะเดียวกับที่ Microsoft Dataverse ทำ ในกรณีนี้ ชั้นธุรกิจอาจใช้หรือไม่ใช้การรักษาความปลอดภัยระดับแถวของ SQL Server และปฏิเสธคุณลักษณะโดยตรง หากไม่เป็นเช่นนั้น มักมีการเปิดใช้งานการรักษาความปลอดภัยโดยใช้ Stored Procedure หรือมุมมองที่เก็บไว้
ชั้นธุรกิจ (บนฝั่งเซิร์ฟเวอร์) ใช้ข้อมูลประจำตัว Microsoft Entra ของผู้ใช้ที่รู้จักเพื่อเรียกใช้กระบวนงานที่เก็บไว้เป็นหลักของ SQL Server และกรองข้อมูล อย่างไรก็ตาม Power Apps ไม่ได้เชื่อมต่อกับ Stored Procedure ในขณะนี้ ชั้นธุรกิจอาจเรียกใช้มุมมองที่ใช้ข้อมูลประจำตัว Microsoft Entra เป็นหลักของ SQL Server ในกรณีนี้ ให้ใช้ Power Apps เพื่อเชื่อมต่อกับมุมมองเพื่อให้ข้อมูลถูกกรองบนฝั่งเซิร์ฟเวอร์ การเปิดเผยมุมมองต่อผู้ใช้อาจจำเป็นต้องใช้โฟลว์ Power Automate สำหรับการปรับปรุงเท่านั้น