Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
si7:configuration:apirest [2021/02/28 12:02] techer.charles_educ-valadon-limoges.fr [Utilisation de diagrammes de séquence avec l'API REST] |
si7:configuration:apirest [2021/03/01 08:40] techer.charles_educ-valadon-limoges.fr [Mécanismes d'authentification] |
||
---|---|---|---|
Ligne 112: | Ligne 112: | ||
L' | L' | ||
<uml> | <uml> | ||
- | Client -> Client : test | + | ==Requête GET== |
- | + | Client | |
- | ==Préparation du serveur OpenVPN== | + | Serveur_HTTP_S |
+ | Client -> Serveur_HTTP_S : HTTP/S : GET\nliste des périphériques | ||
+ | Serveur_HTTP_S -> Service_API : GET\nliste des périphériques | ||
+ | Service_API -> BDDConfiguration : Fetch\nliste des périphériques | ||
+ | BDDConfiguration -> Service_API : Réponse\nliste des périphériques | ||
+ | Service_API -> Serveur_HTTP_S : Réponse\nliste des périphériques | ||
+ | Serveur_HTTP_S -> Client : HTTP/S Réponse\nliste des périphériques\nCode réponse 200\nSuccess | ||
+ | ==Requête POST en asynchrone== | ||
+ | Client -> Serveur_HTTP_S : HTTP/S : POST\nAjout équipement X | ||
+ | Serveur_HTTP_S -> Service_API : ADD\nAjout équipement X | ||
+ | Service_API -> Coeur_app : initiation\najout équipement | ||
+ | Coeur_app -> Service_API : Réponse\nID de la tâche | ||
+ | Service_API -> BDDConfiguration : ADD\nAjout équipement X | ||
+ | Service_API -> Client : HTTP/S : réponse ID de la tâche\nCode réponse 2020 (accepted) | ||
+ | BDDConfiguration -> Service_API : \nEcriture faite | ||
+ | Service_API -> Serveur_HTTP_S : \nEcriture faite\navec succès | ||
+ | Serveur_HTTP_S -> Client : HTTP/S Réponse\nliste des périphériques | ||
</ | </ | ||
+ | |||
+ | ===== Authentification à une API REST ===== | ||
+ | Pour des raisons de sécurité, la plupart des API REST nécessitent une authentification afin que les utilisateurs aléatoires ne puissent pas créer, mettre à jour ou supprimer des informations de manière incorrecte ou malveillante, | ||
+ | |||
+ | Des API qui ne nécessitent pas d' | ||
+ | |||
+ | **L' | ||
+ | |||
+ | **L' | ||
+ | |||
+ | ==== Mécanismes d' | ||
+ | Les types courants de mécanismes d' | ||
+ | |||
+ | === Authentification de base === | ||
+ | Cette authentification utilise le schéma d' | ||
+ | |||
+ | C'est le mécanisme d' | ||
+ | |||
+ | <WRAP center round info> | ||
+ | Dans une requête d'API REST, les informations d' | ||
+ | < | ||
+ | Authorization: | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === Authentification du porteur === | ||
+ | Ce mécanisme d' | ||
+ | |||
+ | <WRAP center round info> | ||
+ | Tout comme l' | ||
+ | |||
+ | Dans une requête d'API REST, les informations d' | ||
+ | < | ||
+ | Authorization: | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Clé API | ||
+ | |||
+ | |||
+ | |||
+ | Une clé API = jeton API, est une chaîne alphanumérique unique générée par le serveur et affectée à un utilisateur. Pour obtenir une clé API unique, l' | ||
+ | |||
+ | |||
+ | |||
+ | Tout comme avec les autres types d' | ||
+ | |||
+ | |||
+ | |||
+ | Les clés API sont destinées à être un mécanisme d' | ||
+ | |||
+ | |||
+ | |||
+ | Les deux types de clés API sont publiques et privées. | ||
+ | |||
+ | |||
+ | |||
+ | Une clé d'API publique peut être partagée et permet à cet utilisateur d' | ||
+ | |||
+ | |||
+ | |||
+ | Une requête API REST peut fournir une clé API de différentes manières: | ||
+ | |||
+ | Query string: Recommandé uniquement pour les clés API publiques | ||
+ | |||
+ | Header: Utilise la clé Autorisation ou une clé personnalisée Authorization: | ||
+ | |||
+ | Body data: Utilise une clé unique comme identifiant Content-Type: | ||
+ | |||
+ | Cookie: Utilise une clé unique comme identifiant Cookie: API_KEY=< | ||
+ | |||
+ | |||
+ | |||
+ | |||
==== Retour Activité A8 ==== | ==== Retour Activité A8 ==== | ||
* [[glpi_gestionconfig_00|A8 - La gestion des configurations avec GLPI]] | * [[glpi_gestionconfig_00|A8 - La gestion des configurations avec GLPI]] |