Securitate

Securitate 50 Solutii

Ce este un token OAuth

OAuth este o modalitate de a reduce numărul de ori în care un client trebuie să se autentifice la un sistem, putând în același timp să furnizeze clientului date sau informații securizate.

În mod normal, acest lucru se realizează prin emiterea unei cereri inițiale către sistemul oAuth cu un anumit tip de date de autentificare, cum ar fi un nume de utilizator și o parolă (dar acestea nu trebuie să fie neapărat un nume de utilizator și o parolă), solicitând un token de la sistemul OAuth. Dacă numele de utilizator și parola sunt valide pentru sistemul OAuth, sistemul OAuth ar trebui să răspundă cu un token.

Apoi, în cererile ulterioare către sistemele care sunt configurate să utilizeze token-ul pentru autentificare și autorizare, token-ul este prezentat în locul numelui de utilizator și al parolei. Presupunând că solicitantul cere o resursă pe care tokenul o permite, sistemul de servire trebuie să furnizeze clientului resursa respectivă.

Un mod obișnuit de a face acest lucru este cu ajutorul comenzii curl (pe un sistem Linux). Aproape întotdeauna veți emite o cerere POST către sistemul OAuth cu un anumit tip de date, cum ar fi un nume de utilizator și o parolă, pentru a obține jetoanele de la sistemul OAuth.

Exemplu:

curl
–request POST
–url https://api.exemplu.ro
–data ‘{ “Username”: “adrian.ciocan”, “Password”: “aiciesteparola” }’
–header “Content-Type: application/json”

Ar trebui să fie primit ceva de genul acesta. În acest exemplu, “abc123” este token-ul de acces (cunoscut și ca token purtător), iar xyz456 este token-ul de refresh(Un token de refresh este un token special care este utilizat pentru a obține mai multe token-uri de acces. Acest lucru vă permite să aveți token-uri de acces cu durată scurtă de viață fără a fi nevoie să colectați credentialele de fiecare dată când expiră unul)

{
“access_token”:”abc123″,
“refresh_token”:”xyz456″,
“expires_in”:31536000,
“expires”:1655380828,
“token_type”:”Bearer”,
“refresh_until”:1655380828
}

Apoi se va emite o comandă ca aceasta, folosind token-ul de acces.

curl
–request GET
–header “Authorization: Bearer abc123”
–header “Accept: application/json”
–url “https://api.exemplu.ro”

[mai mult...]