Co to jest „dziedzina” w podstawowym uwierzytelnianiu

307

Konfiguruję podstawowe uwierzytelnianie na stronie php i znalazłem stronę w podręczniku php pokazującym konfigurację. Co oznacza „królestwo” tutaj w nagłówku?

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

Czy żądana jest strona strony?

RayLoveless
źródło

Odpowiedzi:

284

Od RFC 1945 (HTTP / 1.0) i RFC 2617 (uwierzytelnianie HTTP przywoływane przez HTTP / 1.1)

Atrybut dziedziny (bez rozróżniania wielkości liter) jest wymagany dla wszystkich schematów uwierzytelniania, które powodują wyzwanie. Wartość dziedziny (z uwzględnieniem wielkości liter) w połączeniu z kanonicznym głównym adresem URL serwera, do którego uzyskiwany jest dostęp, określa przestrzeń ochrony. Te dziedziny umożliwiają partycjonowanie chronionych zasobów na serwerze w zbiór obszarów ochrony, każdy z własnym schematem uwierzytelniania i / lub bazą danych autoryzacji. Wartość dziedziny jest ciągiem, zwykle przypisywanym przez serwer źródłowy, który może mieć dodatkową semantykę specyficzną dla schematu uwierzytelniania.

Krótko mówiąc, strony w tej samej dziedzinie powinny mieć poświadczenia. Jeśli twoje poświadczenia działają dla strony ze sferą „My Realm” , należy założyć, że ta sama kombinacja nazwy użytkownika i hasła powinna działać dla innej strony z tą samą dziedziną.

Tim Cooper
źródło
7
Niektóre serwery nie zapewniają dziedziny w wyzwaniach związanych z uwierzytelnianiem.
orkoden
5
Podczas pracy z IIS konfiguruję różne dziedziny dla różnych folderów wirtualnych (w tej samej witrynie). Ale nie jestem pewien, czy to prawda. Ale wydaje mi się, że to działa. Kiedy odwiedzam wirtualny folder dla innej dziedziny, dostałem monit o poświadczenie.
smwikipedia,
1
Uwaga: RFC 2617 został zaktualizowany (NIE przestarzały) przez RFC 7235
Hawkeye Parker
117

Dziedzinę można postrzegać jako obszar (nie konkretną stronę, może to być grupa stron), dla którego używane są poświadczenia; jest to również ciąg znaków, który będzie wyświetlany, gdy przeglądarka wyświetli okno logowania, np

Wprowadź swoją nazwę użytkownika i hasło dla <realm name>:

Gdy dziedzina się zmienia, przeglądarka może wyświetlić kolejne okno wyskakujące, jeśli nie ma poświadczeń dla tej konkretnej dziedziny.

Jacek
źródło
Jak grupować strony pod sferą?
Green
@Green Działa .htaccesswedług hierarchii, więc wszystko, co znajduje się w określonym katalogu, może mieć tę samą dziedzinę.
Ja͢ck,
1
@ Jack, naiwnie myślałem, że wszystkie strony z nagłówkiem uwierzytelniającym w danej dziedzinie znajdują się w tej dziedzinie i nie ma innych reguł. Czy się mylę?
15

Zgodnie z RFC 7235 The realmparametr jest zarezerwowany dla definiowania przestrzeni ochronnych (zestaw stron lub zasobów, gdzie wymagane są poświadczenia) i jest używany przez system uwierzytelniania, aby wskazać zakres ochrony .

Aby uzyskać więcej informacji, zobacz cytat poniżej (wyróżnienia nie są obecne w RFC):

2.2 Obszar ochrony (królestwo)

Parametr uwierzytelnienia „dziedzina” jest zarezerwowany do użytku przez schematy uwierzytelniania, które chcą wskazać zakres ochrony .

Przestrzeń ochrony jest definiowana przez kanoniczny główny identyfikator URI (komponent schematu i uprawnień efektywnego identyfikatora URI żądania) serwera, do którego uzyskuje się dostęp, w połączeniu z wartością dziedziny, jeśli jest dostępna. Te dziedziny umożliwiają partycjonowanie chronionych zasobów na serwerze w zbiór obszarów ochrony, każdy z własnym schematem uwierzytelniania i / lub bazą danych autoryzacji. Wartość dziedziny jest ciągiem, zwykle przypisywanym przez serwer źródłowy, który może mieć dodatkową semantykę specyficzną dla schematu uwierzytelniania. Pamiętaj, że odpowiedź może mieć wiele wyzwań z tym samym schematem uwierzytelniania, ale z różnymi dziedzinami. [...]


Uwaga 1: Struktura uwierzytelniania HTTP jest obecnie zdefiniowana w RFC 7235 , która aktualizuje RFC 2617 i sprawia, że RFC 2616 jest przestarzały.

Uwaga 2:realm parametr nie jest już wymagane zawsze na wyzwania .

kasiomolina
źródło