Що таке "царство" в базовій аутентифікації


307

Я налаштовую базову автентифікацію на веб-сайті php і знайшов цю сторінку в посібнику по php, що показує налаштування. Що означає "царство" тут у заголовку?

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

Чи запитується сторінка сторінки?

Відповіді:


284

Від RFC 1945 (HTTP / 1.0) та RFC 2617 (аутентифікація HTTP, на яку посилається HTTP / 1.1)

Атрибут realm (нечутливий до регістру) необхідний для всіх схем аутентифікації, які викликають виклик. Значення області (залежно від регістру) у поєднанні з канонічною кореневою URL-адресою сервера, до якого здійснюється доступ, визначає захисний простір. Ці області дозволяють захищені ресурси на сервері розділити на набір захисних просторів, кожен зі своєю власною схемою аутентифікації та / або базою даних авторизації. Значення realm - це рядок, як правило, присвоєний початковому серверу, який може мати додаткову семантику, характерну для схеми аутентифікації.

Коротше кажучи, сторінки в одній царині повинні мати спільні дані. Якщо ваші облікові дані працюють для сторінки з цариною "Моє царство" , слід припустити, що та ж комбінація імені користувача та пароля повинна працювати для іншої сторінки з тим же царством.


7
Деякі сервери не забезпечують сфери своїх проблем із аутентифікацією.
orkoden

5
Коли я працюю з IIS, я налаштовую різні області для різних віртуальних папок (під одним і тим же сайтом). Але я не впевнений, чи правильно це. Але мені здається, що це працює для мене. Коли я відвідую віртуальну папку для іншого царства, я отримав запит на отримання облікових даних.
smwikipedia

1
Примітка: RFC 2617 було оновлено (НЕ застаріло) RFC 7235
Hawkeye Parker

117

Ділянка може розглядатися як область (не конкретна сторінка, це може бути група сторінок), для якої використовуються облікові дані; це також рядок, який буде показаний, коли браузер спливе вікно входу, наприклад

Введіть своє ім’я користувача та пароль для <realm name>:

Коли область змінюється, браузер може відобразити інше спливаюче вікно, якщо у нього немає облікових даних для даної області.


Як групувати сторінки під царством?
Зелений

@Green Виконується .htaccessза ієрархією, тому все, що знаходиться в певному каталозі, може надавати одній царині.
Як

1
@Jack, я наївно подумав, що всі сторінки із заголовком аутентифікації із заданою сферою є у цій царині та інших правил немає. Я помиляюся?

15

Відповідно до RFC 7235 , realmпараметр зарезервований для визначення просторів захисту (набір сторінок або ресурсів, де необхідні облікові дані), і він використовується схемами аутентифікації для позначення сфери захисту .

Детальніше дивіться цитату нижче (основні моменти відсутні в RFC):

2.2. Захисний простір (царство)

Параметр аутентифікації "realm" зарезервований для використання схемами аутентифікації, які хочуть вказати область захисту .

Простір захисту визначається канонічним кореневим URI (схема та компоненти повноважень ефективного URI запиту) сервера, до якого звертаються, у поєднанні зі значенням realm, якщо воно є. Ці області дозволяють захищені ресурси на сервері розділити на набір захисних просторів, кожен зі своєю власною схемою аутентифікації та / або базою даних авторизації. Значення realm - це рядок, як правило, призначений сервером-початком, який може мати додаткову семантику, характерну для схеми аутентифікації. Зауважте, що відповідь може мати декілька викликів з однією і тією ж авторською схемою, але з різною сферою. [...]


Примітка 1: Рамка для аутентифікації HTTP в даний час визначається RFC 7235 , який оновлює RFC 2617 і робить RFC 2616 застарілим.

Примітка 2:realm параметр більше не потрібно завжди на виклики .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.