Auth - OpenSlides/OpenSlides GitHub Wiki

Authentifizierung für den Client

⚠️ Warnung

Die Schnittstelle existiert nur für den OpenSlides-Client. Eine Aufwärts- bzw. Abwärtskompatibilität wird nicht garantiert. Schnittstellen können bei Bedarf ohne Ankündigung geändert werden.

Zur Authentifizierung wird ein Zugangstoken benötigt. Dies ist ausschließlich über einen OpenSlides-User-Account möglich, welcher über nötigen Rechte verfügt.

Login

Der Login ist über den Auth-Service möglich.

curl -k -D - -H "Content-Type: application/json" https://localhost:8000/system/auth/login -d '{"username":"admin","password":"admin"}'

Der Rückgabewert findet sich in den HTTP-Headern des Response. Wichtig sind die Header authentication und set-cookie, bzw. das Cookie refreshId.

Auth Token

Um ein Request zu authentifizieren müssen die beiden oben genannten HTTP-Header gesetzt werden. Hier ein Beispiel:

 curl -k \
   --cookie "refreshId=bearer%20eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uSWQiOiI1OTVjZTRiOGUyMTI4OGQ5NTk4ZmY4ZGNiMTRiMDQ3ZSIsInVzZXJJZCI6MSwiaWF0IjoxNjY1NTkwNzU5LCJleHAiOjE2NjgxODI3NTl9.FXjZ_B3tJbr3jz2uan-YAC3htrV5VMXbs3Hli1Ba1vQ" \
   -H "authentication: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uSWQiOiI1NjM4NDcxYjhjYzVmZmJlYThjN2EwZTdjZmQwZjIzNCIsInVzZXJJZCI6MSwiaWF0IjoxNjY1NTkwNzQxLCJleHAiOjE2NjU1OTEzNDF9.7VsxZ73bcXha29eO1u5bB9M8Z9Bt82NVDnDqVGXaEJs"  \
   'https://localhost:8000/system/autoupdate?k=user/1/username&single=true'

Die beiden Tokens sind im jwt Format. Der Payload beider Tokens enthalten das Feld userId. Über Auslesen des Tokens ist es möglich die User-ID des Nutzers herauszufinden.

⚠️ **GitHub.com Fallback** ⚠️