HTTPS-BACKEND
đ Vue d'ensembleâ
L'interface HTTPS-BACKEND représente la somme des interfaces des échanges entre les différents éléments et le Backend :
- đ± Application web
- âïž AWS
- đ§ Scripts opĂ©rateur de production
Les échanges sont basés sur le modÚle client/serveur.
Les clients envoient des requĂȘtes au BACKEND qui retourne des fichiers ou des messages d'erreur ou de succĂšs. Le langage de ces messages est, sauf prĂ©cision contraire, du JSON.
đïž Architectureâ
Backend (Serveur)â
L'APP WEB intĂšgre les bundles Symfony suivants :
| Bundle | Description |
|---|---|
| FriendsOfSymfony/FOSOAuthServerBundle | Implémentation d'OAuth 2.0 dans Symfony |
| FriendsOfSymfony/FOSRestBundle | Bundle Symfony permettant la création d'API REST |
đ SĂ©curitĂ© de l'interfaceâ
Chiffrementâ
La sécurité employée par l'interface HTTP respecte les normes :
- TLS v1.2
- TLS v1.3
Modes d'autorisationâ
Trois modes d'autorisation sont mis en place :
1. Mode Anonymeâ
Permet d'exĂ©cuter des requĂȘtes sans authentification.
2. Mode Utilisateurâ
Permet d'exĂ©cuter des requĂȘtes nĂ©cessitant une authentification utilisateur.
- Protocole : OAuth 2.0 en mode Password Flow
- Concernés : Applications mobiles
3. Mode Clientâ
Permet d'exĂ©cuter des requĂȘtes nĂ©cessitant une authentification non-rattachĂ©e Ă un utilisateur.
- Protocole : OAuth 2.0 en mode Client Credentials
- Concernés : Utilisateurs de l'API externe de Tyllt
Tokens OAuth 2.0â
Les modes d'autorisation utilisant OAuth 2.0 possĂšdent un clientId et un clientSecret permettant d'obtenir un token.
Un token est un jeton d'autorisation qui :
- â Est dĂ©livrĂ© Ă un client de confiance authentifiĂ©
- â Permet d'effectuer des actions autorisĂ©es sans retransmettre d'identifiants
- â Contient les droits d'accĂšs du client sur le serveur
- â Est associĂ© Ă un rĂŽle utilisateur (niveau de privilĂšges)
- â Est associĂ© Ă un utilisateur dans le cas d'un Password Flow
- â PossĂšde une date d'expiration
- â Est prĂ©sent dans le header des requĂȘtes HTTPS
Authorization: Bearer ACCESS_TOKEN
đïž Arborescence des requĂȘtes HTTPâ
| Route | Description |
|---|---|
/api/public/v1/* | RequĂȘtes ne nĂ©cessitant pas d'autorisation |
/oauth/v2/token | Récupération des tokens (sans autorisation) |
/api/v1/* | RequĂȘtes nĂ©cessitant une autorisation |
đĄ RequĂȘte HTTPâ
Une requĂȘte HTTP est dĂ©finie par les Ă©lĂ©ments suivants :
/test/url/{paramChemin}?paramQuery1=value¶mQuery2=value
Composantsâ
| ĂlĂ©ment | Description |
|---|---|
| URL | Chemin de la ressource |
| Méthode HTTP | GET / POST / PUT / DELETE / PATCH |
| ParamĂštres d'URL | Chemins dynamiques (ex: {param1}) |
| ParamĂštres de query | ParamĂštres optionnels pour filtrage (aprĂšs le ?) |
| ParamĂštre Body | Objet JSON complet (POST / PUT / PATCH uniquement) |
| ParamĂštre Header | Authentification (Authorization: Bearer token) |
đ„ RĂ©ponse HTTPâ
La réponse HTTP est définie par les éléments suivants :
Codes de rĂ©ponseâ
| Code | Signification |
|---|---|
| 200 | â SuccĂšs de la requĂȘte |
| 400 | â Mauvaise requĂȘte (vĂ©rifier les donnĂ©es) |
| 401 | đ Utilisateur non authentifiĂ© |
| 403 | đ« Utilisateur n'a pas les droits |
| 404 | đ Page introuvable |
| 5XX | đ„ Erreur serveur (serveur inaccessible / erreur fatale) |
Contenuâ
Le contenu sera, sauf précision contraire, du JSON.
Les codes de rĂ©ponse 5XX / 404 / 403 / 401 / 400 doivent ĂȘtre gĂ©rĂ©s par les clients, car le traitement de la requĂȘte n'aura pas Ă©tĂ© exĂ©cutĂ©.