แชร์ผ่าน


การรับรองความถูกต้อง (พรีวิว)

บทความนี้ให้ภาพรวมของการตั้งค่า Microsoft Entra สำหรับการเรียก Power Platform API (พรีวิว) ในการเข้าถึงทรัพยากรที่มีให้ผ่านทาง API ของ Power Platform คุณต้องรับโทเค็นแบบแบเรอร์จาก Microsoft Entra และส่งเป็นส่วนหัวพร้อมกับคำขอแต่ละรายการ ขึ้นอยู่กับชนิดของข้อมูลเฉพาะตัวที่คุณสนับสนุน (ผู้ใช้กับหลักบริการ) มีขั้นตอนที่แตกต่างกันในการรับโทเค็นแบบแบเรอร์นี้ ตามที่อธิบายไว้ในบทความนี้

จำเป็นต้องมีขั้นตอนต่อไปนี้เพื่อรับโทเค็นแบบแบเรอร์ที่มีสิทธิ์ที่ถูกต้อง:

  1. สร้างการลงทะเบียนโปรแกรมประยุกต์ในผู้เช่า Microsoft Entra ของคุณ
  2. กำหนดค่าสิทธิ์ API
  3. กำหนดค่าไคลเอ็นต์สาธารณะ (ไม่บังคับ)
  4. กำหนดค่าใบรับรองและข้อมูลลับ (ไม่บังคับ)
  5. คำขอโทเค็นการเข้าใช้

ขั้นตอนที่ 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 - สร้างหลักการบริการ