แชร์ผ่าน


การรับรองความถูกต้อง 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 ซึ่งผู้ใช้สามารถใช้เพื่อให้ความยินยอมเต็มรูปแบบกับปริมาณงาน