Pertanyaan Apa yang harus saya berikan untuk header WWW-Authenticate pada 401 jika saya hanya menggunakan OpenID?


Ketentuan HTTP menyatakan:

10.4.2 401 Tidak Sah

Permintaan tersebut memerlukan otentikasi pengguna. Tanggapan HARUS menyertakan Autentikasi WWW   bidang header (bagian 14.47) berisi tantangan yang berlaku untuk sumber daya yang diminta.

Jika satu-satunya skema login yang saya dukung adalah OpenID (atau CAS, atau token OAuth, & c.), Apa yang harus saya masukkan ke dalam bidang ini? Yaitu, bagaimana saya menunjukkan bahwa klien perlu pra-otentikasi dan membuat sesi daripada mencoba mengirim kredensial bersama dengan setiap permintaan?

Sebelum Anda menjawab, "jangan kirim 401; kirim 3xx mengalihkan ke halaman login OpenID," bagaimana dengan klien non-HTML? Bagaimana, misalnya, apakah Stack Overflow akan melakukan API yang dapat digunakan oleh perangkat lunak kustom saya?


32
2018-06-02 15:25


asal


Jawaban:


Menurut RFC2617 itu auth-scheme bisa apa saja; jika Anda benar-benar menginginkan 401 Anda tidak secara teknis melanggar spesifikasi dengan membuat sesuatu seperti WWW-Authenticate: OpenID realm="My Realm" location="http://my/login/location". Karena itu, perilaku kode orang lain ketika Anda melakukannya tentu saja tidak terdefinisi. :-)


26
2017-07-06 17:11



Ada sebuah Spesifikasi OAuth Discovery yang akan menunjukkan apa yang harus dimasukkan ke dalam header WWW-Authenticate - jika spec tidak usang tanpa spec pengganti.


3
2018-06-02 16:39