2010-04-06 76 views
4

我用DotNetOpenAuth爲我的ASP.NET應用程序實現了一個直接的OpenID支持。然而,我最近意識到,與https://johndoe.example.com相比,實施方案將http://johndoe.example.com/視爲不同的用戶。我應該根據協議前綴區分OpenID嗎? http vs https

這導致了不少困惑的用戶。我不確定此時該做什麼。 這是一個錯誤或特徵?

的確,我可以將此行爲視爲一項功能:如果用戶指定HTTPS,則用戶可能不希望系統首先接受HTTP認證。另一方面:如果用戶從純粹的無知中指定HTTPS(偶然的Web訪問者對「S」部分的用途不甚了了),那麼拒絕它的身份驗證嘗試就會造成混淆。

什麼被認爲是最佳實踐?

+0

您一頭霧水:「如果用戶指定HTTPS,用戶可能不希望系統首先接受HTTP驗證。」 – keturn 2010-04-06 18:54:46

回答

-1

理論上http和https的身份可能不同。實際上(由現實世界中的提供者實施)他們不應該這樣做。

StackOverflow上不區分http://abdullin.myopenid.comhttps://abdullin.myopenid.com之間,因此解決方案應爲99%的情況下可能工作。

+0

StackOverflow將它們等價處理是錯誤的(如果這是真的)。見Steven的回答。 – 2010-04-07 23:25:07

4

是的 - 他們是完全不同的,應該如此對待。

對OP的建議是始終使用https,但並非總是如此(剛纔)。

+0

我相信有些OP只提供HTTPS標識符,包括Yahoo和Google。 – keturn 2010-04-06 22:02:09

+1

這是一項安全要求。如果HTTP和HTTPS標識符被視爲等效,那麼HTTPS不提供比HTTP更高的安全性,因此易受DNS中毒(等同於用戶身份欺騙(讀取:被盜的身份))的影響。把這些視爲不同的身份是非常重要的。 – 2010-04-07 23:24:50