การรับรองความถูกต้อง (พรีวิว)
บทความนี้ให้ภาพรวมของการตั้งค่า Microsoft Entra สำหรับการเรียก Power Platform API (พรีวิว) ในการเข้าถึงทรัพยากรที่มีให้ผ่านทาง API ของ Power Platform คุณต้องรับโทเค็นแบบแบเรอร์จาก Microsoft Entra และส่งเป็นส่วนหัวพร้อมกับคำขอแต่ละรายการ ขึ้นอยู่กับชนิดของข้อมูลเฉพาะตัวที่คุณสนับสนุน (ผู้ใช้กับหลักบริการ) มีขั้นตอนที่แตกต่างกันในการรับโทเค็นแบบแบเรอร์นี้ ตามที่อธิบายไว้ในบทความนี้
จำเป็นต้องมีขั้นตอนต่อไปนี้เพื่อรับโทเค็นแบบแบเรอร์ที่มีสิทธิ์ที่ถูกต้อง:
- สร้างการลงทะเบียนโปรแกรมประยุกต์ในผู้เช่า Microsoft Entra ของคุณ
- กำหนดค่าสิทธิ์ API
- กำหนดค่าไคลเอ็นต์สาธารณะ (ไม่บังคับ)
- กำหนดค่าใบรับรองและข้อมูลลับ (ไม่บังคับ)
- คำขอโทเค็นการเข้าใช้
ขั้นตอนที่ 1 สร้างการลงทะเบียนโปรแกรมประยุกต์
นำทางไปยังหน้า สร้างการลงทะเบียนแอป Microsoft Entra และสร้างการลงทะเบียนใหม่ ตั้งชื่อโปรแกรมประยุกต์ และตรวจสอบให้แน่ใจว่าได้เลือกตัวเลือก ผู้เช่ารายเดียว แล้ว คุณข้ามการตั้งค่า URI การเปลี่ยนเส้นทางได้
ขั้นตอนที่ 2 กำหนดค่าสิทธิ์ API
ภายในการลงทะเบียนแอปใหม่ของคุณ ให้ไปที่แท็บ จัดการ - สิทธิ์ API ภายใต้ส่วน กำหนดค่าสิทธิ์ เลือก เพิ่มสิทธิ์ ในหน้าต่างกล่องโต้ตอบที่เปิดขึ้น ให้เลือกแท็บ API ที่องค์กรของฉันใช้ แล้วค้นหา API ของ Power Platform คุณอาจเห็นหลายรายการที่มีชื่อคล้ายกัน ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณใช้รายการนี้กับ GUID 8578e004-a5c6-46e7-913e-12f58912df43
ถ้าคุณไม่เห็น API ของ Power Platform ที่แสดงในรายการเมื่อค้นหาด้วย GUID อาจเป็นไปได้ว่าคุณยังเข้าถึงได้ แต่การมองเห็นไม่รีเฟรช เมื่อต้องการบังคับการเรียกใช้รีเฟรชภายใต้คริปต์ PowerShell:
#Install the Microsoft Entra the module
Install-Module AzureAD
Connect-AzureAD
New-AzureADServicePrincipal -AppId 8578e004-a5c6-46e7-913e-12f58912df43 -DisplayName "Power Platform API"
จากที่นี่ คุณต้องเลือกสิทธิ์ที่คุณต้องการ เหล่านี้จัดกลุ่มโดย เนมสเปซ ภายในเนมสเปซ คุณจะเห็นชนิดของทรัพยากรและการดำเนินการเช่น AppManagement.ApplicationPackages.Read ซึ่งจะให้สิทธิ์การอ่านสำหรับแพคเกจโปรแกรมประยุกต์ สำหรับข้อมูลเพิ่มเติม ดูที่บทความ การอ้างอิงสิทธิ์
หมายเหตุ
API ของ Power Platform ใช้ประโยชน์จากสิทธิ์ที่ได้รับมอบหมายเท่านั้นในขณะนี้ สำหรับโปรแกรมประยุกต์ที่ทำงานด้วยบริบทผู้ใช้ คุณขอสิทธิ์ที่ได้รับมอบสิทธิ์โดยใช้พารามิเตอร์ ขอบเขต สิทธิ์เหล่านี้จะมอบหมายสิทธิ์การใช้งานของผู้ใช้ที่ลงชื่อเข้าใช้ให้กับโปรแกรมประยุกต์ของคุณ ซึ่งช่วยให้ทำหน้าที่เป็นผู้ใช้เมื่อเรียกใช้จุดสิ้นสุด API ของ Power Platform
สำหรับข้อมูลเฉพาะตัวของบริการหลัก จะไม่ใช้สิทธิ์ของโปรแกรมประยุกต์ บริการหลักจะถือว่าเป็นผู้ดูแลระบบ Power Platform วันนี้แทนและต้องลงทะเบียนโดยทำตาม PowerShell - สร้างบริการหลัก
หลังจากเพิ่มสิทธิ์ที่จำเป็นในโปรแกรมประยุกต์แล้ว ให้เลือก ให้ความยินยอมของผู้ดูแลระบบ เพื่อทำการตั้งค่าให้เสร็จสิ้น สิ่งนี้จำเป็นสำหรับกรณีที่คุณต้องการอนุญาตให้ผู้ใช้เข้าถึงแอปของคุณได้ทันที แทนที่จะต้องได้รับประสบการณ์ความยินยอมแบบโต้ตอบ หากคุณสามารถรองรับความยินยอมแบบโต้ตอบได้ เราขอแนะนำให้ปฏิบัติตาม Microsoft แพลตฟอร์มการระบุตัวตนและกระแสโค้ดการอนุญาต OAuth 2.0
ขั้นตอนที่ 3 กำหนดค่าไคลเอ็นต์สาธารณะ (ไม่บังคับ)
หากแอปของคุณจะต้องการทรัพยากรการอ่านและเขียนในนามของผู้ใช้ คุณจะต้องเปิดใช้งานการตั้งค่าไคลเอ็นต์สาธารณะ นี่เป็นวิธีเดียวที่ Microsoft Entra ID จะยอมรับคุณสมบัติ username และ password ในเนื้อหาของคำขอโทเค็นของคุณ โปรดทราบด้วยว่า หากคุณวางแผนที่จะใช้คุณลักษณะนี้ คุณลักษณะนี้จะไม่ทำงานสำหรับบัญชีที่เปิดใช้งานการรับรองความถูกต้องโดยใช้หลายปัจจัย
หากต้องการเปิดใช้งาน โปรดไปที่แท็บ จัดการ - การรับรองความถูกต้อง ภายใต้ส่วน การตั้งค่าขั้นสูง ตั้งค่า ไคลเอ็นต์สาธารณะ เปลี่ยนเป็น ใช่
ขั้นตอนที่ 4 กำหนดค่าใบรับรองและข้อมูลลับ (ไม่บังคับ)
หากแอปของคุณจะต้องการทรัพยากรการอ่านและเขียนในนามของตัวเอง หรือที่เรียกว่า บริการหลัก มีวิธีการรับรองความถูกต้องสองวิธี หากต้องการใช้ใบรับรอง ให้ไปที่แท็บ จัดการ - ใบรับรองและข้อมูลลับ ภายใต้ส่วน ใบรับรอง ให้อัปโหลดใบรับรอง x509 ที่คุณสามารถใช้เพื่อรับรองความถูกต้องได้ อีกวิธีหนึ่งคือการใช้ส่วน ข้อมูลลับ เพื่อสร้างข้อมูลลับของไคลเอ็นต์ บันทึกข้อมูลลับไว้ในที่ปลอดภัยเพื่อใช้กับความต้องการระบบอัตโนมัติของคุณ ตัวเลือกใบรับรองหรือข้อมูลลับช่วยให้คุณสามารถรับรองความถูกต้องได้ด้วย Microsoft Entra และรับโทเค็นสำหรับไคลเอ็นต์นี้ ซึ่งคุณส่งต่อไปยัง REST APIs หรือ cmdlet ของ PowerShell
ขั้นตอนที่ 5 คำขอโทเค็นการเข้าใช้
มีสองวิธีในการรับโทเค็นแบบแบเรอร์ของสิทธิ์การเข้าถึง หนึ่งสำหรับชื่อผู้ใช้และรหัสผ่าน และอีกอันสำหรับบริการหลัก
โฟลว์ชื่อผู้ใช้และรหัสผ่าน
อย่าลืมอ่านส่วนไคลเอ็นต์สาธารณะด้านบน จากนั้นส่งคำขอ POST ผ่าน HTTP ไปที่ Microsoft Entra ID พร้อมส่วนข้อมูลชื่อผู้ใช้และรหัสผ่าน
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Accept: application/json
POST https://login.microsoftonline.com/YOUR_TENANT.COM/oauth2/v2.0/token
BODY:
client_id={CLIENT_ID_FROM_AZURE_CLIENT_APP}&scope=https://api.powerplatform.com/.default&username={USER_EMAIL_ADDRESS}&password={PASSWORD}&grant_type=password
ตัวอย่างข้างต้นประกอบด้วยตัวยึดตำแหน่งที่คุณสามารถดึงมาจากแอปพลิเคชันไคลเอ็นต์ของคุณได้ใน Microsoft Entra ID คุณได้รับการตอบกลับที่สามารถใช้ในการเรียกครั้งต่อไปไปยัง API ของ Power Platform
{
"token_type": "Bearer",
"scope": "https://api.powerplatform.com/AppManagement.ApplicationPackages.Install https://api.powerplatform.com/AppManagement.ApplicationPackages.Read https://api.powerplatform.com/.default",
"expires_in": 4747,
"ext_expires_in": 4747,
"access_token": "eyJ0eXAiOiJKV1QiLCJu..."
}
ใช้ค่า access_token ในการเรียกต่อไปยัง Power Platform API พร้อมส่วนหัว HTTP ของ การอนุญาต
โฟลว์บริการหลัก
อย่าลืมอ่านส่วนใบรับรองและข้อมูลลับด้านบน จากนั้นส่งคำขอ POST ผ่าน HTTP ไปที่ Microsoft Entra ID พร้อมส่วนข้อมูลความลับของไคลเอ็นต์ สิ่งนี้มักเรียกว่าการรับรองความถูกต้องหลักของบริการ
สำคัญ
สิ่งนี้สามารถใช้ได้หลังจากที่คุณลงทะเบียนรหัสแอปพลิเคชันไคลเอ็นต์นี้ด้วย Microsoft Power Platform ตามด้วยคู่มือ PowerShell หรือ REST ที่เกี่ยวข้อง
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Accept: application/json
POST https://login.microsoftonline.com/YOUR_TENANT.COM/oauth2/v2.0/token
BODY:
client_id={CLIENT_ID_FROM_AZURE_CLIENT_APP}&scope=https://api.powerplatform.com/.default&client_secret={SECRET_FROM_AZURE_CLIENT_APP}&grant_type=client_credentials
ตัวอย่างข้างต้นประกอบด้วยตัวยึดตำแหน่งที่คุณสามารถดึงมาจากแอปพลิเคชันไคลเอ็นต์ของคุณได้ใน Microsoft Entra ID คุณได้รับการตอบกลับที่สามารถใช้ในการเรียกครั้งต่อไปไปยัง API ของ Power Platform
{
"token_type": "Bearer",
"expires_in": 3599,
"ext_expires_in": 3599,
"access_token": "eyJ0eXAiOiJKV1..."
}
ใช้ค่า access_token ในการเรียกต่อไปยัง Power Platform API พร้อมส่วนหัว HTTP ของ การอนุญาต ดังที่กล่าวไว้ข้างต้น โฟลว์บริการหลักไม่ได้ใช้สิทธิ์ของโปรแกรมประยุกต์ และสำหรับตอนนี้ จะถือว่าเป็นผู้ดูแลระบบ Power Platform สำหรับการเรียกใช้ทั้งหมดที่พวกเขาทำ
ดูเพิ่มเติม
การสร้างแอปพลิเคชันหลักบริการผ่าน API (พรีวิว)
PowerShell - สร้างหลักการบริการ