Surat untuk penyedia OAuth
(pilcrowonpaper.com)-
Surat untuk penyedia OAuth
-
GitHub
- Endpoint token mengembalikan kode status 200 bahkan saat terjadi kesalahan
- Respons kesalahan seharusnya menggunakan kode status 400 atau 401
-
Facebook
- Endpoint token mengembalikan respons kesalahan kustom
- Seharusnya berupa objek JSON dengan field error
-
TikTok
- Server menggunakan parameter
client_keyalih-alihclient_id - Tidak ada alasan untuk menyimpang dari spesifikasi
- Server menggunakan parameter
-
Strava
- Server menggunakan daftar yang dipisahkan koma untuk parameter scope
- Seharusnya berupa daftar yang dipisahkan spasi
-
Naver
- Server mengembalikan waktu kedaluwarsa token sebagai string
- Ini masalah yang melampaui sekadar kepatuhan terhadap spesifikasi
-
Berbagai penyedia OAuth
- Harus mendukung autentikasi dasar HTTP alih-alih parameter
client_secretuntuk autentikasi klien - Dalam standar OAuth 2.1, autentikasi dasar HTTP bersifat opsional, tetapi meskipun PKCE diwajibkan, sebagian besar penyedia tetap tidak menggunakannya
- Harus mendukung autentikasi dasar HTTP alih-alih parameter
-
AWS
- Pernah menerima beberapa laporan bug saat digunakan bersama library klien OAuth, tetapi karena masalahnya tidak dapat direproduksi, bagian terkait dihapus
-
2 komentar
Saat membangun proyek layanan publik pemerintah, saya pernah punya pengalaman menghabiskan waktu sebulan penuh hanya untuk mengimplementasikan fitur OAuth (OIDC)...
Karena tidak bisa menggunakan library eksternal, saya harus mengimplementasikan semuanya satu per satu, dan selain Kakao atau Google, tidak ada yang benar-benar mematuhi standar OAuth...
Naver ya begitu, levelnya seperti asal login bisa maka tidak masalah, sampai-sampai saya ragu apakah pantas dipakai, dan Apple bahkan sampai sekarang pun saya tidak ingat bagaimana dulu saya mengimplementasikannya karena butuh kode implementasi lebih dari 3 kali lipat dibanding sumber OAuth yang sudah ada.
Seperti di teks utama di atas, ada juga kasus kode responsnya berantakan, dan bahkan ada penyedia yang sampai membalas dengan 418 (I'm a teapot).
Karena pengalaman-pengalaman seperti ini, saya jadi tidak memakai fitur seperti social login meskipun sebenarnya lebih praktis...
Komentar Hacker News
Seorang pengguna pernah mengimplementasikan server OAuth di intranet perusahaannya. Tim lain meminta implementasi login tanpa mengikuti spesifikasi resmi, dan pada akhirnya ia harus membuat varian OAuth tidak resmi
Saat menggunakan OAuth dengan beberapa penyedia dan opsi pendaftaran email, kadang pengguna tidak ingat sebelumnya login dengan cara apa sehingga tanpa sengaja membuat akun baru
Setahun lalu seseorang mengimplementasikan OAuth untuk 100 API populer, dan pengalamannya mirip dengan yang dijelaskan OP
Banyak penyedia tidak mendukung
prompt=select_accountatau tidak meminta pengguna memilih akun yang akan dipakai untuk login. Ini terutama menjadi masalah di OIDCAda laporan bug terkait AWS, tetapi tidak bisa direproduksi sehingga bagian itu dihapus dari postingan. Namun, itu sempat berguna sebagai daftar periksa masalah umum
Jika ada test suite resmi, itu akan membantu implementasi standar terbuka. Karena spesifikasinya sulit diikuti, test suite yang bisa dipakai untuk verifikasi akan sangat berguna
Masalah Facebook tampaknya adalah kasus ketika OAuth2 dikodekan menggunakan framework layanan yang sudah ada, tetapi tidak sesuai dengan spesifikasi. Ini mirip dengan masalah umum dalam scripting
Beberapa penyedia tidak mengikuti spesifikasi dan memilih endpoint terpisah untuk refresh token
Meminta para penyedia OIDC/OAuth untuk mendukung SCIM dengan benar dan merancang sistem dengan pola pikir "API-first". Perlu mempertimbangkan ulang keputusan sebelum beralih ke GNAP