私は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をキャプチャし、そこにそれを入れて、それが安全です。それはいつも同じでしょうか?
があり、それは(ユーザーがそれを見なかった場合は、ユーザーはGoogleだけ原因ClaimedIdentifiersがそのURLで始まることはできますか?これを偽造することはできますか?それが何かをcomprimiseだろう?秘密ですか?)ハードコードすることは安全です
私はドキュメントを試しましたが、少し疎で、これらの質問に対する回答を見つけることができません。
**編集:**私自身の質問に回答している可能性があります。私は自分のウェブサイト(openid.delegate)にメタタグを使って、ログイン用の厄介なGoogle URLの代わりに自分のブログURLを使用できるようにしました。私はGoogle経由でログインして、私のブログURLとしてClaimedIdentifierを返します。これにより、誰かが自分のログインページに行って、自分のGoogleアカウントとしてログインし、独自のClaimedIdentifierで自分のブログに戻すことができると私は思います。
- ClaimedIdentifierが簡単に偽造されたように見える場合、どのようにユーザーを検証する必要がありますか?あまりいじり(と友人が私としてログインしようとした)した後、私は答えを持っていると思う
応答に感謝します - 私は今より安心しています! :D 私はそれが安全でなければならないと確信していました(あなたが言うように、openIDは役に立たないでしょう)が、claim_idがワンタイムテンポであるかどうかはわかりませんでした。すべては今はっきりしています:) –
ええ、私はそのURLにgoogleとgoogleを見つけました。 – UpTheCreek