หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
บทความนี้แสดงภาพรวมของการตั้งค่า Microsoft Entra สําหรับการเรียกใช้ Power Platform API หากต้องการเข้าถึงทรัพยากรที่พร้อมใช้งานผ่าน Power Platform API คุณต้องได้รับโทเค็นแบเรอร์จาก Microsoft Entra และส่งเป็นส่วนหัวพร้อมกับคําขอแต่ละรายการ ทั้งนี้ขึ้นอยู่กับชนิดของข้อมูลประจําตัวที่คุณกําลังสนับสนุน (ผู้ใช้เทียบกับบริการหลัก) มีโฟลว์ที่แตกต่างกันในการรับโทเค็นแบเรอร์นี้ ตามที่อธิบายไว้ในบทความนี้
หากต้องการรับโทเค็นแบบแบเรอร์ที่มีสิทธิ์ที่ถูกต้อง ให้ทําตามขั้นตอนต่อไปนี้:
- สร้างการลงทะเบียนแอปพลิเคชันในผู้เช่า Microsoft Entra ของคุณ
- กําหนดค่าสิทธิ์ API
- กําหนดค่าแพลตฟอร์มและเปลี่ยนเส้นทาง URI
- (ไม่บังคับ) กําหนดค่าใบรับรองและข้อมูลลับ
- ร้องขอโทเค็นการเข้าถึง
ขั้นตอนที่ 1 สร้างการลงทะเบียนโปรแกรมประยุกต์ในผู้เช่า Microsoft Entra ของคุณ
- ไปยังพอร์ทัล Azure
- เลือก Id Microsoft Entra ที่ด้านบนของหน้า จากนั้นเลือก+ เพิ่ม>การลงทะเบียนแอป
- กรอกข้อมูลในหน้า ลงทะเบียนแอปพลิเคชัน :
- ชื่อ — ตั้งชื่อที่รู้จักให้กับแอปพลิเคชัน เช่น SDK ของผู้ดูแลระบบ Power Platform
- ชนิดบัญชีที่รองรับ — เลือกเฉพาะผู้เช่าเดี่ยว - <ชื่อ>บริษัทของคุณ
- เปลี่ยนเส้นทาง URI — ข้ามขั้นตอนนี้ไปเลย คุณกําหนดค่าได้ในขั้นตอนที่ 3
- เลือก ลงทะเบียน เพื่อสร้างแอปพลิเคชัน หลังจากการลงทะเบียนเสร็จสมบูรณ์ ให้จด ID แอปพลิเคชัน (ไคลเอนต์) และ ID ไดเรกทอรี (ผู้เช่า) จากหน้าภาพรวม — คุณจําเป็นต้องมีทั้งสองค่าในภายหลัง
คุณยังสามารถสร้างการลงทะเบียนโดยใช้ Azure CLI:
az login
az ad app create --display-name "Power Platform Admin SDK" --sign-in-audience AzureADMyOrg
คําสั่งส่งกลับออบเจ็กต์ JSON โปรดสังเกตค่า appId — ค่านี้คือ ID ไคลเอ็นต์ของคุณ
ขั้นตอนที่ 2 กำหนดค่าสิทธิ์ API
ในการลงทะเบียนแอปใหม่ของคุณ ไปที่แท็บ จัดการ - สิทธิ์ API ภายใต้ส่วนกําหนดค่าสิทธิ์ เลือกเพิ่มสิทธิ์ ในกล่องโต้ตอบ เลือก API ที่องค์กรของฉันใช้แท็บ จากนั้นค้นหา Power Platform API คุณอาจเห็นหลายรายการที่มีชื่อคล้ายกับรายการนี้ ดังนั้นคุณควรตรวจสอบให้แน่ใจว่าคุณใช้รายการที่มี GUID 8578e004-a5c6-46e7-913e-12f58912df43
หากคุณไม่เห็น Power Platform API แสดงในรายการเมื่อค้นหาโดย GUID คุณอาจยังสามารถเข้าถึงได้ แต่ไม่มีการรีเฟรชการมองเห็น เมื่อต้องการบังคับให้รีเฟรช เรียกใช้สคริปต์ต่อไปนี้:
#Install the Microsoft Graph PowerShell SDK module
Install-Module Microsoft.Graph -Scope CurrentUser -Repository PSGallery -Force
Connect-MgGraph
New-MgServicePrincipal -AppId 8578e004-a5c6-46e7-913e-12f58912df43 -DisplayName "Power Platform API"
จากที่นี่ เลือกสิทธิ์ที่คุณต้องการ สิทธิ์เหล่านี้จะถูกจัดกลุ่มตาม Namespaces ภายใน namespace คุณจะเห็นชนิดทรัพยากรและการดําเนินการ เช่น AppManagement.ApplicationPackages.Read ซึ่งให้สิทธิ์การอ่านสําหรับแพคเกจแอปพลิเคชัน สําหรับข้อมูลเพิ่มเติม ให้ดูบทความ การอ้างอิงสิทธิ์
หมายเหตุ
Power Platform API ใช้สิทธิ์ที่ได้รับมอบหมายเท่านั้นในขณะนี้ สําหรับแอปพลิเคชันที่เรียกใช้ด้วยบริบทผู้ใช้ ให้ร้องขอสิทธิ์ที่ได้รับมอบหมายโดยใช้พารามิเตอร์ขอบเขต สิทธิ์เหล่านี้มอบหมายสิทธิ์ของผู้ใช้ที่ลงชื่อเข้าใช้ไปยังแอปพลิเคชันของคุณ เพื่อให้สามารถทําหน้าที่เป็นผู้ใช้เมื่อเรียกใช้จุดสิ้นสุด Power Platform API
สําหรับข้อมูลประจําตัวของบริการหลัก ไม่ใช้สิทธิ์ของแอปพลิเคชัน หลังจากที่คุณสร้างการลงทะเบียนแอปของคุณแล้ว ให้กําหนดบทบาท RBAC เพื่อให้สิทธิ์ที่กําหนดขอบเขต (เช่น ผู้สนับสนุน หรือ ผู้อ่าน) สําหรับข้อมูลเพิ่มเติม ดูบทช่วยสอน: กําหนดบทบาท RBAC ให้กับโครงร่างสําคัญของบริการ
หลังจากที่คุณเพิ่มสิทธิ์ที่จําเป็นให้กับแอปพลิเคชันแล้ว ให้เลือก ให้การยินยอมของผู้ดูแลระบบ เพื่อดําเนินการตั้งค่าให้เสร็จสมบูรณ์ โดยการให้ความยินยอมของผู้ดูแลระบบ คุณอนุญาตสิทธิ์สําหรับผู้ใช้ทั้งหมดในผู้เช่าเพื่อไม่ให้พวกเขาได้รับพร้อมท์ในกล่องโต้ตอบความยินยอมแบบโต้ตอบในครั้งแรกที่พวกเขาใช้แอปของคุณ หากคุณต้องการความยินยอมแบบโต้ตอบต่อผู้ใช้ ให้ทําตามแพลตฟอร์มข้อมูลประจําตัวของ Microsoft และโฟลว์รหัสการให้สิทธิ์ OAuth 2.0
คุณยังสามารถให้ความยินยอมของผู้ดูแลระบบโดยใช้ Azure CLI:
# Replace <app-id> with your application (client) ID
az ad app permission admin-consent --id <app-id>
ขั้นตอนที่ 3 กําหนดค่าแพลตฟอร์มและเปลี่ยนเส้นทาง URI
SDKs สคริปต์ PowerShell และแอปพลิเคชันเดสก์ท็อปที่รับรองความถูกต้องในนามของผู้ใช้ต้องมี URI เปลี่ยนเส้นทางเพื่อให้ Microsoft Entra สามารถส่งกลับโทเค็นกลับไปยังแอปพลิเคชันของคุณหลังจากการรับรองความถูกต้อง
ภายในการลงทะเบียนแอปของคุณ ไปที่จัดการ - การรับรองความถูกต้อง
เลือกเพิ่มการเปลี่ยนเส้นทาง URI จากนั้นเลือกแอปพลิเคชันอุปกรณ์เคลื่อนที่และเดสก์ท็อป
เลือก URI เปลี่ยนเส้นทางที่มีอยู่ภายในต่อไปนี้:
https://login.microsoftonline.com/common/oauth2/nativeclientเลือก กําหนดค่า เพื่อบันทึก
คุณยังสามารถเพิ่ม URI เปลี่ยนเส้นทางได้โดยใช้ Azure CLI:
# Replace <app-id> with your application (client) ID
az ad app update --id <app-id> --public-client-redirect-uris https://login.microsoftonline.com/common/oauth2/nativeclient
การตั้งค่าไคลเอ็นต์สาธารณะ
ในส่วนการตั้งค่าขั้นสูงบนแท็บการรับรองความถูกต้องเดียวกัน จะมีปุ่มสลับ อนุญาตโฟลว์ไคลเอ็นต์สาธารณะ ตั้งค่าการสลับนี้เป็น ใช่ เท่านั้นถ้าคุณวางแผนที่จะใช้โฟลว์ข้อมูลประจําตัวของรหัสผ่านเจ้าของทรัพยากร (ROPC) ซึ่งส่งชื่อผู้ใช้และรหัสผ่านโดยตรงในเนื้อความของการร้องขอโทเค็น
โฟลว์นี้ใช้ไม่ได้กับบัญชีที่เปิดใช้งานการรับรองความถูกต้องแบบหลายปัจจัย สําหรับโฟลว์โค้ดของเบราว์เซอร์หรืออุปกรณ์แบบโต้ตอบ คุณไม่จําเป็นต้องเปิดใช้งานการตั้งค่านี้
ขั้นตอนที่ 4 (ไม่บังคับ) กําหนดค่าใบรับรองและข้อมูลลับ
ถ้าแอปของคุณจําเป็นต้องอ่านและเขียนทรัพยากรในฐานะตัวมันเอง หรือที่เรียกว่า บริการหลัก มีสองวิธีในการรับรองความถูกต้อง หากต้องการใช้ใบรับรอง ให้ไปที่ จัดการ - ใบรับรองและข้อมูลลับ ภายใต้ส่วน ใบรับรอง อัปโหลดใบรับรอง x509 ที่คุณสามารถใช้เพื่อรับรองความถูกต้องได้
อีกวิธีหนึ่งคือการใช้ส่วน ข้อมูลลับ เพื่อสร้างข้อมูลลับของไคลเอ็นต์ บันทึกข้อมูลลับไว้ในที่ปลอดภัยเพื่อใช้กับความต้องการระบบอัตโนมัติของคุณ ตัวเลือกใบรับรองหรือข้อมูลลับช่วยให้คุณสามารถรับรองความถูกต้องกับ Microsoft Entra และรับโทเค็นสําหรับไคลเอ็นต์นี้ ซึ่งคุณส่งผ่านไปยัง REST API หรือ 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 คุณได้รับการตอบกลับที่คุณสามารถใช้เพื่อเรียกใช้ Power Platform API ในภายหลังได้
{
"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 พร้อมส่วนข้อมูลความลับของไคลเอ็นต์ วิธีการรับรองความถูกต้องนี้มักจะเรียกว่าการรับรองความถูกต้องแบบโครงร่างสําคัญของบริการ
สำคัญ
ก่อนที่จะใช้การรับรองความถูกต้องของบริการหลัก ให้ทําตามขั้นตอนที่ 1-4 ก่อนหน้าในบทความนี้เพื่อสร้างและกําหนดค่าการลงทะเบียนแอปของคุณด้วยใบรับรองหรือความลับของไคลเอ็นต์ จากนั้นกําหนดบทบาท RBAC สําหรับบริการหลักเพื่อควบคุมระดับการเข้าถึง เมื่อต้องการเรียนรู้เพิ่มเติม ดูบทช่วยสอน: กําหนดบทบาท RBAC ให้กับโครงร่างสําคัญของบริการ
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 คุณได้รับการตอบกลับที่คุณสามารถใช้เพื่อเรียกใช้ Power Platform API ในภายหลังได้
{
"token_type": "Bearer",
"expires_in": 3599,
"ext_expires_in": 3599,
"access_token": "eyJ0eXAiOiJKV1..."
}
ใช้ค่า access_token ในการเรียกต่อไปยัง Power Platform API พร้อมส่วนหัว HTTP ของ การอนุญาต สิทธิ์ที่มีประสิทธิภาพของบริการหลักจะถูกกําหนดโดยบทบาท RBAC ที่มอบหมายให้ เมื่อต้องการเรียนรู้วิธีการกําหนดบทบาท ดูบทช่วยสอน: กําหนดบทบาท RBAC ให้โครงร่างสําคัญของบริการ
เริ่มต้นใช้งานด่วนด้วย Azure CLI
สคริปต์ต่อไปนี้สร้างการลงทะเบียนแอปแบบครบวงจร เรียกใช้แต่ละคําสั่งตามลําดับและแทนที่ค่าตัวแทนข้อความด้วยของคุณเอง
# Sign in to Azure CLI
az login
# Create the app registration (single tenant)
az ad app create --display-name "Power Platform Admin SDK" --sign-in-audience AzureADMyOrg
# Save the app ID from the output, then create a service principal for it
az ad sp create --id <app-id>
# Add a delegated permission (example: AppManagement.ApplicationPackages.Read)
# The --api value is the Power Platform API app ID.
# The --api-permissions value is the permission ID and type (Scope = delegated).
# Repeat this command for each permission you need. See the Permission reference for IDs.
az ad app permission add --id <app-id> \
--api 8578e004-a5c6-46e7-913e-12f58912df43 \
--api-permissions <permission-id>=Scope
# Grant admin consent so users aren't prompted individually
az ad app permission admin-consent --id <app-id>
# Add the native client redirect URI for interactive auth
az ad app update --id <app-id> \
--public-client-redirect-uris https://login.microsoftonline.com/common/oauth2/nativeclient
หลังจากเรียกใช้คําสั่งเหล่านี้แล้ว คุณสามารถใช้การลงทะเบียนแอปกับ SDK, PowerShell หรือการเรียก REST โดยตรงได้ หากต้องการค้นหารหัสการอนุญาตสําหรับ--api-permissionsพารามิเตอร์ ให้ดู การอ้างอิงสิทธิ์
การแก้ไขปัญหาทั่วไป
ข้อผิดพลาด "ต้องให้ความยินยอม" หรือ "ต้องการการอนุมัติจากผู้ดูแลระบบ"
ข้อผิดพลาดนี้เกิดขึ้นเมื่อผู้ดูแลระบบไม่ยินยอมให้สิทธิ์ API ในการลงทะเบียนแอปของคุณ ไปที่ การลงทะเบียน>แอปสิทธิ์ API ของแอป>ของคุณ และเลือก ให้การยินยอมของผู้ดูแลระบบ
หรือ เรียกใช้:
az ad app permission admin-consent --id <app-id>
ข้อผิดพลาด "ผู้ใช้ไม่ได้ถูกกําหนดให้กับบทบาทสําหรับแอปพลิเคชัน"
ข้อผิดพลาดนี้หมายความว่า แอปพลิเคชันระดับองค์กรที่เชื่อมโยงกับการลงทะเบียนแอปของคุณจําเป็นต้องมีการกําหนดผู้ใช้เป็นใช่ เมื่อเปิดใช้งานการตั้งค่านี้ เฉพาะผู้ใช้หรือกลุ่มที่กําหนดให้กับแอปพลิเคชันเท่านั้นที่สามารถลงชื่อเข้าใช้ได้ หากต้องการแก้ไขข้อผิดพลาดนี้ ให้ทําตามหนึ่งในการดําเนินการต่อไปนี้:
- ไปที่แอปพลิเคชัน>Microsoft Entra ID> Enterprise คุณสมบัติแอป>ของคุณ และตั้งค่าการกําหนดที่จําเป็นสําหรับไม่
- เพิ่มผู้ใช้หรือกลุ่มความปลอดภัยที่เกี่ยวข้องภายใต้ ผู้ใช้และกลุ่ม
การเข้าถึงแบบบล็อกนโยบายการเข้าถึงตามเงื่อนไข
ถ้าองค์กรของคุณใช้นโยบายการเข้าถึงตามเงื่อนไข พวกเขาอาจบล็อกการได้รับโทเค็นสําหรับการลงทะเบียนแอปของคุณ สาเหตุทั่วไปรวมถึงข้อกําหนดการปฏิบัติตามข้อบังคับของอุปกรณ์ ข้อจํากัดของตําแหน่งที่ตั้ง หรือนโยบายตามความเสี่ยง ทํางานร่วมกับผู้ดูแลระบบ Microsoft Entra ของคุณเพื่อไม่รวมการลงทะเบียนแอปของคุณจากนโยบายหรือทําให้แน่ใจว่าไคลเอ็นต์เป็นไปตามข้อกําหนดของนโยบาย
"POWER Platform API" ไม่พบในตัวเลือก API
ถ้าการค้นหา Power Platform API ตามชื่อหรือ GUID ในกล่องโต้ตอบสิทธิ์ API ไม่ส่งกลับผลลัพธ์ โครงร่างสําคัญของบริการไม่ได้ถูกสร้างขึ้นในผู้เช่าของคุณ ทําตามขั้นตอนการบังคับรีเฟรชใน ขั้นตอนที่ 2 เพื่อสร้าง
รับรองความถูกต้องด้วย Power Platform SDKs และ PowerShell
ตัวอย่างต่อไปนี้แสดงวิธีการรับรองความถูกต้องและเรียกใช้ API ตัวอย่างโดยใช้ SDK และ PowerShell แต่ละรายการ ก่อนเรียกใช้ตัวอย่างเหล่านี้ ทําตามขั้นตอนที่ 1-3 ก่อนหน้าในบทความนี้เพื่อสร้างและกําหนดค่าการลงทะเบียนแอปของคุณ
การรับรองความถูกต้องแบบโต้ตอบ (ผู้ใช้ที่ได้รับมอบสิทธิ์)
การรับรองความถูกต้องแบบโต้ตอบจะเปิดหน้าต่างเบราว์เซอร์ให้ผู้ใช้ลงชื่อเข้าใช้ โฟลว์นี้ทํางานได้ดีที่สุดสําหรับสคริปต์นักพัฒนา เครื่องมือผู้ดูแลระบบ และสถานการณ์ใดๆ ที่ผู้ใช้ปรากฏอยู่
# Sign in interactively (opens a browser)
Connect-AzAccount
# Get an access token for the Power Platform API
$token = Get-AzAccessToken -ResourceUrl "https://api.powerplatform.com"
# Call the List Environments endpoint as an example
$headers = @{ Authorization = "Bearer $($token.Token)" }
$environments = Invoke-RestMethod -Uri "https://api.powerplatform.com/environmentmanagement/environments?api-version=2024-10-01" -Headers $headers
$environments.value | Format-Table name, properties.displayName
ไคลเอ็นต์ที่เป็นความลับ (บริการหลัก)
การรับรองความถูกต้องไคลเอ็นต์เป็นความลับใช้ข้อมูลลับของไคลเอ็นต์หรือใบรับรอง และไม่จําเป็นต้องมีการโต้ตอบกับผู้ใช้ โฟลว์การรับรองความถูกต้องนี้เหมาะที่สุดสําหรับบริการเบื้องหลัง ไปป์ไลน์ และระบบอัตโนมัติ
สำคัญ
ก่อนที่จะใช้การรับรองความถูกต้องของบริการหลัก ให้ทําตามขั้นตอนที่ 1-4 ด้านบนเพื่อสร้างและกําหนดค่าการลงทะเบียนแอปของคุณด้วยใบรับรองหรือข้อมูลลับของไคลเอ็นต์ จากนั้นกําหนดบทบาท RBAC สําหรับบริการหลักเพื่อควบคุมระดับการเข้าถึง สําหรับข้อมูลเพิ่มเติม ดูบทช่วยสอน: กําหนดบทบาท RBAC ให้กับโครงร่างสําคัญของบริการ
$tenantId = "YOUR_TENANT_ID"
$clientId = "YOUR_CLIENT_ID"
$clientSecret = "YOUR_CLIENT_SECRET"
# Request a token using client credentials
$body = @{
client_id = $clientId
scope = "https://api.powerplatform.com/.default"
client_secret = $clientSecret
grant_type = "client_credentials"
}
$tokenResponse = Invoke-RestMethod -Method Post `
-Uri "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" `
-ContentType "application/x-www-form-urlencoded" `
-Body $body
# Call the List Environments endpoint as an example
$headers = @{ Authorization = "Bearer $($tokenResponse.access_token)" }
$environments = Invoke-RestMethod -Uri "https://api.powerplatform.com/environmentmanagement/environments?api-version=2024-10-01" -Headers $headers
$environments.value | Format-Table name, properties.displayName
เนื้อหาที่เกี่ยวข้อง
บทช่วยสอน: กําหนดบทบาท RBAC ให้กับโครงร่างสําคัญของบริการ
การควบคุมการเข้าถึงตามบทบาทสําหรับศูนย์การจัดการ Power Platform
การอ้างอิงสิทธิ์