2009-04-13 8 views
2

私は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") 
    { 
    } 
} 

、私はいくつかの質問を持っている:

  1. は、一度これを実行するClaimedIdentifierをキャプチャし、そこにそれを入れて、それが安全です。それはいつも同じでしょうか?

  2. があり、それは(ユーザーがそれを見なかった場合は、ユーザーはGoogleだけ原因ClaimedIdentifiersがそのURLで始まることはできますか?これを偽造することはできますか?それが何かをcomprimiseだろう?秘密ですか?)ハードコードすることは安全です

私はドキュメントを試しましたが、少し疎で、これらの質問に対する回答を見つけることができません。

**編集:**私自身の質問に回答している可能性があります。私は自分のウェブサイト(openid.delegate)にメタタグを使って、ログイン用の厄介なGoogle URLの代わりに自分のブログURLを使用できるようにしました。私はGoogle経由でログインして、私のブログURLとしてClaimedIdentifierを返します。これにより、誰かが自分のログインページに行って、自分のGoogleアカウントとしてログインし、独自のClaimedIdentifierで自分のブログに戻すことができると私は思います。

  1. ClaimedIdentifierが簡単に偽造されたように見える場合、どのようにユーザーを検証する必要がありますか?あまりいじり(と友人が私としてログインしようとした)した後、私は答えを持っていると思う

答えて

4

はい、主張識別子を格納するので、安全であり、その値は秘密ではありませんそれがclaim_id値を持つコードが流出した場合、セキュリティ上の妥協ではありません。

はい、常に同じである必要があります。そうしないと、ユーザーは作成したアカウントに再度アクセスできなくなります。そう言われている、Googleはあなたのウェブサイトのために領域のURLがいつでも変更されるなら、Googleはあなたのサイトにすべての新しいclaims_idを送ることになるという点で独特です。レルムが一定のままである限り、claims_idも同様です。 DotNetOpenIdを使用しているので、デフォルトレルムはあなたのWebサイトのルートURLだけなので、サイトがホストされているURLを変更しない限り、おそらく一定のままです。

あなたが判断したように、claimed_idは簡単に偽造することはできません。それがあれば、OpenIDは本当に役に立たない。

+0

応答に感謝します - 私は今より安心しています! :D 私はそれが安全でなければならないと確信していました(あなたが言うように、openIDは役に立たないでしょう)が、claim_idがワンタイムテンポであるかどうかはわかりませんでした。すべては今はっきりしています:) –

+0

ええ、私はそのURLにgoogleとgoogleを見つけました。 – UpTheCreek

1

...

私のウェブサイトでタグが私のGoogleユーザー名が含まれており、私がしようとした場合私のブログのURLを使用してリクエストの別のユーザーとしてログインすると、失敗したように見えます(失敗したとして私を返信するのではなく、ログインしていたWebサイトに私を戻すことはありません)。

これ、私はClaimedIdentity として私自身のURLを返すことは安全であることを考えさせるなど、偽造することができないなど

関連する問題