core icon indicating copy to clipboard operation
core copied to clipboard

OAuth-Unterstützung

Open leofeyer opened this issue 10 years ago • 16 comments

Ich fände es wichtig, wenn Contao endlich mal eine OAuth-Unterstützung erhielte. Dabei stelle ich mir zum einen folgendes vor:

  • Anmeldung mit Twitter
  • Anmeldung mit Facebook
  • Anmeldung mit Google+

Aber ich möchte darüber hinaus noch ein anderes Szenario abbilden:

  • Eine zentrale Contao-Installation verwaltet Mitglieder
  • Eine andere Contao-Installation soll gegen diese zentrale Installation Mitglieder mittels OAuth authentifizieren können
  • Wurde ein Mitglied authentifiziert, soll ein Abgleich der Daten aus tl_member erfolgen, beispielsweise über einen JSON-Datensatz

Das Problem daran ist, dass ich noch nie mit OAuth gearbeitet habe. Hat jemand von euch schon Erfahrung damit und kann uns mit seinem Fachwissen unterstützen? Sind die beschriebenen Szenarien realistisch?

leofeyer avatar Jul 18 '14 09:07 leofeyer

+1

xchs avatar Jul 18 '14 09:07 xchs

Ich finde das hat nichts mit OAuth zu tun. Die Contao User sollten so umgebaut werden, dass eine Authentifizierung und Autorisierung universell möglich ist. @LeoUnglaub wollte dazu ja ein Konzept machen.

Ob danach dann ein OAuth-"Treiber" für Facebook dazu gefügt wird ist eine andere Geschichte. Man kann das ja aktuell schon bauen, aber es ist einfach nicht schön dass die Daten in tl_member eingefügt werden müssen...

aschempp avatar Jul 18 '14 11:07 aschempp

https://github.com/bit3/contao-facebook-connect https://github.com/bit3/contao-twitter-connect/tree/develop

Ja kann ich helfen, hab da schon 2 Extensions für geschrieben :-)

Grundsätzlich ist das alles möglich, was OAuth allerdings nicht liefert ist ein Datenabgleich, der muss spezifisch pro Platform entwickelt werden. Grundsätzlich liefert OAuth aber nur die reine Authentifizierung, die Autorisierung muss wiederum innerhalb von Contao passieren und da scheiden sich aktuell die Geister. Bei meinen Extensions wird bspw. ein Account angelegt und mit E-Mail und Benutzername befüllt, soweit verfügbar.

tristanlins avatar Jul 18 '14 11:07 tristanlins

Ach ja, man muss auch unterscheiden zwischen OAuth 1 und OAuth 2, Twitter verwendet bspw. noch Version 1, Facebook (und ich glaub Google) verwenden Version 2.

tristanlins avatar Jul 18 '14 11:07 tristanlins

Wäre das nicht ne Aufgabe für ne Erweiterung und nicht für den Core? Ich habe keinen Kunden, der so etwas wollte.

Aybee avatar Jul 18 '14 22:07 Aybee

+1 Habe das immer wieder als Feature Request.

fjacobi avatar Jul 19 '14 06:07 fjacobi

Ich stimme @Aybee zu. Das sollte dann eine abschalltbare Erweiterung sein.

Zeromax avatar Jul 22 '14 08:07 Zeromax

Ohne Änderungen am Core geht das wohl nicht ;)

Toflar avatar Jul 22 '14 09:07 Toflar

@Toflar das geht sicherlich ohne Anpassung am Core. Zumindest was @leofeyer beschreibt (Schreiben in tl_member).

aschempp avatar Jul 22 '14 10:07 aschempp

Ohne Änderungen am Core geht das wohl nicht ;)

@Toflar warum hab ich dann 2 funktionierende Extensions die genau das liefern? :-P

tristanlins avatar Jul 23 '14 07:07 tristanlins

Ich meine wenn man es nicht an ein Mitglied binden will ;)

Toflar avatar Jul 23 '14 07:07 Toflar

@Toflar ja, das geht mit dem Contao Auth aktuell so nicht, dass stimmt.

tristanlins avatar Jul 23 '14 07:07 tristanlins

Ein großes +1 hierfür von meiner Seite :)

Ergänzen möchte ich:

  • Login via GitHub (BE)

ADoebeling avatar May 22 '16 16:05 ADoebeling

In Contao 4 ist das mit der Symfony Firewall wohl nun leichter zu implementieren (ohne es an ein Mitglied zu binden), nehme ich an.

fritzmg avatar May 23 '16 07:05 fritzmg

Wir (@craffft) haben eine OAuth2 Authentifizierung basierend auf dem Symfony FOSOAuthServerBundle für Contao 4 umgesetzt. Dabei wird momentan die tl_member Tabelle verwendet. Könnt ihr euch ja mal anschauen. Habe gerade gestern die Version 1.0.0 deployed.

https://github.com/Craffft/contao-oauth2-bundle

iCodr8 avatar Nov 02 '16 13:11 iCodr8

Very nice!

Please update your database with the following command, because the contao install tool will not generate the symfony relevant tables.

Kleiner Hinweis, in Contao 4.3 ist das geändert, sodass sowohl das Install-Tool auch ORM-Tabellen kennt, also auch doctrine:schema:update die Änderungen aus Contao. Das könnte bei dir zu Problemen führen weil du die Definition sowohl im DCA als auch im Entity hast.

aschempp avatar Nov 02 '16 16:11 aschempp