Autentificare API REST

2 apr. 2019, 17:33:50
Vizualizări: 13.7K
Voturi: 2

Deci încerc să învăț WordPress REST API.

Vreau să creez o postare.

Folosesc aplicația Postman.

Primesc eroarea 401 când încerc să fac POST (GET funcționează bine)

Dar am crezut că faptul că sunt autentificat pe site-ul meu WP ar fi suficient pentru autentificare prin cookie-uri.

3
Comentarii

Verifică acest lucru.

Sally CJ Sally CJ
2 apr. 2019 19:40:00

Încearcă parolele de aplicație, care se află în pluginurile beta. Vezi https://maheshwaghmare.com/docs/application-passwords

maheshwaghmare maheshwaghmare
13 mai 2020 21:08:51

Nu înțeleg cum WordPress poate bloca o accesare neautorizată, dar nu are o metodă de autorizare. Este ca și cum WP oferă o încuietoare, iar tu trebuie să alegi cheia.

Enrique René Enrique René
22 dec. 2020 21:05:06
Toate răspunsurile la întrebare 2
0

Nucleul WordPress suportă acum un nou API REST începând cu versiunea 4.8.x. Printr-o multitudine de posibilități noi, acum poți construi un front-end pentru un site web sau o aplicație cu un framework precum React sau Angular și poți folosi WordPress și panoul său de administrare familiar pentru a gestiona back-end-ul. Astfel, poți prelua toate conținuturile în front-end făcând cereri către API-ul WordPress. Unele cereri (în special cererile POST) trebuie să fie autentificate.

Folosind JWT, poți extinde WP REST API utilizând Autentificarea prin Token-uri Web JSON (JWT) ca metodă de autentificare.

Autentificarea în WordPress REST API:

Autentificare implicită prin cookie: autentificarea prin cookie este singurul mecanism de autentificare disponibil în mod nativ în WordPress.

Aplicații la distanță:

Pentru a suporta aplicațiile la distanță, trebuie să adăugăm o nouă metodă de autentificare pentru API REST folosind un plugin.

Opțiunile acceptate în prezent sunt Autentificarea Basic, OAuth și JWT:

Autentificarea Basic cu un nume de utilizator și parolă este considerată nesigură și ar trebui utilizată doar în scenarii de dezvoltare

OAuth este excelent, dar poate fi dificil de autentificat

JWT este minunat și funcționează excelent cu framework-uri front-end

Ce este un Token Web JSON (JWT)?

Token-ul Web JSON (JWT) este un standard deschis (RFC 7519) care definește o modalitate compactă și independentă de a transmite în siguranță informații între părți sub forma unui obiect JSON. Aceste informații pot fi verificate și de încredere deoarece sunt semnate digital. JWT-urile pot fi semnate folosind un secret (cu algoritmul HMAC) sau o pereche de chei publice/private folosind RSA sau ECDSA.

Deși JWT-urile pot fi criptate pentru a asigura și confidențialitatea între părți, ne vom concentra pe token-urile semnate. Token-urile semnate pot verifica integritatea afirmațiilor conținute, în timp ce token-urile criptate ascund aceste afirmații de alte părți. Când token-urile sunt semnate folosind perechi de chei publice/private, semnătura atestă, de asemenea, că doar partea care deține cheia privată este cea care a semnat-o.

Utilizări ale Token-urilor Web JSON:

Autorizare – Odată ce utilizatorul este autentificat, fiecare cerere ulterioară va include JWT-ul, permițând utilizatorului să acceseze rute, servicii și resurse permise de acel token.

Schimb de informații – Token-urile Web JSON sunt o modalitate bună de a transmite în siguranță informații între părți. Deoarece JWT-urile pot fi semnate – de exemplu, folosind perechi de chei publice/private

De ce ar trebui să folosim Token-uri Web JSON?

Securitate – transmiterea în siguranță a informațiilor între părți folosind perechi de chei publice/private

Analizatoarele JSON sunt comune în majoritatea limbajelor de programare deoarece se mapează direct la obiecte

Ușurință în procesarea token-ului JWT pe partea de client pe multiple platforme, în special pe mobile.

Compact: Datorită dimensiunii sale, poate fi trimis printr-un URL, un parametru POST sau în antetul HTTP. În plus, datorită dimensiunii sale, transmisia este rapidă.

Independent: Încărcătura conține toate informațiile necesare despre utilizator, evitând interogarea bazei de date de mai multe ori.

Cum funcționează Token-urile Web JSON? Fluxul de autentificare JWT Autentificare Utilizator ([nume utilizator/parolă]) => Server de Autentificare => Utilizator Autentificat, JWT Creat și returnat Utilizatorului

UTILIZATOR (Utilizatorul trimite [JWT] la efectuarea apelurilor API) => Server de Aplicație => Aplicația verifică și procesează apelul API => trimite date / mesaj Utilizatorului

utilizatorul se autentifică mai întâi pe serverul de autentificare folosind sistemul de autentificare al serverului (de ex. nume de utilizator și parolă, autentificare Facebook, Google, Twitter etc.). Serverul de autentificare creează apoi JWT și îl trimite utilizatorului. Când utilizatorul face apeluri API către aplicație, acesta transmite JWT-ul împreună cu apelul API. În această configurație, serverul de aplicație ar fi configurat să verifice că JWT-urile primite sunt create de serverul de autentificare

când utilizatorul face apeluri API cu JWT-ul atașat, aplicația poate folosi JWT pentru a verifica că apelul API vine de la un utilizator autentificat.

JWT este doar un șir cu următorul format:

antet.încărcătură.semnătură

Antet – constă din două părți: tipul token-ului, care este JWT, și algoritmul de semnare utilizat, cum ar fi HMAC SHA256 sau RSA.

De exemplu:

{

“alg”: “HS256”,

“typ”: “JWT”

}

Încărcătură – conține afirmațiile. Acestea sunt declarații despre o entitate (de obicei, utilizatorul) și date suplimentare. Există trei tipuri de afirmații: înregistrate, publice și private.

Afirmații înregistrate: Acestea sunt un set de afirmații predefinite care nu sunt obligatorii, dar recomandate, pentru a oferi un set util și interoperabil de afirmații. Unele dintre ele sunt: iss (emitent), exp (timp de expirare), sub (subiect), aud (audiență) și altele.

Afirmații publice: Acestea pot fi definite după bunul plac de cei care folosesc JWT-uri. Dar pentru a evita coliziunile, acestea ar trebui definite în Registrul IANA JSON Web Token.

Afirmații private: Acestea sunt afirmații personalizate create pentru a partaja informații între părți care cad de acord să le folosească și care nu sunt nici înregistrate, nici publice.

O încărcătură exemplu ar putea fi:

{

“user_id”: “4”

}

Semnătură – Pentru a crea partea de semnătură, trebuie să luați antetul codificat, încărcătura codificată, un secret, algoritmul specificat în antet și să semnați acestea.

De exemplu, dacă doriți să utilizați algoritmul HMAC SHA256, semnătura va fi creată în felul următor:

HMACSHA256(

base64UrlEncode(antet) + “.” +

base64UrlEncode(încărcătură),

secret)

Semnătura este folosită pentru a verifica că mesajul nu a fost modificat pe parcurs și, în cazul token-urilor semnate cu o cheie privată, poate verifica, de asemenea, că expeditorul JWT este cine pretinde că este.

Plugin-uri de Autentificare:

Autentificare care va funcționa din aplicații la distanță.

Câteva plugin-uri pentru Autentificare:

OAuth 1.0a Server : Conectează aplicații la site-ul tău WordPress fără a-ți da niciodată parola.

Acest plugin suportă doar WordPress >= 4.4.

Application Passwords : – autentifică un utilizator fără a furniza direct parola acelui utilizator, în schimb vei folosi un șir codificat base64 al numelui său de utilizator și o nouă parolă de aplicație.

JSON Web Tokens – Extinde WP REST API folosind Autentificarea prin Token-uri Web JSON ca metodă de autentificare.

WP User : Extinde WP REST API folosind Autentificarea prin Token-uri Web JSON (JWT) ca metodă de autentificare.

Plugin-ul WP User te ajută să creezi un formular de autentificare și înregistrare în front-end pe site, precum și să creezi token JWT pentru WP REST API cu caracteristici suplimentare de securitate precum Limitare Încercări de Autentificare, Expresie Regulată pentru Parolă, Listă Neagră / Listă Albă de adrese IP etc.

Pentru autentificări sau înregistrări de utilizatori și dorești să eviți paginile normale de autentificare WordPress, acest plugin adaugă capacitatea de a plasa un formular de autentificare, Înregistrare, recuperare parolă cu efecte fluide în AJAX, precum și suport pentru REST API.

https://wordpress.org/plugins/wp-user/

Concluzie

WP RESTful API este viitorul pentru CMS-ul WordPress și cu siguranță având o metodă sigură de autentificare a utilizatorului este primul lucru pe listă. JWT este cea mai bună soluție pentru Autentificare cu ajutorul WP User sau JSON Web Tokens.

5 iun. 2019 07:11:30
2

Nu, faptul că ești autentificat pe site-ul tău WordPress nu înseamnă că ești autentificat și în API-ul WordPress. Ai nevoie de un token JWT.

4 apr. 2019 10:27:41
Comentarii

Poți să explici mai în detaliu, @grazianodev? Sau să ne arăți niște link-uri din documentație.

conor909 conor909
2 dec. 2020 00:40:36

Acesta este un răspuns clar și suficient și ar trebui acceptat ca atare.

Lumi Lumi
28 aug. 2022 15:36:19