กําหนดค่า URI สําหรับการเปลี่ยนเส้นทางการตรวจสอบสิทธิ์สําหรับ Fabric Apps

กําหนดค่าallowedRedirectUrisการrayfin/rayfin.ymlโทรกลับเพื่อการตรวจสอบสิทธิ์และการส่งต่อ Fabric single sign-on (SSO) การตั้งค่านี้เป็นรายการอนุญาตของต้นทางและ URL ที่ Rayfin สามารถเปลี่ยนเส้นทางไปยังหลังจากกระบวนการตรวจสอบสิทธิ์

ฉากหลังรองรับสองสถานการณ์:

  • การส่งต่อ Fabric SSO postMessage
  • การโทรกลับการตรวจสอบสิทธิ์มาตรฐาน

กําหนดค่าการตั้งค่าสําหรับทั้งแอปพัฒนาท้องถิ่นและแอป Fabric ที่ติดตั้งแล้ว

ตั้งค่าคอนฟิก allowedRedirectUris

เพิ่ม allowedRedirectUris ใต้ services.authrayfin/rayfin.yml:

services:
  auth:
    enabled: true
    allowedRedirectUris:
      - http://localhost:5173
ฟิลด์ ชนิด ค่าเริ่มต้น คำอธิบาย
allowedRedirectUris string[] ["http://localhost:5173"] อนุญาตให้เปลี่ยนเส้นทาง URI สําหรับการเรียกกลับการตรวจสอบสิทธิ์และการส่งต่อ Fabric SSO รวมแหล่งกําเนิดพื้นฐานสําหรับการยืนยันตัวตน Fabric

เข้าใจว่า Fabric SSO ใช้แหล่งกําเนิดอย่างไร

โฟลว์ป๊อปอัพ Fabric SSO จะใช้จุดกําเนิดเปลือยของแอปคุณเป็นจุดเริ่มต้นเป้าหมายสําหรับการpostMessageส่งต่อ ต้นกําเนิดแบบเปลือยประกอบด้วยสคีม โฮสต์ และพอร์ตทางเลือก แต่ไม่มีเส้นทาง ตัวอย่างเช่น:

http://localhost:5173

ค่าต้องตรงกับค่าที่returnOriginส่งไปยังผู้ให้บริการยืนยันตัวตน Fabric สําหรับขั้นตอนการลงชื่อเข้าใช้ทั้งหมด ดูที่ กําหนดค่าการตรวจสอบสิทธิ์ Fabric SSO

เพิ่มแต่ละต้นทางที่แอปของคุณถูกให้บริการ ในโครงการส่วนใหญ่ รายการนี้จะรวมถึงเซิร์ฟเวอร์พัฒนาท้องถิ่นและต้นทางโฮสต์ที่ติดตั้งอยู่หนึ่งแห่งหรือมากกว่า

เข้าใจว่าอะไร rayfin up เพิ่มเข้ามา

เมื่อคุณเปิดใช้งานโฮสติ้ง npx rayfin up แบบคงที่ จะเพิ่มต้นทาง allowedRedirectUris เปล่าของโฮสติ้งโดยอัตโนมัติในทุกการปรับใช้ คุณไม่จําเป็นต้องเพิ่ม origin ที่ติดตั้งเอง

ต้นทางที่ติดตั้งจําเป็นสําหรับการส่งต่อ Fabric SSO postMessage รวมถึงเมื่อคุณปิดการตรวจสอบสิทธิ์ Fabric แบบโต้ตอบ

ตัวอย่างเช่น หาก URL โฮสต์ที่ติดตั้งคือ https://bold-river-a3f1bc9d02-westus2.webapp.example.com, การกําหนดค่าจะมีทั้งต้นทางภายในและที่ติดตั้งหลังจากติดตั้ง:

services:
  auth:
    allowedRedirectUris:
      - http://localhost:5173
      - https://bold-river-a3f1bc9d02-westus2.webapp.example.com

คําสั่งปรับใช้จะอัปเดต rayfin.yml และส่งการกําหนดค่าไปยัง backend ดังนั้น rayfin.yml โดยทั่วไปจะได้รับรายการที่โฮสต์บน Fabric หลังจากการติดตั้งครั้งแรก

รักษาขอบเขตของรายการอนุญาตให้แคบ

ถือว่า allowedRedirectUris เป็นขอบเขตความปลอดภัย ต้นทางทุกแห่งที่ระบุสามารถรับการส่งต่อ Fabric SSO หรือทําการเรียกกลับการตรวจสอบสิทธิ์สําหรับแอปของคุณได้

  • เพิ่มเฉพาะต้นทางที่คุณให้บริการแอปของคุณ
  • อย่าเพิ่มตัวอักษรแทนหรือแหล่งกําเนิดของบุคคลที่สาม
  • ตรวจสอบรายการหลังจากคัดลอก rayfin.yml ระหว่างโครงการหรือสภาพแวดล้อม
  • ลบต้นทางการปรับใช้ที่ล้าสมัยหลังจากที่คุณยืนยันว่าแอปไม่ได้ใช้งานแล้ว

ต้นกําเนิดที่เก่าจากโครงการหรือการติดตั้งอื่นอาจกลายเป็นเป้าหมายการเปลี่ยนเส้นทางโดยไม่ตั้งใจ

ใช้การเปลี่ยนแปลงการกําหนดค่า

หลังจากที่คุณเปลี่ยนแปลง allowedRedirectUrisให้ปรับใช้การกําหนดค่าที่อัปเดตแล้ว:

npx rayfin up

URI เปลี่ยนเส้นทางใหม่จะยังไม่พร้อมใช้งานสําหรับบริการยืนยันตัวตนที่ติดตั้งจนกว่าคุณจะนําการกําหนดค่าไปใช้

แก้ไขปัญหา REDIRECT URIs

Fabric SSO รายงานความไม่ตรงกันของแหล่งกําเนิด

ยืนยันว่า:

  • returnOrigin เป็นจุดเริ่มต้นเปลือยเปล่าที่ไม่มีเส้นทาง
  • returnOrigin ตรงกับรายการใน allowedRedirectUris.
  • ต้นกําเนิดโฮสต์ที่ติดตั้งจะแสดงหลัง npx rayfin up.
  • รูปแบบ โฮสต์ และพอร์ตตรงกัน รวมถึงพอร์ตพัฒนาท้องถิ่น

สําหรับการวินิจฉัย SSO เพิ่มเติม ดูที่ แก้ไขปัญหาการตรวจสอบสิทธิ์

การเปลี่ยนแปลงการกําหนดค่าจะไม่มีผล

รัน npx rayfin up เพื่อส่งการตั้งค่าที่อัปเดต rayfin.yml ไปยัง backend จากนั้นลองใช้กระบวนการยืนยันตัวตนใหม่อีกครั้ง

รายการนี้มีต้นกําเนิดที่ไม่คุ้นเคย

ตรวจสอบว่าต้นทางเป็นของเซิร์ฟเวอร์พัฒนาท้องถิ่นปัจจุบันหรือแอป Fabric ที่ติดตั้งแล้ว ถ้าไม่เป็นเช่นนั้น ให้ลบออกจากการตั้งค่า รัน npx rayfin upและตรวจสอบการตรวจสอบสิทธิ์จากแต่ละสภาพแวดล้อมที่คาดหวัง

ใช้พรอมต์ AI

คัดลอกพรอมต์ต่อไปนี้ไปยัง GitHub Copilot หรือเอเจนต์โค้ดอื่นที่มีสิทธิ์เข้าถึงโปรเจกต์ของคุณ:

Look at services.auth.allowedRedirectUris in my Rayfin project's rayfin/rayfin.yml.

List every origin currently in it and tell me, for each one, whether it looks like my local
development server, a Fabric-hosted deployment origin that rayfin up added automatically,
or something else that shouldn't be there. Flag anything that isn't clearly one of my own
app's origins, and propose a trimmed list. Do not remove entries without showing me the
before-and-after diff first.