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:12] techer.charles_educ-valadon-limoges.fr [Utilisation de diagrammes de séquence avec l'API REST] |
si7:configuration:apirest [2021/03/01 08:29] techer.charles_educ-valadon-limoges.fr [Authentification à une API REST] |
||
---|---|---|---|
Ligne 113: | Ligne 113: | ||
<uml> | <uml> | ||
==Requête GET== | ==Requête GET== | ||
- | Client -> Serveur_HTTP_S : HTTP/S : créer | + | Client -> Serveur_HTTP_S : HTTP/S : créer session\navec |
- | Serveur_HTTP_S -> Client : jeton d' | + | Serveur_HTTP_S -> Client : jeton\nd' |
- | Client -> Serveur_HTTP_S : HTTP/S : GET liste des périphériques | + | Client -> Serveur_HTTP_S : HTTP/S : GET\nliste |
- | Serveur_HTTP_S -> Service_API : GET liste des périphériques | + | Serveur_HTTP_S -> Service_API : GET\nliste |
- | Service_API -> BDDConfiguration : Fetch liste des périphériques | + | Service_API -> BDDConfiguration : Fetch\nliste |
- | BDDConfiguration -> Service_API : Réponse | + | BDDConfiguration -> Service_API : Réponse\nliste |
- | Service_API -> Serveur_HTTP_S : Réponse | + | Service_API -> Serveur_HTTP_S : Réponse\nliste |
- | Serveur_HTTP_S -> Client : HTTP/S Réponse | + | Serveur_HTTP_S -> Client : HTTP/S Réponse\nliste |
- | ==Requête POST== | + | ==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' | ||
+ | |||
+ | <WRAP center round info> | ||
+ | Dans une requête d'API REST, les informations d' | ||
+ | < | ||
+ | Authorization: | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | L' | ||
+ | |||
+ | |||
+ | |||
+ | Authentification du porteur | ||
+ | |||
+ | = d' | ||
+ | |||
+ | |||
+ | |||
+ | Dans une requête d'API REST, les informations d' | ||
+ | |||
+ | Authorization: | ||
+ | |||
+ | Tout comme l' | ||
+ | |||
+ | |||
+ | |||
+ | 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]] |