การรับรองความถูกต้อง JavaScript API
Fabric front end มี JavaScript API สําหรับปริมาณงาน Fabric เพื่อรับโทเค็นสําหรับแอปพลิเคชันใน Microsoft Entra ID บทความนี้อธิบาย API นี้
API
acquireAccessToken(params: AcquireAccessTokenParams): Promise<AccessToken>;
export interface AcquireAccessTokenParams {
additionalScopesToConsent?: string[];
claimsForConditionalAccessPolicy?: string;
promptFullConsent?: boolean;
}
API ส่งกลับวัตถุ AccessToken ที่ประกอบด้วยโทเค็นเองและวันหมดอายุสําหรับโทเค็น
เมื่อต้องการเรียกใช้ API ในตัวอย่าง Frontend ให้สร้างรายการตัวอย่าง จากนั้นเลื่อนลงและเลือก นําทางไปยังหน้าการรับรองความถูกต้อง จากตรงนั้น คุณสามารถเลือก รับโทเค็น การเข้าถึง เพื่อรับโทเค็นย้อนกลับ
การยินยอม
หากต้องการทําความเข้าใจเกี่ยวกับสาเหตุที่จําเป็นต้องได้รับความยินยอม โปรดไปที่ การยินยอมของผู้ใช้และผู้ดูแลระบบ ใน Microsoft Entra ID
หมายเหตุ
ต้องใช้ความยินยอมสําหรับ CRUD/งานเพื่อทํางานและเพื่อรับโทเค็นทั่วผู้เช่า
การยินยอมทํางานอย่างไรในปริมาณงาน Fabric
เพื่อให้ความยินยอมสําหรับแอปพลิเคชันที่เฉพาะเจาะจง Fabric FE สร้างอินสแตนซ์ MSAL ที่กําหนดค่าด้วย ID แอปพลิเคชันของปริมาณงานและขอโทเค็นสําหรับขอบเขตที่ให้มา (เพิ่มเติม ScopesToConsent - ดู AcquireAccessTokenParams)
เมื่อขอโทเค็นที่มีแอปพลิเคชันปริมาณงานสําหรับขอบเขตเฉพาะ Microsoft Entra ID จะแสดงความยินยอมป็อปอัพในกรณีที่หายไป จากนั้นเปลี่ยนเส้นทางหน้าต่างป็อปอัพไปยัง URI เปลี่ยนเส้นทางที่กําหนดค่าไว้ในแอปพลิเคชัน
โดยทั่วไปแล้ว URI เปลี่ยนเส้นทางจะอยู่ในโดเมนเดียวกันกับหน้าที่ร้องขอโทเค็น เพื่อให้หน้าสามารถเข้าถึงป็อปอัพและปิด
ในกรณีของเรา ไม่ได้อยู่ในโดเมนเดียวกัน เนื่องจาก Fabric กําลังร้องขอโทเค็น และ URI เปลี่ยนเส้นทางของปริมาณงานไม่ได้อยู่ในโดเมน Fabric ดังนั้นเมื่อกล่องโต้ตอบความยินยอมเปิดขึ้น จําเป็นต้องปิดด้วยตนเองหลังจากเปลี่ยนเส้นทาง เราไม่ได้ใช้รหัสที่ส่งกลับใน redirectUri ดังนั้นเราจะปิดโดยอัตโนมัติ (เมื่อ Microsoft Entra ID เปลี่ยนเส้นทางป็อปอัพไปยัง URI เปลี่ยนเส้นทางที่เพียงแค่ปิด)
คุณสามารถดูรหัส/การกําหนดค่าของ Uri เปลี่ยนเส้นทางใน ไฟล์ index.ts ได้
นี่คือตัวอย่างป๊อปอัปความยินยอมสําหรับแอปของเรา "แอปปริมาณงานของฉัน" และการขึ้นต่อกัน (ที่เก็บข้อมูลและ Power BI) ที่เรากําหนดค่าเมื่อดําเนินการผ่าน การตั้งค่าการรับรองความถูกต้อง:
อีกวิธีหนึ่งในการให้ความยินยอมในผู้เช่าหลัก (เป็นทางเลือก)
เมื่อต้องได้รับความยินยอมจากผู้เช่าหลักของแอปพลิเคชัน คุณสามารถขอให้ผู้ดูแลระบบผู้เช่าของคุณให้การยินยอมสําหรับผู้เช่าทั้งหมดโดยใช้ URL ในรูปแบบต่อไปนี้ (แทรก ID ผู้เช่าของคุณเองและ ID ไคลเอ็นต์):
https://login.microsoftonline.com/{tenantId}/adminconsent?client_id={clientId}
AcquireAccessTokenParams
เมื่อเรียกใช้ acquireAccessToken JS API เราสามารถใส่พารามิเตอร์สามรายการ:
- additionalScopesToConsent: ขอบเขตอื่น ๆ เพื่อขอความยินยอม ตัวอย่างเช่น สถานการณ์ที่สอดคล้อง
- claimsForConditionalAccessPolicy: การอ้างสิทธิ์ที่ส่งกลับจาก Microsoft Entra ID เมื่อโฟลว์ OBO ล้มเหลว ตัวอย่างเช่น OBO ต้องการการรับรองความถูกต้องแบบหลายปัจจัย
- promptFullConsent: พร้อมท์หน้าต่างความยินยอมแบบเต็มของการขึ้นต่อกันแบบคงที่ของแอปพลิเคชันปริมาณงาน
additionalScopesToConsent
ถ้า frontend ของปริมาณงานกําลังขอให้โทเค็นใช้สําหรับการเรียกไปยัง Backend ของปริมาณงาน พารามิเตอร์นี้ควรเป็น null Backend ของปริมาณงานสามารถล้มเหลวในการดําเนินการ OBO บนโทเค็นที่ได้รับเนื่องจากข้อผิดพลาดที่ขาดหายไปความยินยอม ในกรณีนี้ Backend ของปริมาณงานจะต้องเผยแพร่ข้อผิดพลาดไปยัง frontend ของปริมาณงานและระบุพารามิเตอร์นี้
claimsForConditionalAccessPolicy
พารามิเตอร์นี้จะใช้เมื่อเผชิญกับความล้มเหลว OBO ในปริมาณงานเนื่องจากนโยบายการเข้าถึงแบบมีเงื่อนไขบางอย่างที่ได้รับการกําหนดค่าในผู้เช่า
OBO ล้มเหลวเนื่องจากนโยบายการเข้าถึงแบบมีเงื่อนไขส่งกลับสตริงที่เรียกว่า "การอ้างสิทธิ์" สตริงนี้ควรถูกส่งไปยังปริมาณงาน FE ที่ FE ควรขอโทเค็น และส่งการอ้างสิทธิ์เป็นการอ้างสิทธิ์เป็น ClaimsForConditionalAccessPolicy สําหรับข้อมูลเพิ่มเติม ดู การจัดการการรับรองความถูกต้องแบบหลายปัจจัย (MFA), การเข้าถึงแบบมีเงื่อนไข และความยินยอมแบบเพิ่มหน่วย
อ้างอิงถึง การใช้งาน AuthenticationService AddBearerClaimToResponse ในตัวอย่าง BE เพื่อดูตัวอย่างของการตอบสนองเมื่อการดําเนินการ OBO ล้มเหลวเนื่องจากนโยบายการเข้าถึงที่หายไปหรือมีเงื่อนไข
เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับนี้ ScopesToConsent และการอ้างสิทธิ์ ForConditionalAccessPolicy และดูตัวอย่างของการใช้งาน ดู แนวทางการรับรองความถูกต้องปริมาณงาน & เจาะลึก
promptFullConsent
เมื่อส่งผ่านเป็นจริง ความยินยอมเต็มรูปแบบของการขึ้นต่อกันแบบคงที่จะปรากฏขึ้นสําหรับผู้ใช้โดยไม่คํานึงว่าให้ความยินยอมก่อนหน้านี้หรือไม่ การใช้งานตัวอย่างสําหรับพารามิเตอร์นี้คือการเพิ่มปุ่มไปยัง UX ซึ่งผู้ใช้สามารถใช้เพื่อให้ความยินยอมเต็มรูปแบบกับปริมาณงาน