7

私が働いている会社は、内部の Web サイトを外部に公開したいと考えていますが、簡単な方法で訪問者を識別したいと考えています。一部の機能はすべての訪問者に表示されますが、ほとんどの機能は認証された訪問者に表示される必要があります。(また、一部の機能は管理者の訪問者に制限されています。) 経営陣は独自の認証システムを実装することを検討していますが、私は、既に利用可能で、ユーザー名/パスワードの管理を私たちから遠ざける既存の技術を使用することを提案しました. (セキュリティについて話しているとき、私たちは単なるアマチュアであるためです。認証は非常に優れている必要があります。)

そこで、Google のOpenIDから始めて、Google が提供するライブラリを調べました。使いやすそうで、ユーザーが認証されたことを示すトークンを取得できます。しかし、私たちのプロフィール情報を彼のID/トークン/その他にリンクできるように、このユーザーを特定するにはどうすればよいでしょうか?

簡単にするために、何か不足していることはわかっています。Googleで訪問者を認証し、このユーザーに永久にリンクするために使用できるトークンを取得する方法を示す例が必要です。(したがって、セッション トークンはありません。) このトークンは、ユーザーが自分のプロファイルを入力するために使用できます。

4

1 に答える 1

4

あなたのタグは言語が C# であることを示唆しているので、DotNetOpenAuthをお勧めします。これは無料で、ユーザーを区別するために使用できるトークン (OpenID の用語では、要求された識別子と呼ばれます) を取得する方法を示すサンプルが含まれています。

Claimed Identifier (探している永続的な識別子) を取得するには、OpenIdTextBoxまたはOpenIdLoginコントロールを使用している場合、 LoggedIn イベントを処理して e.ClaimedIdentifier プロパティを取得します。プログラムで(コントロールなしで)実行している場合、メソッドは、取得できるプロパティを持つインターフェイスをOpenIdRelyingParty.GetResponse()返します。IAuthenticationResponseClaimedIdentifier

次に、ASP.NET RoleProvider (非常に簡単です) を実装して、一部の OpenID Claimed Identifiers が管理者ロールに属することを許可し、標準の ASP.NET 承認技術を使用して、認証方法に基づいて個人を段階的にロックアウトできます。

于 2009-06-19T13:46:10.773 に答える