Salut à tous,
J'ai un petit problème au niveau de l'authentification OAuth2, nous sommes dans un cas assez particulier. En effet, nous avons deux api, une destinée à un de nos serveurs pour récupérer des données (cette partie est déjà faite), et une deuxième en développement qui sera destinée aux applications mobiles.
Dans le premier cas, un unique serveur qui fera office de client, va interroger de multiples serveurs où sont les données, il va s'authentifier sur tous ces serveurs en OAuth pour récupérer les données afin de les rendre disponibles. Le fonctionnement est un peu spécial, je me place au niveau du développement sur les serveurs dupliqués pour chacune des entreprises.
Les serveurs contenant les données comportent un deuxième manager doctrine qui se connecte au client pour lui mettre dans sa bdd les informations de connexion OAuth, ainsi les entités OAuth type client, AccessToken, etc. sont stockés chez le client. C'est un comportement assez atypique ^^
Au niveau de la deuxième api qui sera présente sur chacun des serveurs interrogés par le gros serveur principal, destinée donc aux applications mobiles, je voulais mettre une protection OAuth, dont les entités Doctrine seraient mappées cette fois ci avec le manager par défaut et donc dans chacune des bdd des serveurs.
A l'authentification, il ne restait plus qu'à demander un paramètre supplémentaire qui permettait de savoir pour quelle API on voulait se connecter et donc de savoir quel manager utiliser. Ca me semblait être une bonne idée, sauf que ce comportement est vraiment très particulier et le bundle de FOS ne permet pas de gérer plusieurs managers.
Comme solutions possible j'avais pensé à avoir deux bundles OAuth mais je ne sais pas si ça serait possible et j'imagine que ça ne serait pas possible au niveau de la configuration dans le security.yml, où l'on dit simplement de protéger une url avec oauth.
Une autre solution serait de faire un fork du bundle pour gérer plusieurs managers, mais ça prendrait, je pense, pas mal de temps...
Je voulais savoir si vous auriez une meilleure idée, plus simple, ou si tout simplement je m'y prendrais mal. Notre architecture est difficile à expliquer j'en ai conscience, c'est pas super clair, malheureusement je ne peux pas me permettre de donner plus de détails.
Merci d'avance pour votre aide![]()
Partager