J’ai trouvé le problème : l’en-tête n’était pas défini sur « Content-Type: application/json ». Et je vois que c’était la même chose pour @qlands ci-dessus.
Le seul problème restant pour moi maintenant est le même que @nodomain : le compte est créé avec succès mais l’avatar n’est pas inclus. Exemple de réponse :
Body: {
"access_token":"...",
"token_type":"bearer",
"expires_in":"3600",
"scope":"profile",
"profile" : {
"id":1234,
"email": "...",
"name": "...",
"picture": "https://somedomain.com/somevalidpicture.jpg"
}
}
Et il est correctement analysé, puisqu’il apparaît dans le log suivant :
OAuth2 Debugging: after_authenticate response:
creds: {"token"=>"...", "expires_at"=>1702053692, "expires"=>true}
uid: 1234
info: {"email"=>"...", "name"=>"...", "avatar"=>"https://somedomain.com/somevalidpicture.jpg"}
extra: {}
J’ai vérifié que l’adresse de l’image est correcte et qu’elle fait 300x300.
Une idée pour ça ?
Edit : quelqu’un vient de créer un compte et il a pris l’image de Gravatar. Peut-être que l’image valide dans le json est écrasée par un résultat vide de Gravatar ?
Authentik en tant que fournisseur OAuth
Je joue actuellement avec Authentik et j’aimerais savoir si d’autres personnes ont de l’expérience avec lui et Discourse ?
Malheureusement, je n’ai pas trouvé de document de support officiel pour Discourse.
Il y a beaucoup de paramètres à ajuster ![]()
Portainer a une implémentation OAuth beaucoup plus simple.
Portainer, juste pour comparaison :
Comment ça va ? Je veux implémenter le SSO avec Authentik sur Discourse et Ghost, mais mon projet est en attente pour le moment.
Tout conseil serait grandement apprécié ![]()
Quelqu’un a-t-il rencontré le problème où l’authentification unique (SSO) se trouve sur un réseau interne, et lorsque Discourse tente d’accéder au site SSO en utilisant une adresse IP interne, il devient inaccessible ?
tail -f production.log
(oauth2_basic) Setup endpoint detected, running now.
(oauth2_basic) Request phase initiated.
Started POST "/presence/update" for 10.10.10.10 at 2024-06-15 18:19:44 +0000
Processing by PresenceController#update as */*
Parameters: {"client_id"=>"xxx", "present_channels"=>["/chat-user/core/1"]}
Completed 200 OK in 26ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 1895)
Started GET "/auth/oauth2_basic/callback?code=xxxx&state=xxxx" for 10.10.10.10 at 2024-06-15 18:19:49 +0000
(oauth2_basic) Setup endpoint detected, running now.
(oauth2_basic) Callback phase initiated.
OAuth2::ConnectionError (FinalDestination: all resolved IPs were disallowed)
lib/final_destination/ssrf_detector.rb:105:in `lookup_and_filter_ips'
lib/final_destination/http.rb:15:in `connect'
lib/middleware/omniauth_bypass_middleware.rb:43:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
lib/middleware/anonymous_cache.rb:391:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:289:in `call'
Erreur de page Web
Oups
Le logiciel qui
Vous pouvez ajouter le nom d’hôte de votre site SSO interne au paramètre de site ‘allowed_internal_hosts’. Discourse pourra alors s’y connecter.
Comment changer le client_id en appid dans l’URL ?
Mon serveur ne prend pas en charge le client_id dans l’URL, sauf appid.
Je dois modifier le plugin.
S’il vous plaît, aidez-moi.
Un an plus tard et vous aidez toujours avec ce post ! Merci !! Authentik fonctionne maintenant pour moi.
Bonjour, j’utilise Oauth2 avec Zalo, mais nous avons rencontré le problème ci-joint. Quelqu’un connaît-il la raison ?
J’ai configuré l’URL de rappel comme suit : https://sphere.daviteq.com/auth/basic_oauth2/callback
Quelqu’un peut-il partager une configuration authentik ? Je suis presque sûr d’avoir tout configuré correctement, mais j’obtiens toujours (oauth2_basic) Authentication failure! Timeout::Error: Faraday::TimeoutError, Timeout::Error
Ce plugin est maintenant inclus dans le cœur de Discourse dans le cadre de Bundling more popular plugins with Discourse core. Si vous auto-hébergez et utilisez le plugin, vous devez le supprimer de votre app.yml avant votre prochaine mise à niveau.
x-ref


