Blog Technique sur les API Joomla
Services Web Joomla SANS être Super Admin
- Détails
- Écrit par : Mr Alexandre J-S William ELISÉ
- Catégorie : Blog Technique API Joomla
-
Également disponible :
About 6mn to read
Être SuperAdmin n'est pas obligatoire pour les Web Services. Et ce, depuis 2020. Pour le vérifier, vous pouvez vous référer à cette pull request de George Wilson Pull request 29649
Mais alors comment faire pour bien configurer notre site Joomla préféré?
Nous pourrions plutôt suivre ces 5 étapes pour donner le moins de permissions et privilèges que possible. Seulement le stricte minimum requis. D'où le "Principe du Moindre Privilège" très connu et l'un des principes fondamentaux de la cybersécurité défensive "Blue Team".
1. Créer un groupe utilisateur Joomla appelé Web Service.
2. Assignez un utilisateur specifique à ce groupe, par exemple api-lecture-seule-001
3. Configurez le plugin jeton utilisateur et ajouter le groupe utilisateur Web Service.
4. Configurez le groupe utilisateur Web Service pour qu'il ait la permission API Login .
5. Pour les permissions supplémentaires, et pour mimer un système RBAC (Contrôle d'Accès Basé sur les Rôles) nativement avec Joomla, vous pourriez associer un groupe specifique à un ensemble de permissions mutuellement exclusives. (Ceci a été expliqué de façon très détaillée et clairement dans la conférence de Randy CAREY à la JWC 16 Joomla World Conference 2016 qui est toujours d'actualité aujourd'hui, vu que, pour le moment le système de permissions du noyau de Joomla n'a pas trop changé depuis. Joomla World Conference 2016 - Randy Carey talk - RBAC with Joomla)
Dans notre exemple, ce serait l'utilisateur api-lecture-seule-001 dans le groupe Web Service et le groupe Registered afin de pouvoir ce connecter en Frontend et obtenir son Jeton API Joomla dans son profil utllisateur.
Pour le moment, on ne peut pas créer ce jeton de façon complèment automatisée et programmable directement via un point d'API, par exemple POST /api/v2/auth/token ou en mode console, avec un commande qui serait rajoutée au noyau de Joomla, par exemple user:auth:token pour demander un jeton ephémère aux permissions fines.