Was ist der "Bereich" in der Basisauthentifizierung?

307

Ich richte die Basisauthentifizierung auf einer PHP-Site ein und habe diese Seite im PHP-Handbuch gefunden, das die Einrichtung zeigt. Was bedeutet "Realm" hier in der Kopfzeile?

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

Wird die Seitenseite angefordert?

RayLoveless
quelle

Antworten:

284

Aus RFC 1945 (HTTP / 1.0) und RFC 2617 (HTTP-Authentifizierung, auf die HTTP / 1.1 verweist)

Das Realm-Attribut (ohne Berücksichtigung der Groß- und Kleinschreibung) ist für alle Authentifizierungsschemata erforderlich, die eine Herausforderung darstellen. Der Realm-Wert (Groß- und Kleinschreibung beachten) definiert in Kombination mit der kanonischen Stamm-URL des Servers, auf den zugegriffen wird, den Schutzbereich. Diese Bereiche ermöglichen die Partitionierung der geschützten Ressourcen auf einem Server in eine Reihe von Schutzbereichen mit jeweils einem eigenen Authentifizierungsschema und / oder einer eigenen Autorisierungsdatenbank. Der Realm-Wert ist eine Zeichenfolge, die im Allgemeinen vom Ursprungsserver zugewiesen wird und möglicherweise eine zusätzliche Semantik für das Authentifizierungsschema aufweist.

Kurz gesagt, Seiten im selben Bereich sollten Anmeldeinformationen gemeinsam nutzen. Wenn Ihre Anmeldeinformationen für eine Seite mit dem Bereich "Mein Bereich " funktionieren , sollte davon ausgegangen werden, dass dieselbe Kombination aus Benutzername und Kennwort für eine andere Seite mit demselben Bereich funktioniert.

Tim Cooper
quelle
7
Einige Server bieten bei ihren Authentifizierungsherausforderungen keinen Bereich.
Orkoden
5
Wenn ich mit IIS arbeite, konfiguriere ich verschiedene Bereiche für verschiedene virtuelle Ordner (unter derselben Site). Ich bin mir aber nicht sicher, ob das richtig ist. Aber es scheint Arbeit für mich. Wenn ich einen virtuellen Ordner für einen anderen Bereich besuche, werde ich zur Eingabe von Anmeldeinformationen aufgefordert.
Smwikipedia
1
Hinweis: RFC 2617 wurde von RFC 7235
Hawkeye Parker
117

Ein Bereich kann als ein Bereich angesehen werden (keine bestimmte Seite, sondern eine Gruppe von Seiten), für den die Anmeldeinformationen verwendet werden. Dies ist auch die Zeichenfolge, die angezeigt wird, wenn der Browser das Anmeldefenster öffnet, z

Bitte geben Sie Ihren Benutzernamen und Ihr Passwort ein für <realm name>:

Wenn sich der Bereich ändert, zeigt der Browser möglicherweise ein anderes Popup-Fenster an, wenn er keine Anmeldeinformationen für diesen bestimmten Bereich hat.

Jack
quelle
Wie gruppiere ich Seiten unter Realm?
Grün
@Green Die .htaccessgeht nach Hierarchie, so dass alles, was sich unter einem bestimmten Verzeichnis befindet, den gleichen Bereich erhalten kann.
Ja͢ck
1
@Jack, ich dachte naiv, dass alle Seiten mit einem Authentifizierungsheader mit einem bestimmten Bereich in diesem Bereich sind und es keine anderen Regeln gibt. Liege ich falsch?
15

Gemäß RFC 7235 ist der realmParameter für die Definition von Schutzbereichen (Satz von Seiten oder Ressourcen, für die Anmeldeinformationen erforderlich sind) reserviert und wird von den Authentifizierungsschemata verwendet, um einen Schutzbereich anzugeben .

Weitere Einzelheiten finden Sie im folgenden Zitat (die Highlights sind im RFC nicht vorhanden):

2.2. Schutzraum (Reich)

Der Authentifizierungsparameter "Realm" ist für Authentifizierungsschemata reserviert , die einen Schutzbereich angeben möchten .

Ein Schutzbereich wird durch den kanonischen Root-URI (die Schema- und Berechtigungskomponenten des effektiven Anforderungs-URI) des Servers, auf den zugegriffen wird, in Kombination mit dem Realm-Wert, falls vorhanden, definiert. Diese Bereiche ermöglichen die Partitionierung der geschützten Ressourcen auf einem Server in eine Reihe von Schutzbereichen mit jeweils einem eigenen Authentifizierungsschema und / oder einer eigenen Autorisierungsdatenbank. Der Realm-Wert ist eine Zeichenfolge, die im Allgemeinen vom Ursprungsserver zugewiesen wird und zusätzliche Semantik für das Authentifizierungsschema aufweisen kann. Beachten Sie, dass eine Antwort mehrere Herausforderungen mit demselben Authentifizierungsschema, jedoch mit unterschiedlichen Bereichen haben kann. [...]


Hinweis 1: Das Framework für die HTTP-Authentifizierung wird derzeit vom RFC 7235 definiert , der den RFC 2617 aktualisiert und den RFC 2616 überflüssig macht.

Hinweis 2: Der realmParameter wird bei Herausforderungen nicht mehr immer benötigt .

Cassiomolin
quelle