Skip to main content

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 :

BundleDescription
FriendsOfSymfony/FOSOAuthServerBundleImplémentation d'OAuth 2.0 dans Symfony
FriendsOfSymfony/FOSRestBundleBundle 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​

RouteDescription
/api/public/v1/*RequĂȘtes ne nĂ©cessitant pas d'autorisation
/oauth/v2/tokenRé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&paramQuery2=value

Composants​

ÉlĂ©mentDescription
URLChemin de la ressource
Méthode HTTPGET / POST / PUT / DELETE / PATCH
ParamĂštres d'URLChemins dynamiques (ex: {param1})
ParamĂštres de queryParamĂštres optionnels pour filtrage (aprĂšs le ?)
ParamĂštre BodyObjet JSON complet (POST / PUT / PATCH uniquement)
ParamĂštre HeaderAuthentification (Authorization: Bearer token)

đŸ“„ RĂ©ponse HTTP​

La réponse HTTP est définie par les éléments suivants :

Codes de rĂ©ponse​

CodeSignification
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.

Gestion des erreurs

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Ă©.


📚 RĂ©fĂ©rences​