แชร์ผ่าน


สร้างลายเซ็นการเข้าถึงที่ใช้ร่วมกันของ OneLake (SAS) (ตัวอย่าง)

คุณสามารถสร้าง OneLake SAS เพื่อมอบสิทธิ์การเข้าถึงโฟลเดอร์หรือไฟล์ระยะสั้นใน OneLake ที่ได้รับการสนับสนุนโดยข้อมูลประจําตัวของ Microsoft Entra OneLake SAS สามารถให้การเข้าถึงแอปพลิเคชันชั่วคราวโดยไม่มีการสนับสนุนสําหรับ Microsoft Entra อนุญาตให้พวกเขาโหลดข้อมูลหรือทําหน้าที่เป็นพร็อกซีระหว่างแอปพลิเคชันลูกค้าอื่น ๆ หรือผู้จัดจําหน่ายซอฟต์แวร์อิสระ (ISV)

หากต้องการสร้าง OneLake SAS ก่อนอื่นคุณต้องร้องขอคีย์การรับมอบสิทธิ์ของผู้ใช้ซึ่งคุณต้องใช้เพื่อลงชื่อใน SAS หากต้องการร้องขอคีย์การรับมอบสิทธิ์ของผู้ใช้ ให้ เรียกใช้การดําเนินการรับคีย์ การรับมอบสิทธิ์ของผู้ใช้ OneLake SAS สามารถให้สิทธิ์การเข้าถึงไฟล์และโฟลเดอร์ภายในรายการข้อมูลเท่านั้น และไม่สามารถใช้สําหรับการดําเนินการจัดการเช่นการสร้างหรือการลบรายการหรือพื้นที่ทํางานได้

OneLake SAS สามารถให้สิทธิ์การเข้าถึงไฟล์และโฟลเดอร์ภายในรายการข้อมูลเท่านั้น และไม่สามารถใช้สําหรับการดําเนินการจัดการเช่นการสร้างพื้นที่ทํางานหรือรายการได้

OneLake SAS ถูกสร้างขึ้นในทํานอง เดียวกับ SAS ที่มอบสิทธิ์โดยผู้ใช้ Azure Storage โดยใช้พารามิเตอร์เดียวกันเพื่อความเข้ากันได้กับเครื่องมือและแอปพลิเคชันที่สามารถเข้ากันได้กับ Azure Storage

สำคัญ

คุณลักษณะนี้อยู่ในตัวอย่าง

กําหนดสิทธิ์

การขอคีย์การมอบสิทธิ์ของผู้ใช้คือการดําเนินการในระดับผู้เช่าใน Fabric หากต้องการร้องขอคีย์การมอบสิทธิ์ผู้ใช้ ผู้ใช้หรือหลักความปลอดภัยที่ร้องขอคีย์การรับมอบสิทธิ์ผู้ใช้ต้องมีสิทธิ์ในการอ่านเป็นอย่างน้อยในพื้นที่ทํางานหนึ่งในผู้เช่า Fabric ข้อมูลประจําตัวของผู้ใช้ที่ร้องขอจะถูกใช้เพื่อรับรองความถูกต้อง SAS ซึ่งหมายความว่าผู้ใช้ต้องมีสิทธิ์ในการเข้าถึงข้อมูลที่พวกเขาให้สิทธิ์

รับโทเค็น OAuth 2.0

เพื่อรับคีย์การรับมอบสิทธิ์ผู้ใช้ ก่อนอื่นขอโทเค็น OAuth 2.0 จาก ID Microsoft Entra อนุญาตการเรียกไปยัง การดําเนินการรับคีย์ การมอบหมายผู้ใช้ โดยให้โทเค็นที่มีโครงร่างแบเรอร์ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการร้องขอโทเค็น OAuth จาก Microsoft Entra ID ดู โฟลว์การรับรองความถูกต้องและสถานการณ์ของแอปพลิเคชัน

ร้องขอคีย์การรับมอบสิทธิ์ของผู้ใช้

การ เรียกใช้การดําเนินการรับคีย์ การมอบหมายผู้ใช้จะส่งกลับคีย์เป็นชุดของค่าที่ใช้เป็นพารามิเตอร์บนโทเค็น SAS การรับมอบสิทธิ์ของผู้ใช้ พารามิเตอร์เหล่านี้อธิบายไว้ใน รับการอ้างอิงคีย์ การมอบหมายผู้ใช้ และในส่วนถัดไป

เมื่อไคลเอ็นต์ร้องขอคีย์การรับมอบสิทธิ์ของผู้ใช้โดยใช้โทเค็น OAuth 2.0 OneLake จะส่งกลับคีย์การรับมอบสิทธิ์ของผู้ใช้ในนามของไคลเอ็นต์ SAS ที่สร้างขึ้นด้วยคีย์การรับมอบสิทธิ์ผู้ใช้นี้จะได้รับสิทธิ์ส่วนใหญ่ที่มอบให้กับไคลเอ็นต์ ที่กําหนดขอบเขตสิทธิ์ที่ให้ไว้อย่างชัดเจนใน SAS

คุณสามารถสร้าง OneLake SASs จํานวนใดก็ได้ตลอดอายุการใช้งานของคีย์การรับมอบสิทธิ์ของผู้ใช้ อย่างไรก็ตาม OneLake SAS และคีย์การรับมอบสิทธิ์ผู้ใช้สามารถใช้ได้เป็นเวลาเกือบหนึ่งชั่วโมงและต้องไม่เกินอายุการใช้งานของโทเค็นที่ร้องขอ ข้อจํากัดตลอดอายุการใช้งานเหล่านี้สั้นกว่าอายุการใช้งานสูงสุดของผู้ใช้ Azure Storage ที่ได้รับมอบหมาย SAS

สร้าง SAS การรับมอบสิทธิ์ผู้ใช้

ตารางต่อไปนี้สรุปเขตข้อมูลที่ได้รับการสนับสนุนสําหรับโทเค็น OneLake SAS ส่วนที่ตามมาให้รายละเอียดเพิ่มเติมเกี่ยวกับพารามิเตอร์เหล่านี้และความแตกต่างของโทเค็น Azure Storage SAS OneLake ไม่สนับสนุนพารามิเตอร์ตัวเลือกทั้งหมดที่ได้รับการสนับสนุนโดย Azure Storage และ OneLake SAS ที่สร้างขึ้นด้วยพารามิเตอร์ที่ไม่รองรับจะถูกปฏิเสธ

ชื่อเขตข้อมูล SAS พารามิเตอร์โทเค็น SAS สถานภาพ คำอธิบาย
signedVersion sv ที่ต้องการ ระบุเวอร์ชันของบริการที่ใช้ในการสร้างฟิลด์ลายเซ็น OneLake รองรับเวอร์ชัน '2020-02-10' ทุกเวอร์ชันหลังจาก '2020-12-06' และเวอร์ชันก่อน '2020-02-10'
signedResource sr ที่ต้องการ ระบุแหล่งข้อมูลที่สามารถเข้าถึงได้ผ่านลายเซ็นการเข้าถึงที่ใช้ร่วมกัน เฉพาะ blob (b) และไดเรกทอรี (d) เท่านั้นที่สามารถใช้ได้กับ OneLake
signedStart st เลือกได้ เวลาเมื่อลายเซ็นสําหรับการเข้าถึงที่ใช้ร่วมกันมีผลบังคับใช้ รูปแบบ UTC ISO 8601
signedExpiry se ที่ต้องการ เวลาที่ลายเซ็นการเข้าถึงที่ใช้ร่วมกันหมดอายุ
signedPermissions sp ที่ต้องการ ระบุว่าการดําเนินการใดที่ SAS สามารถดําเนินการกับทรัพยากรได้ รายละเอียดเพิ่มเติมในส่วนระบุสิทธิ์
signedObjectId skoid ที่ต้องการ ระบุองค์ประกอบหลักของความปลอดภัยของ Microsoft Entra
signedtenantId sktid ที่ต้องการ ระบุผู้เช่า Microsoft Entra ที่กําหนดหลักความปลอดภัย
signedKeyStartTime skt เลือกได้ เวลาใน UTC เมื่อคีย์การลงชื่อเริ่มต้น ส่งกลับโดย การดําเนินการรับคีย์ การมอบหมายผู้ใช้
signedKeyExpiryTime ske ที่ต้องการ เวลาใน UTC เมื่อคีย์การลงชื่อสิ้นสุดลง ส่งกลับโดย การดําเนินการรับคีย์ การมอบหมายผู้ใช้
signedKeyVersion skv ที่ต้องการ เวอร์ชันบริการที่เก็บข้อมูลที่ใช้เพื่อรับคีย์การรับมอบสิทธิ์ของผู้ใช้ ส่งกลับโดย การดําเนินการรับคีย์ การมอบหมายผู้ใช้ OneLake สนับสนุนเวอร์ชัน 2020-02-10 และเวอร์ชันก่อนหน้าหลังจาก 2020-12-06
signedKeyService sks ที่ต้องการ บริการที่ถูกต้องสําหรับคีย์การรับมอบสิทธิ์ของผู้ใช้ OneLake สนับสนุนเฉพาะที่เก็บข้อมูล Blob (sks=b) เท่านั้น
signature sig ที่ต้องการ ลายเซ็นเป็นรหัสการรับรองความถูกต้องของข้อความที่ใช้แฮช (HMAC) ที่คํานวณผ่านสตริงเพื่อลงชื่อและคีย์โดยใช้อัลกอริทึม SHA256 และเข้ารหัสด้วยการเข้ารหัส Base64
signedAuthorizedObjectId saoid ไม่รองรับ OneLake SAS ไม่สนับสนุนคุณลักษณะนี้
signedUnauthorizedObjectId suoid ไม่รองรับ OneLake SAS ไม่สนับสนุนคุณลักษณะนี้
signedCorrelationId suoid ไม่รองรับ OneLake SAS ไม่สนับสนุนพารามิเตอร์นี้
signedDirectoryDepth sdd เลือกได้ ระบุจํานวนของไดเรกทอรีภายในโฟลเดอร์รากของไดเรกทอรีที่ระบุในเขตข้อมูล canonicalizedResource ของสตริงที่จะลงชื่อ ได้รับการสนับสนุนเฉพาะเมื่อsr=d
signedEncryptionScope ses ไม่รองรับ ขณะนี้ OneLake SAS ไม่สนับสนุนขอบเขตการเข้ารหัสลับแบบกําหนดเอง
signedIP sip ไม่รองรับ ขณะนี้ OneLake SAS ไม่สนับสนุนการกรอง IP
signedProtocol spr เลือกได้ OneLake สนับสนุนเฉพาะคําขอ https เท่านั้น
Cache-Control ส่วนหัวการตอบสนอง rscc ไม่รองรับ OneLake SAS ไม่สนับสนุนพารามิเตอร์นี้
Content-Disposition ส่วนหัวการตอบสนอง rscd ไม่รองรับ OneLake SAS ไม่สนับสนุนพารามิเตอร์นี้
Content-Encoding ส่วนหัวการตอบสนอง rsce ไม่รองรับ OneLake SAS ไม่สนับสนุนพารามิเตอร์นี้
Content-Language ส่วนหัวการตอบสนอง rscl ไม่รองรับ OneLake SAS ไม่สนับสนุนพารามิเตอร์นี้
Content Type ส่วนหัวการตอบสนอง rsct ไม่รองรับ OneLake SAS ไม่สนับสนุนพารามิเตอร์นี้

ระบุสิทธิ์

สิทธิ์ที่ระบุไว้ใน signedPermissions เขตข้อมูล (sp) บนโทเค็น SAS จะระบุว่าการดําเนินการใดที่ไคลเอ็นต์ที่มี SAS สามารถดําเนินการกับทรัพยากรได้

สามารถรวมสิทธิ์เพื่ออนุญาตให้ไคลเอ็นต์ดําเนินการหลายอย่างด้วย SAS เดียวกัน เมื่อคุณสร้าง SAS คุณต้องใส่สิทธิ์ในลําดับต่อไปนี้: racwdxltmeop

ตัวอย่างของการตั้งค่าสิทธิ์ที่ถูกต้องได้แก่ rwrd, , rl, wd, wlและrl คุณไม่สามารถระบุสิทธิ์มากกว่าหนึ่งครั้ง

เพื่อให้แน่ใจว่าพาริตีกับเครื่องมือ Azure Storage ที่มีอยู่ OneLake ใช้รูปแบบสิทธิ์เดียวกันกับ Azure Storage OneLake ประเมินสิทธิ์ที่มอบให้กับ SAS ใน signedPermissionsสิทธิ์ของข้อมูลประจําตัวการลงชื่อใน Fabric และบทบาทการเข้าถึงข้อมูล OneLake ใด ๆ ถ้ามี โปรดจําไว้ว่าการดําเนินการบางอย่าง เช่น การตั้งค่าสิทธิ์หรือการลบพื้นที่ทํางาน จะไม่ได้รับอนุญาตบน OneLake ผ่าน Azure Storage API โดยทั่วไป ดังนั้นจึงเป็นการให้สิทธิ์นั้น (sp=op) จะไม่อนุญาตให้ OneLake SAS ดําเนินการเหล่านั้น

สิทธิ์ สัญลักษณ์ URI ทรัพยากร การดําเนินงานที่ได้รับอนุญาต
อ่าน r ไดเรกทอรี, Blob อ่านเนื้อหา บล็อกลิสต์ คุณสมบัติ และเมตาดาต้าของ blob ใด ๆ ในคอนเทนเนอร์หรือไดเรกทอรี ใช้ blob เป็นแหล่งข้อมูลของการดําเนินการคัดลอก
เพิ่ม น. ไดเรกทอรี, Blob เพิ่มบล็อกลงใน blob ผนวก
สร้าง c ไดเรกทอรี, Blob เขียน blob ใหม่ สแนปช็อต blob หรือคัดลอก blob ไปยัง blob ใหม่
เขียน w ไดเรกทอรี, Blob สร้างหรือเขียนเนื้อหา คุณสมบัติ เมตาดาต้า หรือ blocklist สแนปช็อตหรือเช่า blob ใช้ blob เป็นปลายทางของการดําเนินการคัดลอก
Delete d ไดเรกทอรี, Blob ลบ blob
ลบเวอร์ชัน x Blob ลบเวอร์ชัน blob
การลบถาวร y Blob ลบสแนปช็อต blob หรือเวอร์ชันอย่างถาวร
List l Directory ใส่รายการ blobs แบบไม่ซ้ํา
แท็ก t Blob อ่านหรือเขียนแท็กบน blob
ย้าย m ไดเรกทอรี, Blob ย้าย blob หรือไดเรกทอรีและเนื้อหาไปยังตําแหน่งใหม่
ดำเนินการ e ไดเรกทอรี, Blob รับคุณสมบัติของระบบ และถ้าเนมสเปซแบบลําดับชั้นเปิดใช้งานสําหรับบัญชีเก็บข้อมูล ให้รับ POSIX ACL ของ blob
ความเป็นเจ้าของ o ไดเรกทอรี, Blob ตั้งค่าเจ้าของหรือกลุ่มที่เป็นเจ้าของ ไม่รองรับใน OneLake
การอนุญาต p ไดเรกทอรี, Blob ตั้งค่าการอนุญาต ไม่รองรับใน OneLake
กําหนดนโยบายการเลียนแบบ ผม Blob ตั้งค่าหรือลบนโยบายความเคลื่อนไหวหรือการระงับทางกฎหมายใน blob

ระบุลายเซ็น

เขตข้อมูล signature (sig) ใช้เพื่ออนุญาตคําขอที่ทําโดยลูกค้าด้วยลายเซ็นการเข้าถึงที่ใช้ร่วมกัน การลงชื่อสตริงเป็นสตริงที่ไม่ซ้ํากันซึ่งสร้างขึ้นจากเขตข้อมูลที่ต้องตรวจสอบเพื่ออนุญาตคําขอ ลายเซ็นเป็น HMAC ที่คํานวณผ่านสตริงต่อเครื่องหมายและคีย์โดยใช้อัลกอริทึม SHA256 และเข้ารหัสโดยใช้การเข้ารหัส bBase65

หากต้องการสร้างสตริงลายเซ็นของ SAS การรับมอบสิทธิ์ผู้ใช้ ให้สร้างสตริงต่อนามจากเขตข้อมูลที่สร้างขึ้นโดยคําขอ เข้ารหัสสตริงเป็น UTF-8 แล้วคํานวณลายเซ็นโดยใช้อัลกอริทึม HMAC-SHA256 เขตข้อมูลที่รวมอยู่ใน string-to-sign ต้องมีการถอดรหัส URL

เขตข้อมูลที่จําเป็นในการลงชื่อสตริงจะขึ้นอยู่กับเวอร์ชันบริการที่ใช้สําหรับเขตข้อมูลการตรวจสอบ (sv) ส่วนต่อไปนี้อธิบายการกําหนดค่าแบบลงชื่อสตริงสําหรับเวอร์ชันที่สนับสนุน OneLake SASs

เวอร์ชัน 2020-12-06 และเวอร์ชันที่ใหม่กว่า

StringToSign =  signedPermissions + "\n" +
                signedStart + "\n" +
                signedExpiry + "\n" +
                canonicalizedResource + "\n" +
                signedKeyObjectId + "\n" +
                signedKeyTenantId + "\n" +
                signedKeyStart + "\n" +
                signedKeyExpiry  + "\n" +
                signedKeyService + "\n" +
                signedKeyVersion + "\n" +
                signedAuthorizedUserObjectId + "\n" +
                signedUnauthorizedUserObjectId + "\n" +
                signedCorrelationId + "\n" +
                signedIP + "\n" +
                signedProtocol + "\n" +
                signedVersion + "\n" +
                signedResource + "\n" +
                signedSnapshotTime + "\n" +
                signedEncryptionScope + "\n" +
                rscc + "\n" +
                rscd + "\n" +
                rsce + "\n" +
                rscl + "\n" +
                rsct

เวอร์ชัน 2020-01-10

StringToSign =  signedPermissions + "\n" +
                signedStart + "\n" +
                signedExpiry + "\n" +
                canonicalizedResource + "\n" +
                signedKeyObjectId + "\n" +
                signedKeyTenantId + "\n" +
                signedKeyStart + "\n" +
                signedKeyExpiry  + "\n" +
                signedKeyService + "\n" +
                signedKeyVersion + "\n" +
                signedAuthorizedUserObjectId + "\n" +
                signedUnauthorizedUserObjectId + "\n" +
                signedCorrelationId + "\n" +
                signedIP + "\n" +
                signedProtocol + "\n" +
                signedVersion + "\n" +
                signedResource + "\n" +
                signedSnapshotTime + "\n" +
                rscc + "\n" +
                rscd + "\n" +
                rsce + "\n" +
                rscl + "\n" +
                rsct

เวอร์ชันก่อนหน้า 2020-02-10

StringToSign =  signedPermissions + "\n" +  
                signedStart + "\n" +  
                signedExpiry + "\n" +  
                canonicalizedResource + "\n" +  
                signedKeyObjectId + "\n" +
                signedKeyTenantId + "\n" +
                signedKeyStart + "\n" +
                signedKeyExpiry  + "\n" +
                signedKeyService + "\n" +
                signedKeyVersion + "\n" +
                signedAuthorizedUserObjectId + "\n" +
                signedUnauthorizedUserObjectId + "\n" +
                signedCorrelationId + "\n" +
                signedIP + "\n" +  
                signedProtocol + "\n" +  
                signedVersion + "\n" +  
                signedResource + "\n" +
                rscc + "\n" +
                rscd + "\n" +  
                rsce + "\n" +  
                rscl + "\n" +  
                rsct

ทรัพยากรมาตรฐาน

ส่วนของ canonicalizedResource สตริงเป็นเส้นทางมาตรฐานไปยังทรัพยากร ต้องมีจุดสิ้นสุด OneLake และชื่อทรัพยากรและต้องถอดรหัส URL เส้นทาง OneLake ต้องมีพื้นที่ทํางานและเส้นทางไดเรกทอรีต้องมีจํานวนของไดเรกทอรีย่อยที่สอดคล้องกับ sdd พารามิเตอร์

ตัวอย่างต่อไปนี้แสดงวิธีการแปลง URL OneLake ของคุณเป็นทรัพยากรมาตรฐานที่สอดคล้องกัน โปรดจําไว้ว่า OneLake สนับสนุนทั้งการดําเนินการ DFS และ Blob และจุดสิ้นสุด และชื่อบัญชีผู้ใช้สําหรับ OneLake ของคุณนั้นเป็นแบบ onelake เสมอ

ไฟล์ Blob

URL = https://onelake.blob.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/sales.csv
canonicalizedResource = "/blob/onelake/myWorkspace/myLakehouse.Lakehouse/Files/sales.csv"

ไดเรกทอรี DFS

URL = https://onelake.dfs.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/
canonicalizedResource = "/blob/onelake/myWorkspace/myLakehouse.Lakehouse/Files/"

ตัวอย่าง OneLake SAS

ตัวอย่างต่อไปนี้แสดง OneLake SAS URI ด้วยโทเค็น OneLake SAS ต่อท้าย โทเค็น SAS ให้สิทธิ์ในการอ่านและเขียนไปยังโฟลเดอร์ไฟล์ใน lakehouse

https://onelake.blob.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/?sp=rw&st=2023-05-24T01:13:55Z&se=2023-05-24T09:13:55Z&skoid=<object-id>&sktid=<tenant-id>&skt=2023-05-24T01:13:55Z&ske=2023-05-24T09:13:55Z&sks=b&skv=2022-11-02&sv=2022-11-02&sr=d&sig=<signature>