“ ขอบเขต” ในการรับรองความถูกต้องเบื้องต้นคืออะไร


307

ฉันกำลังตั้งค่าการรับรองความถูกต้องเบื้องต้นในเว็บไซต์ php และพบหน้านี้ในคู่มือ php ที่แสดงการตั้งค่า "อาณาจักร" ในที่นี้หมายถึงอะไรในส่วนหัว?

header('WWW-Authenticate: Basic realm="My Realm"');

เป็นหน้าของหน้าเว็บที่ถูกร้องขอหรือไม่?

คำตอบ:


284

จาก RFC 1945 (HTTP / 1.0)และRFC 2617 (การตรวจสอบสิทธิ์ HTTP ที่อ้างอิงโดย HTTP / 1.1)

แอ็ตทริบิวต์ realm (คำนึงถึงขนาดตัวพิมพ์) เป็นสิ่งจำเป็นสำหรับรูปแบบการพิสูจน์ตัวตนทั้งหมดที่มีปัญหา ค่า realm (คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) ร่วมกับ URL รูทแบบบัญญัติของเซิร์ฟเวอร์ที่กำลังเข้าถึงกำหนดพื้นที่คุ้มครอง ดินแดนเหล่านี้อนุญาตให้ทรัพยากรที่ได้รับการป้องกันบนเซิร์ฟเวอร์ถูกแบ่งพาร์ติชันเป็นชุดของพื้นที่ป้องกันแต่ละอันมีรูปแบบการพิสูจน์ตัวตนและ / หรือฐานข้อมูลการอนุญาต ค่าขอบเขตคือสตริงซึ่งโดยทั่วไปแล้วกำหนดโดยเซิร์ฟเวอร์ต้นทางซึ่งอาจมีซีแมนทิกส์เพิ่มเติมเฉพาะสำหรับโครงร่างการพิสูจน์ตัวตน

กล่าวโดยย่อหน้าเว็บในอาณาจักรเดียวกันควรแบ่งปันข้อมูลรับรอง หากข้อมูลรับรองของคุณทำงานสำหรับหน้าเว็บที่มีขอบเขต"My Realm"ก็ควรสันนิษฐานว่าชื่อผู้ใช้และรหัสผ่านที่เหมือนกันควรใช้งานได้สำหรับหน้าอื่นที่มีขอบเขตเดียวกัน


7
เซิร์ฟเวอร์บางตัวไม่มีขอบเขตในการท้าทายการตรวจสอบสิทธิ์
orkoden

5
เมื่อฉันทำงานกับ IIS ฉันกำหนดค่า differnt realms สำหรับโฟลเดอร์เสมือนที่แตกต่างกัน (ภายใต้ไซต์เดียวกัน) แต่ฉันไม่แน่ใจว่าถูกต้องหรือไม่ แต่มันก็ใช้ได้สำหรับฉัน เมื่อฉันไปที่โฟลเดอร์เสมือนสำหรับดินแดนอื่นฉันได้รับพรอมต์สำหรับข้อมูลประจำตัว
smwikipedia

1
หมายเหตุ: RFC 2617 ได้รับการปรับปรุง (ไม่ล้าสมัย) โดยRFC 7235
Hawkeye Parker

117

ขอบเขตสามารถถูกมองว่าเป็นพื้นที่ (ไม่ใช่หน้าใดหน้าหนึ่งโดยเฉพาะอาจเป็นกลุ่มของหน้า) ซึ่งใช้ข้อมูลรับรอง นี่เป็นสตริงที่จะแสดงเมื่อเบราว์เซอร์ปรากฏขึ้นในหน้าต่างเข้าสู่ระบบเช่น

กรุณาใส่ชื่อผู้ใช้และรหัสผ่านของคุณสำหรับ<realm name>:

เมื่ออาณาจักรเปลี่ยนแปลงเบราว์เซอร์อาจแสดงหน้าต่างป๊อปอัพอื่นหากไม่มีข้อมูลประจำตัวสำหรับอาณาจักรนั้น


วิธีจัดกลุ่มเพจภายใต้ขอบเขต
Green

@Green The .htaccessไปตามลำดับชั้นดังนั้นสิ่งที่อยู่ภายใต้ไดเรกทอรีที่แน่นอนสามารถได้รับอาณาจักรเดียวกัน
Ja͢ck

1
@ แจ็คฉันคิดอย่างไร้เดียงสาว่าหน้าทั้งหมดที่มีส่วนหัวการตรวจสอบความถูกต้องพร้อมกับขอบเขตที่กำหนดอยู่ในขอบเขตนั้นและไม่มีกฎอื่น ๆ ฉันผิดหรือเปล่า?

15

ตามที่RFC 7235ที่realmพารามิเตอร์ถูกสงวนไว้สำหรับการกำหนดพื้นที่คุ้มครอง (ชุดของหน้าเว็บหรือทรัพยากรที่จำเป็นต้องใช้ข้อมูลประจำตัว) และก็ใช้โดยรูปแบบการตรวจสอบเพื่อระบุขอบเขตของการคุ้มครอง

สำหรับรายละเอียดเพิ่มเติมโปรดดูที่ใบเสนอราคาด้านล่าง (ไฮไลท์ไม่ได้อยู่ใน RFC):

2.2 พื้นที่คุ้มครอง (อาณาจักร)

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

พื้นที่ป้องกันถูกกำหนดโดย URI รูทแบบ canonical (องค์ประกอบแบบแผนและสิทธิอำนาจของ URI คำขอที่มีผลบังคับใช้) ของเซิร์ฟเวอร์ที่กำลังเข้าถึงรวมกับค่า realm หากมีอยู่ ดินแดนเหล่านี้อนุญาตให้ทรัพยากรที่ได้รับการป้องกันบนเซิร์ฟเวอร์ถูกแบ่งพาร์ติชันเป็นชุดของพื้นที่ป้องกันแต่ละอันมีรูปแบบการพิสูจน์ตัวตนและ / หรือฐานข้อมูลการอนุญาต ค่าขอบเขตคือสตริงซึ่งโดยทั่วไปแล้วกำหนดโดยเซิร์ฟเวอร์ต้นทางซึ่งสามารถมีซีแมนทิกส์เพิ่มเติมเฉพาะสำหรับโครงร่างการพิสูจน์ตัวตน โปรดทราบว่าการตอบสนองสามารถมีความท้าทายหลายประการด้วยรูปแบบการรับรองความถูกต้องเหมือนกัน แต่มีขอบเขตต่างกัน [ ... ]


หมายเหตุ 1:เฟรมเวิร์กสำหรับการพิสูจน์ตัวตน HTTP ปัจจุบันกำหนดโดยRFC 7235ซึ่งอัพเดตRFC 2617และทำให้RFC 2616ล้าสมัย

หมายเหตุ 2:realmพารามิเตอร์ไม่จำเป็นเสมอในความท้าทาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.