Bonjour,
Voilà l'étape passée sur le HTTP authorization Digest.
L'étape d'authentification se compose en une demande non Digest, qui obtient une réponse (dans le header) de type Digest avec les informations minimales realm, nonce et qop, d'autres informations peuvent être fournies. Sans ces informations minimales, il est impossible de communiquer entre serveur et client en mode Digest.
La phrase réponse Digest est élaborée avec des calculs de cryptage selon la spécification rfc7616. Pour élaborer cette réponse, des éléments doivent être rajoutés tels que username, password, nc, cnonce, uri, method, d'autre éléments peuvent être ajoutés en option.
- Exemple de communication Authorization Digest entre un serveur et vous (comme client)
- Example Authentification Digest.png (50.93 Kio) Consulté 5185 fois
Cette réponse sera insérée dans le header de la réponse à la rubrique Authorization, avec d'autres éléments plus classiques d'un header de type Host, Accept, Content-Length, Content-Type.
Le requête httpQuery() peut alors être envoyée avec les paramètres $url, $action = 'GET' ou 'POST', $post = NULL, $oauth_token = NULL, $headers, $use_cookies = false, $ignore_errors = false, &$info, $user_pwd = NULL).
En réponse on obtient une confirmation d'accord et dans le header de la réponse HTTP 200 OK.
Attention: Il est important d'une part de gérer l'incrémentation de nc (compteur) à chaque requête envoyée et réussie, et d'autre part de toujours envoyer "telle quelle" la variable nounce. Sinon les requêtes ne seront pas acceptées.
Il y a beaucoup de documentation à ce sujet sur internet, j'ai utilisé principalement celle-ci:
https://httpwg.org/specs/rfc7616.htmlLe script PHP (compatible eedomus
) est disponible pour ceux qui veulent intégrer dans leur PLUGIN une communication de type Authorization Digest avec un objet connecté ou un site.
Bonne journée à toutes et tous.
dommarion