สิทธิ์ของ Microsoft Entra
บทความ 06/03/2024
3 ผู้สนับสนุน
คำติชม
ในบทความนี้
เมื่อคุณ ลงทะเบียนแอป Microsoft Entra ของคุณ คุณจะให้สิทธิ์ในการเข้าถึง API ต่าง ๆ เมื่อคุณต้องการเปลี่ยนแปลง คุณอาจต้องการปรับสิทธิ์เหล่านี้ บทความนี้แสดงให้เห็นว่าคุณจะทําอย่างไร
หมายเหตุ
สิทธิ์ของแอป Microsoft Entra จะใช้ได้สําหรับสถานการณ์เหล่านี้เท่านั้น:
การฝังตัวสําหรับองค์กรของคุณ
ฝังตัวสําหรับลูกค้า ของคุณด้วย วิธีการรับรองความถูกต้องผู้ใช้ หลัก
แก้ไขการตั้งค่าสิทธิ์ในแอป Microsoft Entra ของคุณ
การเปลี่ยนแปลงสิทธิ์สามารถทําได้ผ่านการกําหนดด้วยโปรแกรมหรือในพอร์ทัล Azure
ในพอร์ทัล Azure คุณสามารถดูแอปของคุณและทําการเปลี่ยนแปลงสิทธิ์ได้
ลงชื่อเข้าใช้พอร์ทัล Azure
เลือกผู้เช่า Microsoft Entra ของคุณโดยการเลือกบัญชีของคุณในมุมบนขวาของหน้า
เลือก การลงทะเบียน แอป หากคุณไม่เห็นตัวเลือกนี้ ให้ค้นหา
จากแท็บ แอปพลิเคชัน ที่เป็นเจ้า เลือกแอปของคุณ แอปพลิเคชันจะเปิดขึ้นใน แท็บภาพรวม ซึ่งคุณสามารถตรวจสอบ ID แอปพลิเคชันได้
เลือก แท็บ ดูสิทธิ์ API
เลือก เพิ่มสิทธิ์
เมื่อต้องการเพิ่มสิทธิ์ ให้ทําตามขั้นตอนเหล่านี้ (โปรดทราบว่าขั้นตอนแรกจะแตกต่างกันสําหรับแอป GCC):
จากแท็บ Microsoft API เลือกบริการของ Power BI
หมายเหตุ
สําหรับแอป GCC เลือกแท็บ API ที่องค์กรของฉันใช้ และค้นหา Microsoft Power BI Government Community Cloud หรือ fc4979e5-0aa5-429f-b13a-5d1365be5566
เลือก สิทธิ์ ที่ได้รับมอบ และเพิ่มหรือลบสิทธิ์เฉพาะที่คุณต้องการ
เมื่อคุณทําเสร็จแล้ว เลือก เพิ่มสิทธิ์ เพื่อบันทึกการเปลี่ยนแปลงของคุณ
เมื่อต้องการเอาสิทธิ์ออก ให้ทําตามขั้นตอนเหล่านี้:
เลือกจุดไข่ปลา (...) ทางด้านขวาของสิทธิ์
เลือก เอาสิทธิ์ ออก
ในหน้าต่างป็อปอัพ เอาสิทธิ์ ออก ให้เลือก ใช่ เอาออก
เมื่อต้องเปลี่ยนสิทธิ์ของแอป Microsoft Entra ของคุณผ่านทางการเขียนโปรแกรม คุณจะต้องได้รับบริการหลัก (ผู้ใช้) ที่มีอยู่ภายในผู้เช่าของคุณ สําหรับข้อมูลเกี่ยวกับวิธีการดังกล่าว ดู sorvicePrincipal
เมื่อต้องการรับบริการหลักทั้งหมดภายในผู้เช่าของคุณ ให้Get servicePrincipal
เรียกใช้ API โดยไม่มี{ID}
ตรวจสอบบริการหลักด้วย ID แอปพลิเคชันของแอปของคุณเป็นappId
คุณสมบัติ (displayName
เป็นทางเลือก)
Post https://graph.microsoft.com/v1.0/servicePrincipals HTTP/1.1
Authorization: Bearer ey..qw
Content-Type: application/json
{
"accountEnabled" : true,
"appId" : "{App_Client_ID}",
"displayName" : "{App_DisplayName}"
}
ให้สิทธิ์ Power BI แก่แอปของคุณ โดยกําหนดค่าใดค่าหนึ่งเป็น consentType
:
AllPrincipals
- ผู้ดูแลระบบ Power BI สามารถใช้เพื่อให้สิทธิ์ในนามของผู้ใช้ทั้งหมดในผู้เช่าเท่านั้น
Principal
- ใช้เพื่อให้สิทธิ์ในนามของผู้ใช้ที่ระบุ ถ้าคุณกําลังใช้ตัวเลือกนี้ ให้ principalId={User_ObjectId}
เพิ่มคุณสมบัติ ลงในเนื้อความของคําขอ
Post https://graph.microsoft.com/v1.0/OAuth2PermissionGrants HTTP/1.1
Authorization: Bearer ey..qw
Content-Type: application/json
{
"clientId":"{Service_Plan_ID}",
"consentType":"AllPrincipals",
"resourceId":"c78a3685-1ce7-52cd-95f7-dc5aea8ec98e",
"scope":"Dataset.ReadWrite.All Dashboard.Read.All Report.Read.All Group.Read Group.Read.All Content.Create Metadata.View_Any Dataset.Read.All Data.Alter_Any",
"expiryTime":"2018-03-29T14:35:32.4943409+03:00",
"startTime":"2017-03-29T14:35:32.4933413+03:00"
}
หมายเหตุ
หากคุณกําลังใช้ ผู้ใช้ หลัก เพื่อหลีกเลี่ยงการพร้อมท์ถามความยินยอมโดย Microsoft Entra ID คุณจะต้องให้สิทธิ์แก่บัญชีหลัก
resourceId
c78a3685-1ce7-52cd-95f7-dc5aea8ec98e ขึ้นอยู่กับผู้เช่าและไม่เป็นสากล ค่านี้คือ objectId ของแอปพลิเคชันบริการ Power BI ใน ID Microsoft Entra หากต้องการรับค่านี้จากพอร์ทัล Azure ให้นําทางไปยังแอปพลิเคชัน Enterprise แอปพลิเคชัน ทั้งหมด และค้นหาบริการ ของ Power BI >
ให้สิทธิ์แอปกับ Microsoft Entra ID โดยกําหนดค่าให้กับconsentType
Post https://graph.microsoft.com/v1.0/OAuth2PermissionGrants HTTP/1.1
Authorization: Bearer ey..qw
Content-Type: application/json
{
"clientId":"{Service_Plan_ID}",
"consentType":"AllPrincipals",
"resourceId":"61e57743-d5cf-41ba-bd1a-2b381390a3f1",
"scope":"User.Read Directory.AccessAsUser.All",
"expiryTime":"2018-03-29T14:35:32.4943409+03:00",
"startTime":"2017-03-29T14:35:32.4933413+03:00"
}
คุณยังสามารถเปลี่ยนสิทธิ์แอป Microsoft Entra ของคุณโดยใช้ C# ได้ สําหรับข้อมูลเพิ่มเติม ดู API สําหรับ oAuth2PermissionGrant วิธีนี้มีประโยชน์หากคุณกําลังพิจารณาทําให้กระบวนการบางอย่างเป็นไปโดยอัตโนมัติ
var graphClient = GetGraphClient();
currentState.createdApp = await graphClient.Applications
.Request()
.AddAsync(application);
System.Threading.Thread.Sleep(2000);
var passwordCredential = new PasswordCredential
{
DisplayName = "Client Secret Created in C#"
};
currentState.createdSecret = await graphClient.Applications[currentState.createdApp.Id]
.AddPassword(passwordCredential)
.Request()
.PostAsync();
var servicePrincipal = new ServicePrincipal
{
AppId = currentState.createdApp.AppId
};
currentState.createdServicePrincipal = await graphClient.ServicePrincipals
.Request()
.AddAsync(servicePrincipal);
GraphServiceClient graphClient = new GraphServiceClient(authProvider);
// Use oAuth2PermissionGrant to change permissions
var oAuth2PermissionGrant = await graphClient.Oauth2PermissionGrants["{id}"]
.Request()
.GetAsync();
เนื้อหาที่เกี่ยวข้อง