nuitdebout / wordpress

site nuitdebout.fr
Other
13 stars 9 forks source link

Centralisation de l'authentification #144

Open mdamien opened 8 years ago

mdamien commented 8 years ago

Hello, ce serait bien d'avoir un provider OAuth special nuit debout pour eviter la multiplcation des comptes, faciliter l'ajout de services et la moderation.

En clair, je suis parti pour utiliser python-oauth2 car je suis experimenté en python et mettre ca sur un serv de test. Apres ce serait bien que ce soit sur auth.nuitdebout.fr.

On pourra planifier la migration des comptes ensuite / accepter les deux systemes.

EDIT: Apres lecture de http://www.pydanny.com/the-sorry-state-of-python-oauth-providers.html, mon choix se porte desormais sur https://github.com/evonove/django-oauth-toolkit.

EDIT2: La solution ideal c'est d'utiliser un plugin wordpress vu que c'est deja l'element central de l'infra. Mais le dev est parti en mode closed-source pour les fonctionnalités avancés (sinon le reste est GPL v2)

NOTE: WP OAuth Server 3.2.0 Supports all grant types including:

  • Auth Code
  • Client Credentials
  • User Credentials
  • Implicit Flow
  • OpenID Code
  • OpenID Implicit

You can purchase 3.2 + by visiting http://wp-oauth.com.

De plus, baser notre auth sur du wordpress...ya mieux comme securité.

EDIT3: Autre chose, ajouter 2 factor auth serait pas mal aussi

EDIT4: Autre protocole possible, le CAS. Supporté par Rocket.Chat, Wordpress et le wiki. D'apres ce post le compromis c'est que tu pas proposer plusieurs providers.

On peut l'ajouter direct a wordpress via ce plugin qui est pas mega maintenu mais le protocole est simple de toute facon.

EDIT5: Je suis bloqué sur l'installation des box vagrant/docker mais la solution de base devrait etre plutot straightforward:

diff --git a/ansible/site.yml b/ansible/site.yml
index fd67079..c93e7de 100644
--- a/ansible/site.yml
+++ b/ansible/site.yml
@@ -58,5 +58,6 @@
         - contact-form-7
         - login-lockdown
         - enhanced-media-library
+        - wp-cas-server
   roles:
     - wordpress

EDIT6: La PR est faite, ma vagrant est ok

Atala commented 8 years ago

Il y a déjà une équipe qui bosse là-dessus, rejoindre le channel #sso dans le chat.

mdamien commented 8 years ago

@Atala je l'ai fait, ils etaient content que je reprenne le boulot sur le sujet :smiley:

Lapin0t commented 8 years ago

Ca me parait cool d'avoir du sso effectivement. Pour ce qui est du serveur il y a authentic 2 fait par une SCOP française qui à l'air super (il faut les contacter, ils ont peut-être des devs qui pourraient nous aider). Par contre OAuth n'est pas un protocol d'authentification mais d'autorisation (c'est beaucoup plus faible), donc bof bof. Mais CAS, SAML ou OpenID sont plutôt bien je crois.