หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
การเข้าถึงข้อมูลแบบไม่ระบุตัวตนช่วยให้แอป Fabric เปิดเผยการดําเนินการข้อมูลที่เลือกไปยังผู้ใช้ที่ไม่ได้ลงชื่อเข้าใช้ คุณควบคุมการเข้าถึงนี้ได้ที่ระดับ Fabric tenant และในแต่ละโมเดลข้อมูล การเข้าถึงแบบไม่ระบุตัวตนเป็นตัวเลือกการอนุญาต ไม่ใช่การทดแทนการยืนยันตัวตน แอปเดียวกันนี้สามารถให้การเข้าถึงสาธารณะแก่บางเอนทิตีได้ ในขณะที่ผู้ใช้ต้องลงชื่อเข้าใช้สําหรับเอนทิตีหรือการดําเนินการอื่น ๆ
Important
ใครก็ตามที่สามารถเข้าถึง URL ของแอปได้ สามารถใช้การดําเนินการที่กําหนดให้กับบทบาทนั้น anonymous ได้ อย่าเปิดเผยข้อมูลส่วนตัว ข้อมูลลับ ข้อมูลทางการเงิน หรือข้อมูลภายในธุรกิจผ่านบทบาทนี้
กรณีการใช้งาน
พิจารณาการเข้าถึงข้อมูลแบบไม่ระบุตัวตนเมื่อแอปต้องมีฟังก์ชันจํากัดโดยไม่ต้องลงชื่อเข้าใช้
| สถานการณ์สมมติ | ตัวอย่างการเข้าถึง | ขอบเขตที่แนะนํา |
|---|---|---|
| ข้อมูลอ้างอิงสาธารณะ | ดูแคตตาล็อกสินค้า ตารางเวลา หรือชุดข้อมูลสาธารณะ | read |
| การเก็บรวบรวมข้อเสนอแนะ | ส่งความคิดเห็นหรือคําตอบแบบสํารวจ | create |
การเข้าถึงแบบไม่ระบุตัวตนไม่เหมาะสมเมื่อแอปต้องระบุตัวตนผู้ใช้ บังคับใช้สิทธิ์ความเป็นเจ้าของ หรือให้สิทธิ์การเข้าถึงตามการอ้างสิทธิ์ตัวตน ใช้บทบาทที่ผ่านการตรวจสอบสิทธิ์สําหรับสถานการณ์เหล่านั้น
วิธีการเข้าถึงแบบไม่ระบุตัวตน
การเข้าถึงข้อมูลแบบไม่ระบุตัวตนใช้การควบคุมอิสระ:
- การตั้งค่าผู้เช่า: ผู้ดูแลระบบ Fabric tenant จะให้สิทธิ์การเข้าถึงข้อมูลแบบไม่ระบุตัวตนสําหรับองค์กรหรือกลุ่มความปลอดภัยที่เลือก
-
บทบาทของแบบจําลองข้อมูล: เอนทิตีใช้บทบาทนี้
anonymousเพื่อกําหนดการดําเนินการที่ผู้ใช้ที่ยังไม่ได้รับการยืนยันตัวตนสามารถทําได้
การตั้งค่า tenant คือขอบเขตทั่วทั้งองค์กร การตั้งค่าแอปอนุญาตให้คําขอแบบไม่ระบุตัวตนเข้าถึงบริการข้อมูลของแอปได้ บทบาทของนิติบุคคลจะกําหนดว่าคําขอเหล่านั้นสามารถเข้าถึงข้อมูลและการดําเนินการใดบ้าง การเปิดใช้งานเพียงหนึ่งหรือสองตัวควบคุมเหล่านี้จะไม่ให้สิทธิ์การเข้าถึงแบบไม่ระบุตัวตน
เปิดใช้งานการตั้งค่าผู้เช่า
ผู้ดูแล Fabric tenant ต้องเปิดใช้งานการเข้าถึงข้อมูลแบบไม่ระบุตัวตนก่อนที่นักพัฒนาแอปจะสามารถใช้งานได้ การตั้งค่านี้ถูกปิดใช้งานโดยค่าเริ่มต้น
ลงชื่อเข้าใช้พอร์ทัลผู้ดูแลระบบ Fabric
เลือก การตั้งค่าผู้เช่า
ภายใต้แอป Fabric (ตัวอย่าง) ให้ค้นหาการเข้าถึงข้อมูลแบบไม่ระบุตัวตน
ตั้งค่าการสลับเป็น เปิดใช้งานแล้ว
ใช้การตั้งค่านี้กับทั้งองค์กรหรือกลุ่มความปลอดภัยเฉพาะ
เลือก นำไปใช้
การเปลี่ยนแปลงอาจใช้เวลาสักครู่กว่าจะเริ่มมีผล เมื่อคุณจํากัดการตั้งค่าไว้ที่กลุ่มความปลอดภัย ให้ตรวจสอบว่านักพัฒนาแอปหรือเจ้าของแอปอยู่ในกลุ่มที่ได้รับอนุญาตหรือไม่
กําหนดการเข้าถึงแบบไม่ระบุตัวตนในโมเดลข้อมูล
ใช้ @role ตัวตกแต่งบนเอนทิตีและระบุ anonymous เป็นชื่อบทบาท อาร์กิวเมนต์ที่สองกําหนดการดําเนินการข้อมูลที่อนุญาต: create, read, update, หรือ delete.
พารามิเตอร์
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|---|---|---|
roleName |
string |
ชื่อบทบาท เช่น authenticated หรือบทบาทแอปพลิเคชันแบบกําหนดเอง |
actions |
string \| string[] |
การกระทําหรืออาร์เรย์เดี่ยว: create, , readupdate, deleteหรือ*สําหรับทั้งหมด |
options |
object |
ออบเจ็กต์ทางเลือกที่มี check, includeและ exclude คุณสมบัติ |
ตัวอย่างต่อไปนี้อนุญาตให้ผู้ใช้ที่ยังไม่ได้รับการยืนยันตัวตนอ่านประกาศสาธารณะ:
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'read')
export class Announcement {
@uuid() id!: string;
@text() title!: string;
@text() content!: string;
}
บทบาทนี้ anonymous ไม่ใช้การอ้างสิทธิ์ตัวตนเพราะไม่มีตัวตนที่ลงชื่อเข้าใช้แล้ว กําหนดชุดการดําเนินการที่แคบที่สุดที่สนับสนุนสถานการณ์ของคุณ
อนุญาตให้ผู้ใช้ส่งข้อมูล
สําหรับแบบฟอร์มข้อเสนอแนะ ให้สิทธิ์ create เข้าถึงโดยไม่ต้องอนุญาต read, update, หรือ delete สิทธิ์:
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'create')
export class Feedback {
@uuid() id!: string;
@text() comment!: string;
}
โมเดลนี้อนุญาตให้ผู้ใช้ส่งความคิดเห็นได้ แต่ไม่อนุญาตให้ดูหรือเปลี่ยนแปลงรายการที่ส่งไป
อนุญาตให้ดําเนินการหลายรายการ
ส่งอาร์เรย์เมื่อสถานการณ์ต้องการการดําเนินการมากกว่าหนึ่งครั้ง:
import { boolean, entity, role, text, uuid } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', ['create', 'read', 'update'])
export class SharedTodo {
@uuid() id!: string;
@text() title!: string;
@boolean({ default: false }) completed!: boolean;
}
ใครก็ตามที่เข้าถึงแอปนี้สามารถสร้าง ดู และอัปเดตทุกสิ่งที่แชร์ได้ พวกเขาลบ todo ไม่ได้ delete เพราะไม่ได้รวมอยู่ด้วย ใช้สิทธิ์แบบกว้างเช่นนี้เฉพาะกับข้อมูลสาธารณะหรือข้อมูลชั่วคราวที่ผู้ใช้คาดหวังให้แบ่งปันการเข้าถึง
รวมบทบาทที่ไม่ระบุตัวตนและบทบาทที่ผ่านการตรวจสอบสิทธิ์
ใช้บทบาททั้งสองกับเอนทิตีเมื่อผู้ใช้สาธารณะและผู้ใช้ที่ลงชื่อเข้าใช้ต้องการสิทธิ์ที่แตกต่างกัน ตัวอย่างเช่น ใครก็สามารถอ่านโพสต์บล็อกได้ แต่มีเพียงเจ้าของที่ลงชื่อเข้าใช้เท่านั้นที่สามารถเปลี่ยนแปลงได้:
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'read')
@role('authenticated', ['create', 'update', 'delete'], {
policy: (claims, item) => claims.sub.eq(item.createdBy),
})
export class BlogPost {
@uuid() id!: string;
@text() title!: string;
@text() content!: string;
@text() createdBy!: string;
}
บทบาทนิรนามอนุญาตให้มีการอ่านข้อมูลสาธารณะโดยไม่ต้องประเมินการอ้างสิทธิ์ตัวตน บทบาทที่ได้รับการยืนยันใช้สิทธิ์ของผู้ใช้ที่ลงชื่อเข้าใช้เพื่อจํากัดการเปลี่ยนแปลงเนื้อหาที่ผู้ใช้เป็นเจ้าของ
คําแนะนําด้านความปลอดภัย
- ให้สิทธิ์การเข้าถึงขั้นต่ําที่จําเป็น จะชอบ
readหรือcreateอยู่คนเดียวupdateอนุมัติหรือdeleteเฉพาะเมื่อเวิร์กโฟลว์สาธารณะต้องการเท่านั้น - จํากัดฟิลด์ที่เปิดเผย ใช้
includeหรือexcludeตัวเลือกเพื่อป้องกันการเข้าถึงฟิลด์ที่ผู้ใช้นิรนามไม่ต้องการ สําหรับข้อมูลเพิ่มเติม ดูที่ การกําหนดสิทธิ์ข้อมูล - อย่าพึ่งพา UI ของแอปเพื่อป้องกันตัวเอง สิทธิ์ต้องถูกกําหนดบนโมเดลข้อมูล เนื่องจากผู้เรียกสามารถส่งคําขอได้โดยไม่ต้องใช้ส่วนหน้าของคุณ
- วางแผนรับมือกับข้อมูลที่ไม่น่าเชื่อถือ ตรวจสอบความถูกต้องของข้อมูลที่ส่งมาและออกแบบการเขียนสาธารณะสําหรับสแปม ระบบอัตโนมัติ และทราฟฟิกที่ไม่คาดคิด
- การทดสอบปฏิเสธการผ่าตัด ยืนยันว่าการดําเนินการที่ถูกละเว้นจากบทบาทจะถูกปฏิเสธสําหรับผู้ใช้ที่ไม่มีเซสชัน
ปิดการเข้าถึงแบบไม่ระบุตัวตน
วิธีลบการเข้าถึงสาธารณะจากแอป:
- ลบบทบาทออกจาก
anonymousแต่ละโมเดลข้อมูล - ปรับใช้แอปใหม่โดยรัน
npx rayfin up.
ผู้ดูแลระบบ Tenant ยังสามารถปิดการตั้งค่า Tenant เพื่อบล็อกการเข้าถึงข้อมูลแบบไม่ระบุตัวตนสําหรับแอปทั้งหมดภายใน Tenant และจํากัดการเข้าถึงเฉพาะกลุ่มความปลอดภัยที่เลือกไว้