Quel est le «domaine» de l'authentification de base

307

Je configure l'authentification de base sur un site php et j'ai trouvé cette page sur le manuel php montrant la configuration. Que signifie "royaume" ici dans l'en-tête?

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

Est-ce la page demandée?

RayLoveless
la source

Réponses:

284

De RFC 1945 (HTTP / 1.0) et RFC 2617 (authentification HTTP référencée par HTTP / 1.1)

L'attribut realm (insensible à la casse) est requis pour tous les schémas d'authentification qui émettent un défi. La valeur de domaine (sensible à la casse), en combinaison avec l'URL racine canonique du serveur auquel vous accédez, définit l'espace de protection. Ces domaines permettent aux ressources protégées d'un serveur d'être partitionnées en un ensemble d'espaces de protection, chacun avec son propre schéma d'authentification et / ou sa base de données d'autorisation. La valeur de domaine est une chaîne, généralement attribuée par le serveur d'origine, qui peut avoir une sémantique supplémentaire spécifique au schéma d'authentification.

En bref, les pages du même domaine doivent partager les informations d'identification. Si vos informations d'identification fonctionnent pour une page avec le domaine "Mon domaine" , il faut supposer que la même combinaison nom d'utilisateur et mot de passe devrait fonctionner pour une autre page avec le même domaine.

Tim Cooper
la source
7
Certains serveurs ne fournissent pas de domaine dans leurs défis d'authentification.
orkoden
5
Lorsque je travaille avec IIS, je configure différents domaines pour différents dossiers virtuels (sous le même site). Mais je ne suis pas sûr que ce soit correct. Mais cela semble fonctionner pour moi. Lorsque je visite un dossier virtuel pour un domaine différent, je reçois une invite pour les informations d'identification.
smwikipedia
1
Remarque: RFC 2617 a été mis à jour (PAS obsolète) par RFC 7235
Hawkeye Parker
117

Un domaine peut être considéré comme une zone (pas une page particulière, il peut s'agir d'un groupe de pages) pour laquelle les informations d'identification sont utilisées; c'est également la chaîne qui sera affichée lorsque le navigateur ouvrira la fenêtre de connexion, par exemple

Veuillez saisir votre nom d'utilisateur et votre mot de passe pour <realm name>:

Lorsque le domaine change, le navigateur peut afficher une autre fenêtre contextuelle s'il n'a pas d'informations d'identification pour ce domaine particulier.

Jack
la source
Comment regrouper des pages sous domaine?
Green
@Green The .htaccessest hiérarchisé, donc tout ce qui se trouve sous un certain répertoire peut recevoir le même domaine.
Ja͢ck
1
@Jack, j'ai naïvement pensé que toutes les pages avec un en-tête d'authentification avec un domaine donné se trouvaient dans ce domaine et qu'il n'y avait pas d'autres règles. Ai-je tort?
15

Selon la RFC 7235 , le realmparamètre est réservé pour définir les espaces de protection (ensemble de pages ou de ressources où les informations d'identification sont requises) et il est utilisé par les schémas d'authentification pour indiquer une étendue de protection .

Pour plus de détails, voir la citation ci-dessous (les faits saillants ne sont pas présents dans le RFC):

2.2. Espace de protection (royaume)

Le paramètre d'authentification "domaine" est réservé à l' usage des schémas d'authentification qui souhaitent indiquer une étendue de protection .

Un espace de protection est défini par l'URI racine canonique (les composants de schéma et d'autorité de l'URI de demande effective) du serveur auquel vous accédez, en combinaison avec la valeur de domaine si elle est présente. Ces domaines permettent aux ressources protégées d'un serveur d'être partitionnées en un ensemble d'espaces de protection, chacun avec son propre schéma d'authentification et / ou sa base de données d'autorisation. La valeur de domaine est une chaîne, généralement affectée par le serveur d'origine, qui peut avoir une sémantique supplémentaire spécifique au schéma d'authentification. Notez qu'une réponse peut avoir plusieurs défis avec le même schéma d'authentification mais avec des domaines différents. [...]


Remarque 1: Le cadre pour l'authentification HTTP est actuellement défini par le RFC 7235 , qui met à jour le RFC 2617 et rend le RFC 2616 obsolète.

Remarque 2: Le realmparamètre n'est plus toujours requis sur les défis .

cassiomoline
la source