/ / Django OAuth Toolkit typu grantu založený na hesle - python, django, oauth-2.0, django-rest-framework

Django OAuth Toolkit "prostriedku-vlastník heslo založené" grant typ - python, django, oauth-2.0, django-oddych-rámec

Snažím sa nastaviť OAuth2 pre Django + Rest Framework pomocou nástroja Django OAuth Toolkit a tu je hádanka, ktorú nemôžem pochopiť pri používaní typu autorizácie "Vlastník zdroja založený na heslách".

Môžem úspešne získať access_token pre toho istého používateľa, ktorý zaregistroval aplikáciu (Klientský vlastník) pomocou:

tu zadajte popis obrázku

Keď sa však pokúšam použiť rovnaký klient_id a client_secret, ale zmeniť username a password pre iného používateľa

{ "error_description": "Invalid credentials given.", "error": "invalid_grant" }

Takže sa zdá, že registrovaná aplikácia môžepoužíva sa iba jeden "vlastník zdroja" - samotný vlastník aplikácie (klient), ktorý robí typ autorizácie typu "vlastník zdroja" zbytočným, pretože funguje rovnako ako "poverenia klienta", ale bez použitia "používateľského mena" a " password ". Inými slovami, potrebujem zaregistrovanú žiadosť, aby som konal v mene iného používateľa, a nie používateľ, ktorý žiadosť zaregistroval (ja), ale nemôžem sa jej obísť.

Samozrejme, že vždy môžem napísať vlastný autorizačný kód, ale nemal by byť podporovaný z krabice (zaujímalo by ma to)?

odpovede:

0 pre odpoveď č. 1

Problémom bola jednoduchá nesprávna konfigurácia a zneužitie, čo viedlo k nejednoznačnému správaniu.

Toto funguje:

  • base64 kódovaná hlavička "Autorizácia" (client_id:client_secret)
  • Uistite sa, že nastavenia aplikácie sú nastavené na "vlastné zdroje založené na heslách". Upozorňujeme, že to nemôže byť "verejné", client_secret je absolútne nevyhnutné pre tento prietok.