2009-06-02 16 views
32

HTTP Spec devletler:Yalnızca OpenID kullanıyorsam, WWW-Authenticate üstbilgisini 401s'de geçirmeliyim?

isteği

10.4.2 401 Yetkisiz kullanıcı kimlik doğrulaması gerektirir. Yanıt, istenen kaynak için geçerli bir meydan okuma içeren bir WWW-Authenticate başlık alanı (bölüm 14.47) içermelidir. Ben bu alanda koymak gerektiğini

Ben destekleyen tek giriş şeması OpenID'yi (veya CAS veya OAuth jetonları, & c.) Ise,? Yani, istemcinin kimlik doğrulamasını önceden yapmasını ve her istekle birlikte kimlik bilgilerini göndermeyi denemek yerine bir oturum oluşturmanız gerektiğini nasıl belirtebilirim?

Yanıtlamadan önce, "401 göndermeyin; OpenID giriş sayfasına yönlendiren 3xx gönderin," HTML dışı istemciler için ne yapmalı? Örneğin, Overflowflow, özel yazılımımın etkileşimde bulunabileceği bir API nasıl yapar?

cevap

26

RFC2617'a göre auth-scheme herhangi bir şey olabilir; Eğer gerçekten bir 401 istiyorsanız, WWW-Authenticate: OpenID realm="My Realm" location="http://my/login/location" gibi bir şey yaparak teknik olarak teknik özellikleriyle teknik özelliklerini karşılayamazsınız. Bunu söyledikten sonra, bunu yaparken başkalarının kodlarının davranışı elbette tanımlanmamıştır. :-)

3

WWW-Authenticate üstbilgisine ne yazılacağını gösteren bir OAuth Discovery spec var - spec, henüz bir değiştirme belirtimi olmadan eski değilse.