OAuth2 flow - apakah server memvalidasi dengan server Auth?

10

Saya sudah banyak membaca tentang OAuth2 mencoba untuk mengatasinya, tapi saya masih bingung tentang sesuatu.

Saya memahami bahwa klien mengotorisasi dengan penyedia OAuth (Google misalnya) dan memungkinkan Server Sumber Daya untuk memiliki akses ke data profil pengguna. Kemudian klien dapat mengirim token akses ke server sumber daya dan diberikan kembali sumber daya tersebut.

Tetapi apa yang tampaknya tidak tercakup dalam dokumentasi apa pun adalah apa yang terjadi ketika aplikasi klien meminta sumber daya server untuk sumber daya dan memberikannya token akses. Semua yang saya baca sejauh ini menyatakan bahwa server sumber daya hanya merespons dengan sumber daya yang diminta.

Tapi itu tampak seperti lubang besar, tentunya server sumber daya entah bagaimana harus memvalidasi token akses, kalau tidak saya bisa saja memalsukan permintaan lama dan melewati token lama, dicuri, palsu, atau dibuat secara acak dan hanya akan menerimanya.

Adakah yang bisa mengarahkan saya pada penjelasan sederhana untuk mengikuti OAuth2 karena sejauh ini yang saya baca merasa tidak lengkap.

drekka
sumber

Jawaban:

8

Menemukannya. Terkubur dalam spec. Mereka mengatakan server sumber daya harus memvalidasi token akses dengan server auth tapi itu di luar ruang lingkup dokumen. Sayang sekali, saya akan berpikir bahwa validasi token adalah bagian penting.

drekka
sumber
1
Tentang bagian-bagian penting , mungkin ada baiknya membaca posting blog ini untuk latar belakang tentang prioritas untuk OAuth2.
Lars Viklund
1
Terima kasih untuk itu, bacaan yang menarik. Persyaratan saya agak sederhana karena saya ingin mengizinkan aplikasi iOS untuk mengotentikasi dengan google, twitter, facebook, dll, meneruskan beberapa bentuk otorisasi ke server saya dan meminta server saya memvalidasinya dan memungkinkan akses ke sumber daya. Masalahnya terbukti lebih kompleks daripada yang saya perkirakan karena kompleksitas pemahaman bagaimana ini bekerja dan apa yang harus saya lakukan di mana.
drekka
Lebih tepatnya, Lampiran A: "Untuk memvalidasi tanda tangan pada permintaan, sumber daya yang dilindungi dapat dapat mengirimkan pengenal token ke titik akhir introspeksi server otorisasi untuk mendapatkan informasi kunci yang diperlukan untuk token itu. Rincian penggunaan ini ada di luar ruang lingkup spesifikasi ini dan akan didefinisikan dalam ekstensi [...] ".
JulienD
2

Validasi token umumnya ditangani dalam 1 dari 2 cara.

1) Token ditandatangani secara kriptografis menggunakan kunci yang dibagikan sebelumnya. Ini jelas kedatangan singkat untuk digunakan dalam sistem terdistribusi dan berkembang biak.

2) Server Otorisasi (AS) menyediakan titik akhir untuk validasi token atau Introspeksi. Metode ini distandarisasi di IETF RFC 7662 pada Oktober 2015, lihat: https://tools.ietf.org/html/rfc7662

Pertanyaan / Jawaban Stack Overflow ini mencakup contoh-contoh dari Google dan Github: /programming/12296017/how-to-validate-an-oauth-2-0-access-token-for-a-resource-server

Howie Ross
sumber
0

Anda membaca spec untuk cara memvalidasi token:

https://tools.ietf.org/html/rfc7662

harap ini membantu - tolong tandai jawabannya jika menjawab pertanyaan / masalah Anda

Chirag
sumber
4
Selamat datang di Rekayasa Perangkat Lunak. Dalam bentuknya saat ini, jawaban ini tidak memenuhi pedoman kualitas kami . Kami berharap bahwa jawaban harus berdiri sendiri - pembaca harus mengikuti tautan eksternal hanya untuk mendapatkan pemahaman yang lebih dalam atau untuk mengkonfirmasi sumber dan konten yang relevan harus dikutip di sini.
Thomas Owens