หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ข้อมูลประจําตัวที่มีการจัดการของ Power Platform อนุญาตให้ปลั๊กอิน Dataverse หรือแพคเกจปลั๊กอินเชื่อมต่อกับทรัพยากร Azure เพื่อสนับสนุนข้อมูลประจําตัวที่มีการจัดการโดยไม่จําเป็นต้องมีข้อมูลประจําตัว บทความนี้จะช่วยคุณตั้งค่าข้อมูลประจำตัวที่มีการจัดการในสภาพแวดล้อม Power Platform ของคุณ
ข้อกำหนดเบื้องต้น
- การสมัครใช้งาน Azure ที่มีสิทธิ์เข้าถึงการจัดเตรียมข้อมูลประจำตัวที่มีการจัดการที่ผู้ใช้กำหนด (UAMI) หรือการลงทะเบียนแอปพลิเคชัน
- เครื่องมือสําหรับปลั๊กอินหรือแพคเกจปลั๊กอิน:
- Integrated Development Environment (IDE) เช่น Visual Studio เพื่อสร้างปลั๊กอิน
- Plugin Registration Tool
- SignTool.exe (Sign Tool) เพื่อลงนามในส่วนประกอบปลั๊กอิน
- Power Platform CLI
- ใบรับรองที่ถูกต้องสำหรับการเซ็นชื่อใน แอสเซมบลีของปลั๊กอิน
ตั้งค่าข้อมูลประจำตัวที่มีการจัดการ
ในการกําหนดค่าข้อมูลประจําตัวที่มีการจัดการของ Power Platform สําหรับปลั๊กอิน Dataverse หรือแพคเกจปลั๊กอิน ให้ทําตามขั้นตอนต่อไปนี้
- สร้างการลงทะเบียนแอปใหม่หรือข้อมูลประจำตัวที่มีการจัดการที่ผู้ใช้กำหนด
- กำหนดค่าข้อมูลรับรองข้อมูลประจำตัวที่รวมกัน
- สร้างและลงทะเบียนปลั๊กอิน Dataverse หรือแพคเกจปลั๊กอิน
ตรวจสอบให้แน่ใจว่าได้สร้างแอสเซมบลีปลั๊กอินและลงทะเบียนปลั๊กอินหรือแพคเกจปลั๊กอิน - สร้างระเบียนไอดีที่มีการจัดการใน Dataverse
- ให้สิทธิ์การเข้าถึงทรัพยากร Azure ไปยังแอปพลิเคชันหรือข้อมูลประจําตัวที่จัดการโดยผู้ใช้ (UAMI)
- ตรวจสอบความถูกต้องของการรวมปลั๊กอิน
สร้างการลงทะเบียนแอปใหม่หรือข้อมูลประจำตัวที่มีการจัดการที่ผู้ใช้กำหนด
คุณสามารถสร้างข้อมูลประจําตัวที่จัดการโดยผู้ใช้หรือแอปพลิเคชันใน Microsoft Entra ID โดยยึดตามสถานการณ์ต่อไปนี้
- ถ้าคุณต้องการข้อมูลประจําตัวของแอปที่เชื่อมโยงกับปลั๊กอินที่เชื่อมต่อกับทรัพยากร Azure เช่น Azure Key Vault ให้ใช้การลงทะเบียนแอปพลิเคชัน ด้วยข้อมูลประจำตัวของแอป คุณสามารถใช้นโยบาย Azure กับปลั๊กอินที่เข้าถึงทรัพยากร Azure ได้
- หากคุณต้องการให้โครงร่างสําคัญของบริการเข้าถึงทรัพยากร Azure เช่น Azure Key Vault คุณสามารถเตรียมใช้งานข้อมูลประจําตัวที่ได้รับการจัดการโดยผู้ใช้
หมายเหตุ
กรุณาบันทึกรหัสต่อไปนี้เพื่อใช้ในขั้นตอนต่อไป
- ID แอปพลิเคชัน (ไคลเอนต์)
- รหัสผู้เช่า
กำหนดค่าข้อมูลรับรองข้อมูลประจำตัวที่รวมกัน
เมื่อต้องการกำหนดค่าข้อมูลประจำตัวที่มีการจัดการ ให้เปิดข้อมูลประจำตัวที่มีการจัดการที่ผู้ใช้กำหนดหรือแอปพลิเคชัน Microsoft Entra ID ในพอร์ทัล Azure ที่คุณสร้างไว้ในส่วนก่อนหน้า
- ไปที่ พอร์ทัล Azure
- ไปยัง Microsoft Entra ID
- เลือก การลงทะเบียนแอป
- เปิดแอปที่คุณสร้างไว้ใน ตั้งค่าข้อมูลประจำตัวที่มีการจัดการ
- นําทางไปยัง ใบรับรองและความลับ
- เลือกแท็บ ข้อมูลประจําตัวภายนอก และเลือก เพิ่มข้อมูลประจําตัว
- เลือกผู้ออกเป็น ผู้ออกอื่นๆ
- ใส่ข้อมูลต่อไปนี้:
ผู้ออก
ใช้ผู้ออก v2.0 ของผู้เช่า:
https://login.microsoftonline.com/{tenantID}/v2.0
ตัวอย่าง
https://login.microsoftonline.com/5f8a1a9f-2e1a-415f-b10c-84c3736a21b9/v2.0
ประเภท
เลือก ตัวระบุหัวเรื่องที่ชัดเจน
ตัวระบุหัวเรื่อง
เลือกรูปแบบที่ตรงกับชนิดใบรับรองของคุณ:
ใบรับรองแบบลงนามด้วยตนเอง (เฉพาะการพัฒนาเท่านั้น):
/eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/h/{hash}ใบรับรองผู้ออกที่เชื่อถือได้ (แนะนําสําหรับการผลิต):
/eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/i/{issuer}/s/{certificateSubject}
การอ้างอิงเซกเมนต์
| เซ็กเมนต์ | คำอธิบาย |
|---|---|
| eid1 | เวอร์ชันรูปแบบข้อมูลประจําตัว |
| c/pub | รหัสระบบคลาวด์สําหรับระบบคลาวด์สาธารณะ ชุมชน Cloud สําหรับส่วนราชการ (GCC) และสถานีการวางจําหน่ายครั้งแรกใน GCC |
| t/{encodedTenantId} | รหัสผู้เช่า |
| a/qzXoWDkuqUa3l6zM5m0Rw/ | ใช้งานภายในเท่านั้น อย่าปรับเปลี่ยน |
| n/ปลั๊กอิน | คอมโพเนนต์ปลั๊กอิน |
| e/{environmentId} | รหัสสภาพแวดล้อม |
| h/{hash} | SHA-256 ของใบรับรอง (ที่เซ็นชื่อด้วยตนเองเท่านั้น) |
| i/{issuer} s/{certificateSubject} |
รายละเอียดผู้ออกที่เชื่อถือได้ |
สร้างใบรับรองแบบลงนามด้วยตนเอง
ปลั๊กอินทุกตัวต้องมีข้อมูลประจําตัวที่สามารถตรวจสอบได้ และใบรับรองการลงชื่อทําหน้าที่เป็นลายนิ้วมือที่ไม่ซ้ํากันของปลั๊กอิน โค้ดต่อไปนี้เป็นตัวอย่างส่วนย่อยของ PowerShell ที่คุณสามารถใช้เพื่อสร้างใบรับรองแบบลงนามด้วยตนเองสําหรับสถานการณ์การพัฒนาหรือการทดสอบ สําหรับการอ้างอิง คุณสามารถทําตามได้จากตัวอย่างที่ 3
$params = @{
Type = 'Custom'
Subject = 'E=admin@contoso.com,CN=Contoso'
TextExtension = @(
'2.5.29.37={text}1.3.6.1.5.5.7.3.4',
'2.5.29.17={text}email=admin@contoso.com' )
KeyAlgorithm = 'RSA'
KeyLength = 2048
SmimeCapabilities = $true
CertStoreLocation = 'Cert:\CurrentUser\My'
}
New-SelfSignedCertificate @params
หมายเหตุ
การเข้ารหัสสําหรับ {encodedTenantId}
- แปลง GUID → Hex
- แปลง Hex → Base64URL (ไม่ใช่ Base64 มาตรฐาน)
แฮชที่เซ็นชื่อด้วยตนเอง
- คํานวณ SHA-256 ผ่าน.cer ถ้าคุณมี .pfx ให้ส่งออก .cer ก่อน:
CertUtil -hashfile <CertificateFilePath> SHA256 $cert = Get-PfxCertificate -FilePath "path o\your.pfx" $cert.RawData | Set-Content -Encoding Byte -Path "extracted.cer"
สภาพแวดล้อมระบบคลาวด์ Azure แบบพิเศษ
ตั้งค่า ผู้ชมURL ผู้ออกและ คํานําหน้าหัวเรื่อง อย่างชัดเจนเมื่อปรับใช้นอกคลาวด์สาธารณะ GCC และสถานีการวางจําหน่ายครั้งแรกใน GCC:
| ระบบคลาวด์ | กลุ่มเป้าหมาย | URL ผู้ออก | คํานําหน้าหัวเรื่อง |
|---|---|---|---|
| GCC High & DoD | api://AzureADTokenExchangeUSGov |
https://login.microsoftonline.us |
/eid1/c/usg |
| มูนเค้ก (จีน) | api://AzureADTokenExchangeChina |
https://login.partner.microsoftonline.cn |
/eid1/c/chn |
| US National (USNAT) | api://AzureADTokenExchangeUSNat |
https://login.microsoftonline.eaglex.ic.gov |
/eid1/c/uss |
| US Secure (USSec) | api://AzureADTokenExchangeUSSec |
https://login.microsoftonline.scloud |
/eid1/c/usn |
หมายเหตุ
ค่า Audience ต้อง ตรงตามตัวพิมพ์ใหญ่-เล็ก และต้องตรงกันเท่านั้น
สําหรับระบบคลาวด์สาธารณะ GCC และสถานีการวางจําหน่ายครั้งแรกใน GCC (และระบบคลาวด์ที่ไม่ได้อยู่ในรายการ), ค่าเริ่มต้นคือ:
ผู้ชม api://AzureADTokenExchange, ผู้ออก https://login.microsoftonline.com, คำนำหน้าชื่อเรื่อง /eid1/c/pub
สร้างและลงทะเบียนปลั๊กอิน Dataverse หรือแพคเกจปลั๊กอิน
สร้างปลั๊กอินแอสเซมบลี
สร้างปลั๊กอิน โดยใช้ Visual Studio ขณะที่สร้างปลั๊กอิน ให้ใช้รหัสผู้เช่าจาก สร้างการลงทะเบียนแอปใหม่หรือข้อมูลประจำตัวที่จัดการที่ผู้ใช้กำหนด และขอบเขตเป็น URL ขององค์กร เช่น
https://{OrgName}.crm*.dynamics.com/.defaultหรือขอบเขตที่ละเอียดยิ่งขึ้นใช้ IManagedIdentityService และใช้วิธีการโทเค็นเพื่อขอโทเค็นที่มีขอบเขตที่กำหนด
ลายเซ็นของเมธอด:
string AcquireToken(IEnumerable<string> scopes);
การบรรจุและการลงนาม
การลงชื่อในแพคเกจปลั๊กอิน
ถ้าคุณกําลังสร้างแพคเกจปลั๊กอิน ให้ใช้ NuGet Sign CLI เพื่อสร้างแพคเกจจาก .nuspec หรือไฟล์ .csproj หลังจากสร้างแพคเกจแล้ว ให้ลงชื่อด้วยใบรับรองของคุณ
nuget sign YourPlugin.nupkg `
-CertificatePath MyCert.pfx `
-CertificatePassword "MyPassword" `
-Timestamper http://timestamp.digicert.com
การลงชื่อดิจิทัลของแอสเซมบลีปลั๊กอิน
หากคุณกําลังลงทะเบียนปลั๊กอิน (แอสเซมบลี) ให้ลงนาม DLL ด้วยใบรับรองโดยใช้ SignTool.exe (เครื่องมือลงชื่อ)
signtool sign /f MyCert.pfx /p MyPassword /t http://timestamp.digicert.com /fd SHA256 MyAssembly.dll
คุณสามารถเพิ่มการประทับเวลาได้โดยระบุ URL ของเซิร์ฟเวอร์ประทับเวลาตามมาตรฐาน RFC 3161
หมายเหตุ
ใช้ใบรับรองแบบลงนามด้วยตนเองเพื่อวัตถุประสงค์ในการพัฒนาหรือการทดสอบเท่านั้น อย่าใช้ใบรับรองแบบลงนามด้วยตนเองในสภาพแวดล้อมการผลิต
ลงทะเบียนปลั๊กอิน
ติดตั้งเครื่องมือลงทะเบียนปลั๊กอินถ้าคุณไม่มีเครื่องมือดังกล่าวบนเครื่องของคุณ สำหรับข้อมูลเพิ่มเติม โปรดดู เครื่องมือการพัฒนา Dataverse
ลงทะเบียนปลั๊กอิน สำหรับข้อมูลเพิ่มเติม โปรดดู ลงทะเบียนปลั๊กอิน
สร้างเรกคอร์ดข้อมูลประจำตัวที่มีการจัดการใน Dataverse
เพื่อเตรียมระเบียนข้อมูลประจำตัวที่มีการจัดการใน Dataverse ให้ทำตามขั้นตอนต่อไปนี้
สร้างข้อมูลประจําตัวที่มีการจัดการโดยการส่งคําขอ HTTP POST กับไคลเอ็นต์ REST (เช่น Insomnia) ใช้ URL และเนื้อความคําขอในรูปแบบต่อไปนี้
POST https://<<orgURL>>/api/data/v9.0/managedidentitiesอย่าลืมแทนที่ orgURL ด้วย URL ขององค์กร
ให้แน่ใจว่า credentialsource ถูกตั้งค่าเป็น 2 ในส่วนข้อมูล ขอบเขต ถูกตั้งค่าเป็น 1 สําหรับสถานการณ์เฉพาะสภาพแวดล้อม และ เวอร์ชัน ถูกตั้งค่าเป็น 1 ในส่วนข้อมูล
ส่วนข้อมูลตัวอย่าง
{ "applicationid": "<<appId>>", //Application Id, or ClientId, or User Managed Identity "managedidentityid": "<<anyGuid>>", "credentialsource": 2, // Managed client "subjectscope": 1, //Environment Scope "tenantid": "<<tenantId>>", //Entra Tenant Id "version": 1 }ปรับปรุงแพคเกจปลั๊กอินหรือเรกคอร์ดของแอสเซมบลีปลั๊กอินโดยการออกคําขอ HTTP PATCH เพื่อเชื่อมโยงกับข้อมูลประจําตัวที่มีการจัดการที่สร้างขึ้นในขั้นตอนที่ 1
แอสเซมบลีปลั๊กอิน
PATCH https://<<orgURL>>/api/data/v9.0/pluginassemblies(<<PluginAssemblyId>>)แพคเกจปลั๊กอิน
PATCH https://<<orgURL>>/api/data/v9.0/pluginpackages(<<PluginPackageId>>)ส่วนข้อมูลตัวอย่าง
{ "managedidentityid@odata.bind": "/managedidentities(<<ManagedIdentityGuid>>)" }ตรวจสอบให้แน่ใจว่าได้แทนที่ orgURL, PluginAssemblyId (หรือ PluginPackageId) และ ManagedIdentityGuid ด้วยค่าของคุณ
ให้สิทธิ์การเข้าถึงทรัพยากร Azure แก่แอปพลิเคชันหรือข้อมูลประจำตัวที่มีการจัดการที่ผู้ใช้กำหนด
หากคุณต้องการให้สิทธิ์การเข้าถึง ID แอปพลิเคชันเพื่อเข้าถึงทรัพยากร Azure เช่น Azure Key Vault ให้สิทธิ์การเข้าถึงแอปพลิเคชันหรือข้อมูลประจําตัวที่จัดการโดยผู้ใช้ไปยังทรัพยากรนั้น
ตรวจสอบความถูกต้องของการรวมปลั๊กอิน
ตรวจสอบว่าปลั๊กอินของคุณสามารถร้องขอการเข้าถึงทรัพยากร Azure ที่รองรับข้อมูลประจำตัวที่มีการจัดการได้อย่างปลอดภัย
คําถามที่พบบ่อย (FAQs)
ฉันจะแก้ไขข้อผิดพลาดนี้ได้อย่างไร
ถ้าคุณได้รับข้อผิดพลาดต่อไปนี้:
เกิดข้อผิดพลาด – ปัญหาด้านการกําหนดค่าทำให้ไม่สามารถรับรองความถูกต้องได้
AADSTS700213: ไม่พบระเบียนข้อมูลประจําตัวของภายนอกที่ตรงกัน
ทําตามขั้นตอนต่อไปนี้เพื่อแก้ไขปัญหา:
ตรวจสอบให้แน่ใจว่า FIC ได้รับการกําหนดค่าและบันทึกไว้อย่างถูกต้อง
ตรวจสอบว่าผู้ออก/หัวเรื่องตรงกับรูปแบบที่ระบุไว้ก่อนหน้านี้
คุณยังสามารถค้นหารูปแบบที่คาดไว้ในลำดับชั้นข้อผิดพลาด
ฉันจะแก้ไขข้อผิดพลาด "ไม่สามารถเข้าถึงหรือเชื่อมต่อกับ Power Platform" ได้อย่างไร?
โปรดดูช่วงที่อยู่ IP และ URL ของ Power Platform เพื่อให้แน่ใจว่า ปลายทาง Power Platform สามารถเข้าถึงได้และอยู่ในรายการอนุญาต