การรักษาความปลอดภัยระดับออบเจ็กต์
นําไปใช้กับ: ผู้ใช้ข้อมูลที่เป็นเจ้าของข้อมูล แอปเป็นเจ้าของข้อมูล
บทความนี้อธิบายวิธีการฝังเนื้อหา Power BI ที่ใช้ OLS ในสถานการณ์ แอป Power BI ที่เป็นเจ้าของข้อมูล (ฝังสําหรับลูกค้าของคุณ)
ในสถานการณ์นี้ ISV มีตารางที่มีข้อมูลที่ละเอียดอ่อนและเมตาดาต้าที่ต้องการซ่อนจากลูกค้าของรายงาน
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับ OLS ให้ไปที่ การรักษาความปลอดภัยระดับวัตถุ (OLS)
ข้อกำหนดเบื้องต้น
บทความนี้อนุมานว่าคุณมีรายงานที่ใช้ OLS และคุณต้องการฝังลงในแอป หากต้องการสร้างรายงานที่ใช้ OLS ให้ดู การรักษาความปลอดภัยระดับออบเจ็กต์ (OLS)
คุณสามารถสร้างรายงานได้โดยใช้แบบจําลองใด ๆ ต่อไปนี้:
- Cloud OLS
- รายงานการเชื่อมต่อสดไปยัง Azure Analysis Services ด้วยบทบาท OLS
- รายงานการเชื่อมต่อสดไปยัง SQL Server Analysis Services ด้วยบทบาท OLS
ฝังรายงานที่ใช้การรักษาความปลอดภัยระดับวัตถุ
กระบวนการ สร้างโทเค็น แบบฝังตัวสําหรับสินค้าที่ใช้ OLS จะเหมือนกับสําหรับ RLS แบบคงที่ คุณต้องมีบทบาทและชื่อผู้ใช้
ถ้ารายงานที่คุณต้องการฝังกําลังใช้หนึ่งในสถานการณ์ต่อไปนี้ คุณอาจต้องทําตามขั้นตอนเพิ่มเติม:
- การสร้างโทเค็น OLS ระบบคลาวด์
- การสร้างโทเค็น SQL Server Analysis Services (SSAS)
- การสร้างโทเค็น Microsoft Entra ID
ตัวอย่างต่อไปนี้แสดงวิธีการสร้างโทเค็นเพื่อซ่อนตารางที่มีข้อมูลที่ละเอียดอ่อนโดยใช้ OLS:
public EmbedToken GetEmbedToken(Guid reportId, IList<Guid> datasetIds, [Optional] Guid targetWorkspaceId)
{
PowerBIClient pbiClient = this.GetPowerBIClient();
// Defines the user identity and roles.
var olsIdentity = new EffectiveIdentity(
username: "All",
roles: new List<string>{ "SensitiveTableOLS" }, // Role created to hide a table that has sensitive information
datasets: new List<string>{ datasetId.ToString()}
);
// Create a request for getting an embed token for the OLS identity defined above
var tokenRequest = new GenerateTokenRequestV2(
reports: new List<GenerateTokenRequestV2Report>() { new GenerateTokenRequestV2Report(reportId) },
datasets: datasetIds.Select(datasetId => new GenerateTokenRequestV2Dataset(datasetId.ToString())).ToList(),
targetWorkspaces: targetWorkspaceId != Guid.Empty ? new List<GenerateTokenRequestV2TargetWorkspace>() { new GenerateTokenRequestV2TargetWorkspace(targetWorkspaceId) } : null,
identities: new List<EffectiveIdentity> { olsIdentity }
);
// Generate an embed token
var embedToken = pbiClient.EmbedToken.GenerateToken(tokenRequest);
return embedToken;
}
ข้อควรพิจารณาและข้อจำกัด
ดูข้อจํากัดสําหรับแบบจําลอง OLS
เนื้อหาที่เกี่ยวข้อง
การรักษาความปลอดภัยระดับวัตถุใน Azure Analysis Services
มีคำถามเพิ่มเติมหรือไม่? ลองถามชุมชน Power BI ดู