我正在嘗試使用OpenID來允許我通過Google登錄到我的網站。最終它會被訪問者使用,但現在它只是被硬編碼爲Google來驗證我自己的登錄。DotNetOpenId ClaimedIdentifier - 對此進行硬編碼是否安全?
我的代碼如下所示:
var openId = new OpenIdRelyingParty();
// If we have no response, start
if (openId.Response == null)
{
// Create a request and send the user off
openId.CreateRequest("https://www.google.com/accounts/o8/id").RedirectToProvider();
}
else
{
// We got a response - check it's valid
if (openId.Response.Status == AuthenticationStatus.Authenticated
&& openId.Response.ClaimedIdentifier == "blah_blah")
{
}
}
現在,我有一些問題:
它是安全的運行一次此,捕捉ClaimedIdentifier並把它放在那裏。它會永遠相同嗎?
它是安全的硬編碼存在(它是祕密嗎?如果用戶沒有看到它,會是comprimise什麼?用戶能夠建立?只能谷歌的原因ClaimedIdentifiers開始與他們的網址是什麼?)
我試過了文檔,但它們有點稀疏,而且我無法找到這些問題的答案。
**編輯:**我可能回答了我自己的問題。我在我的網站上使用了一個元標記(openid.delegate),這樣我就可以使用我的博客URL而不是一個令人討厭的Google網址登錄。當我通過Google登錄時,它會將ClaimedIdentifier返回爲我的博客網址。這讓我想,任何人都可以登錄我的登錄頁面,以自己的Google帳戶登錄,然後用我自己的ClaimedIdentifier將它們返回到我的博客。
- 當ClaimedIdentifier看起來很容易僞造時,我該如何驗證用戶?
感謝您的迴應 - 我現在感覺更安全! :D 我確信它必須是安全的(或者正如你所說,openID將是無用的),但我不確定claim_id是否是一次性的臨時令牌(原始的Google看起來有點隨機)。現在一切都很清晰:) – 2009-04-14 18:56:14