API การรับรองความถูกต้อง
API การรับรองความถูกต้องช่วยให้วิชวลได้รับรหัส Microsoft Entra (เดิมเรียกว่า Azure AD) โทเค็นการเข้าถึงสําหรับผู้ใช้ที่ลงชื่อเข้าใช้ ซึ่งอํานวยความสะดวกในการรับรองความถูกต้องแบบลงชื่อเข้าระบบครั้งเดียว
ผู้ดูแลระบบ Power BI สามารถเปิดหรือปิดใช้งาน API ผ่านการ สลับส่วนกลางได้ การตั้งค่าเริ่มต้นบล็อก (ปิดใช้งาน) API
API สามารถใช้ได้กับวิชวล AppSource เท่านั้น และไม่ใช่สําหรับวิชวลส่วนตัว วิชวลที่อยู่ระหว่างการพัฒนาสามารถทดสอบได้ในโหมดดีบักก่อนที่จะเผยแพร่
สภาพแวดล้อมที่สนับสนุน
สภาพแวดล้อมต่อไปนี้ได้รับการสนับสนุน:
- เว็บ
- เดสก์ท็อป
- RS Desktop
- มือถือ
สภาพแวดล้อมที่ไม่สนับสนุน
สภาพแวดล้อมต่อไปนี้ยังไม่ได้รับการสนับสนุน:
- บริการ RS
- การวิเคราะห์แบบฝังตัว
- ทีม
วิธีการใช้ API การรับรองความถูกต้อง
ใน ไฟล์ capabilities.json ให้เพิ่มสิทธิ์ "AADAuthentication" ด้วย Microsoft Entra ID ที่ลงทะเบียน URI ของแอปพลิเคชันสําหรับแต่ละระบบคลาวด์ที่สนับสนุน Fabric สร้างโทเค็นตามผู้ชมที่ได้รับการกําหนดค่าสําหรับระบบคลาวด์ปัจจุบันและส่งไปยังวิชวล
จากนั้นวิชวลสามารถใช้โทเค็นเพื่อรับรองความถูกต้องกับผู้ชมที่เกี่ยวข้องซึ่งแสดงถึงบริการ Backend ของมัน:
"privileges": [
{
"name": "AADAuthentication",
"parameters": {
"COM": "https://contoso.com",
"CN": "https://contoso.cn"
}
}
]
ใน ไฟล์ pbiviz.json ตั้งค่าเวอร์ชัน API เป็น 5.9.1 หรือสูงกว่า:
AcquireAADTokenService ที่เพิ่งเปิดเผยใหม่ประกอบด้วยสองวิธี:
acquireAADToken: ส่งกลับเพย์โหลดโทเค็นการรับรองความถูกต้องสําหรับวิ
AcquireAADTokenResult
ชวลหรือ null หากไม่สามารถรับได้/** * Enum representing the various clouds supported by the Authentication API. */ export const enum CloudName { COM = "COM", // Commercial Cloud CN = "CN", // China Cloud GCC = "GCC", // US Government Community Cloud GCCHIGH = "GCCHIGH", // US Government Community Cloud High DOD = "DOD", // US Department of Defense Cloud } /** * Interface representing information about the user associated with the token. */ export interface AcquireAADTokenUserInfo { userId?: string; // Unique identifier for the user tenantId?: string; // Unique identifier for the tenant } /** * Interface representing information about the fabric environment. */ export interface AcquireAADTokenFabricInfo { cloudName?: CloudName; // Name of the cloud environment } /** * Interface representing the result of acquiring a Microsoft Entra ID token. */ export interface AcquireAADTokenResult { accessToken?: string; // Access token issued by Microsoft Entra ID expiresOn?: number; // Expiration time of the access token userInfo?: AcquireAADTokenUserInfo; // Information about the user associated with the token fabricInfo?: AcquireAADTokenFabricInfo; // Information about the fabric environment }
acquireAADTokenstatus: ส่งกลับสถานะสิทธิ์การใช้งานอย่างใดอย่างหนึ่งต่อไปนี้ที่เกี่ยวข้องกับการรับโทเค็น
- อนุญาต: สิทธิ์การใช้งานได้รับอนุญาตในสภาพแวดล้อมปัจจุบัน
- NotDeclared: การประกาศสิทธิ์ขาดหายไปในส่วนความสามารถของวิชวล
- ไม่รองรับ: สิทธิ์การใช้งานไม่ได้รับการสนับสนุนในสภาพแวดล้อมปัจจุบัน
- DisabledByAdmin: ผู้ดูแลระบบ Fabric ปฏิเสธการใช้สิทธิ์
โค้ดตัวอย่างต่อไปนี้สาธิตวิธีการรับโทเค็น Microsoft Entra ID โดยใช้ API:
// Step 1: Check the status of AAD token acquisition
const acquireTokenStatus = await this.acquireAADTokenService.acquireAADTokenstatus();
// Step 2: Verify if acquiring the token is allowed
if (acquireTokenStatus === PrivilegeStatus.Allowed) {
// Step 3: Acquire the Microsoft Entra ID token
const acquireAADTokenResult: AcquireAADTokenResult = await this.acquireAADTokenService.acquireAADToken();
// Step 4: Confirm successful acquisition of the access token
if (acquireAADTokenResult.accessToken) {
// Step 5: Call your backend API with the obtained token
}
}
// Step 6: Handle unsuccessful AAD token acquisition
ข้อควรพิจารณาและข้อจำกัด
การรับโทเค็นถูกบล็อค ถ้าเป็นไปตามเงื่อนไขใดๆ ต่อไปนี้:
สวิตช์ผู้เช่าปิดอยู่
ผู้ใช้ไม่ได้ลงชื่อเข้าใช้ (ในเดสก์ท็อป)
ISV ไม่ได้รับรองความถูกต้องแอปพลิเคชัน Power BI ล่วงหน้า
รูปแบบของพารามิเตอร์สิทธิ์ AADAuthentication ไม่ถูกต้อง
วิชวลไม่ได้รับการอนุมัติแบบสาธารณะหรือไม่ใช่ดีบักวิชวล
บริการ Backend ของวิชวลซึ่งกําหนดค่าเป็นผู้ชมโดยวิชวล ไม่ได้รับความยินยอมที่เหมาะสมสําหรับ Graph API ในผู้เช่าผู้บริโภคโดยใช้วิชวล สําหรับข้อมูลเพิ่มเติมเกี่ยวกับความยินยอม ดู ความยินยอมของผู้ดูแลระบบผู้เช่า