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 Dernière révision Les deux révisions suivantes | ||
si7:configuration:apirest [2021/02/28 12:04] techer.charles_educ-valadon-limoges.fr [Utilisation de diagrammes de séquence avec l'API REST] |
si7:configuration:apirest [2021/03/01 08:46] techer.charles_educ-valadon-limoges.fr [Mécanismes d'authentification] |
||
---|---|---|---|
Ligne 112: | Ligne 112: | ||
L' | L' | ||
<uml> | <uml> | ||
- | Client -> Serveur API : HTTP : créer | + | ==Requête GET== |
- | Serveur API -> Client : jeton d' | + | Client -> Serveur_HTTP_S |
- | ==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** ou 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 clé privée ne doit pas être partagée, car elle est similaire à votre nom d' | ||
+ | |||
+ | La plupart des clés d'API n' | ||
+ | |||
+ | <WRAP center round info> | ||
+ | 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: | ||
+ | ou | ||
+ | Authorization: | ||
+ | ou | ||
+ | APIkey: <API Key> | ||
+ | </ | ||
+ | |||
+ | * 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]] |