OpenID Connect (oauth2) & angular/django

OpenID Connect (oauth2) & angular/django
« kdy: 19. 06. 2019, 20:19:44 »
Do menšej web aplikácie som pridával podporu pre OpenID Connect (auth0.com). Backend Django / frontend Angular. Snažil som sa nájsť nejaký rozumný ucelený návod, ale bohužiaľ som na nič nenarazil. Tak som si to nejako dával dokopy a potreboval by som vedieť, ako to teda má byť.

Existujúci stav: komunikácia medzi Django/Angular je chránená cez JWT.

Nový stav:

Djangu som pridal do 'mozilla_django_oidc', ktoré mi rieši OIDC (zostáva aj autentizácia cez ModelBackend). Vytvoril som si v backende nový endpoint, ktorý ma preposlal na auth0 (pri snahe tam ísť priamo z Angularu tam bol nejaký divný problém). auth0 zavolá môj /oidc/callback (django) a ten dorieši autentizáciu a potom si pošlem JWT token do angularu. Týmto nepotrebujem prakticky vôbec meniť angular a všetko funguje. Vzhľadom na moju neskúsenosť v tomto obore, očakávam, že možno je aj lepší/štandardnejší spôsob.

vďaka



Re:OpenID Connect (oauth2) & angular/django
« Odpověď #1 kdy: 19. 06. 2019, 23:43:05 »
Standardnejsie riesenie je pouzit na SPA frontende (Angular) implicit OIDC flow, ktory ti vygeneruje token, ktory pouzijes pri komunikacii s backendom (Django). Backend uz len verifikuje token, ale neriesi jeho vydavanie/obnovovanie. Authorization code flow na backende, ktory posiela token do SPA frontendu mi pride divny. Poriesil si aj refresh tokeny?

Re:OpenID Connect (oauth2) & angular/django
« Odpověď #2 kdy: 20. 06. 2019, 00:14:58 »
Standardnejsie riesenie je pouzit na SPA frontende (Angular) implicit OIDC flow, ktory ti vygeneruje token, ktory pouzijes pri komunikacii s backendom (Django). Backend uz len verifikuje token, ale neriesi jeho vydavanie/obnovovanie.

Vďaka za odpoveď.

Toto som práve načítal (a trochu aj implementoval), ale stále som tam mal problém s autentizáciou pre používateľov bez OIDC. Tak som mal dojem, že aj tak by som tam musel nechať ten JWT. Naviac som mal problém s tvorbou užívateľských účtov v Djangu. Toto mi ten django plugin riešil v podstate bez úprav.

Citace
Authorization code flow na backende, ktory posiela token do SPA frontendu mi pride divny. Poriesil si aj refresh tokeny?

Tiež sa mi to zdá trochu divné. Refresh tokeny by mal riešiť django middleware 'mozilla_django_oidc.middleware.SessionRefresh'.