2011-01-03 22 views
4

私のウェブページにトークン認証を実装するためにはどの手順を守らなければなりませんか?トークン認証の実装

任意のサマリーまたはリンクをご理解いただけます。

私はFacebookやGoogleと同様の実装をしたいと思います。最初にクライアントのログインとトークンを受け取ってから、次のアクションで使用します。 私はOAuthについても読んでいますが、私は第三者から私のアプリケーションへのアクセスを許可したくありません。


長時間のお返事ありがとうございます。私にはこれ以上詳しくお知りになりたいと思います。

私が望むのは、トークン認証を使用する基本的なWebアプリケーションを実装するための「ステップ」を知ることです。それはユーザーログを一度作成してから、コンテンツを追加、編集などすることができます。

私が言っているのは、サーバーがHTMLヘッダーにSESSION_IDを追加した後、そのセッションに関連付けられています。私はセッションの方法を読むのはスケールが悪いので、OAuthに行く前にGmailやFacebookのようなシステムを実装したいのです。おそらく私はoauthに似た何か(私は深く読まない)を話しているのですが、witj two-leggedの代わりにthree-legged。

答えて

7

要件を考え、適切なプロトコルとそれを実装する適切なソフトウェアを選択する必要があります。

それは、より詳細なしでより多くを語ることは本当に難しい:

  • あなたは、1または複数のWebアプリケーションの認証について話していますか?別のWebアプリケーション間でシングルサインオンが必要ですか?
  • すべてのユーザーデータをサーバーに保存するか、ユーザーがログインできるようにする必要があります。 Googleアカウントで
  • トークンにユーザーに関する情報が含まれている必要がありますか?
  • あなたのアプリケーションはどのプラットフォームで開発されていますか?
  • どの認証方法を使用する必要がありますか?
  • ポータルを実現したいですか?またはあなたの条件に合わない場合がありますプロトコルおよびツールの本当に幅広いあり

http://en.wikipedia.org/wiki/Category:Authentication_methods

http://en.wikipedia.org/wiki/Category:Identity_management_systems

は私個人的にtoken-ためのCAS(http://www.jasig.org/cas)のような複数のWebアプリケーション間のベースSSO Javaベースですが、PHPと.Netもサポートしています。

OpenIDは、ユーザーが自分のGoogle、Yahoo、その他のアカウント(設定可能なもの)を使ってログインできるようにし、ユーザー情報を自分で保存したくない場合は問題ありません。

企業イントラネットアプリケーションにwindows-ssoを統合したい場合は、Kerberos/SPNEGOを使用します。

大学のアプリケーションの場合、おそらくSAML/Shibbolethが最適です。大学外ではあまり普及しておらず、恐らくそれはかなり複雑なプロトコルなのです。

私はほとんど忘れています。ほとんどのWebフレームワーク/標準には、独自の「フォームベースの認証」という独自のバージョンがあります。ユーザーがログインフォームに行くと、そのユーザー名とパスワードが入力されます。両方ともSSLの有無にかかわらずWeb /アプリケーションサーバーに転送されます。サーバーはある種のデータベースに対してそれを検証し、ユーザーに要求を送信するたびに送信され、検証されるクッキーをユーザーに与えます。しかし、この光沢のあるプロトコルのほかに、これはかなり退屈なようです:-)

そして、Web認証で何かをする前に、Webセキュリティに関する一般的なことを考えると(http://journal.paul.querna.org/articles/2010/04/11/internet-security-is-a-failure/http://www.eff.org/files/DefconSSLiverse.pdf)、できないことそれはあなたのサイト(http://www.codinghorror.com/blog/2008/08/protecting-your-cookies-httponly.htmlhttp://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202010.pdf)でさらに悪化します。

1

あなたの意見を参照してください。

プロトコルレベルでは、非常に単純なトークンアプローチはHTTP基本認証です。など

何のログアウト機能は、カスタムがないのでしかし、これは多くの場合、適合しない、シンプルなクッキーベースのアプローチは、例えば次のようになります。サーバーは、秘密(値のいくつかの種類を生成

  • ユーザーが保護されたリソースにアクセスしようとすると、ユーザーは認証が成功した後にログインフォーム
  • にリダイレクトされ、Cookieが取得されます。このCookieには、username、timestamp、および{username server-secret timestamp}のハッシュの3つの値が含まれています。 HttpOnlyの、安全なフラグ、トランスポート層セキュリティ、リプレイ攻撃など:すべてのユーザーの要求をサーバがハッシュ値を再計算し、クライアントはそのクッキー

に送信した値と比較する(詳細の検討を必要と

  • Amazon S3は、その認証トークンをHTTPヘッダーに格納し、それを計算するためにHMACを使用します。 http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?S3_Authentication.html(ブラウザベースのWebアプリケーションでは必ずしも使用することはお勧めできません)

    近くにRESTに関する書籍がある場合は、認証に関する章があるかどうかを調べることができます。恐らくここには物事がもっと良く説明されているでしょう:-)

    この種の認証を行うことができるフレームワークがいくつかあります。セキュリティ上の理由から、自分のものを実装する前にまずチェックするのが理にかなっています。

  • 関連する問題