web-dev-qa-db-ja.com

Webアプリケーション-認証/ログインフレームワーク

これは非常に単純で、おそらく最もよく聞かれる質問であり、Webアプリケーションの一部として頻繁に開発されます。 Webアプリケーションの構築を計画していて、機能要件の一部に次のものが含まれているとします(通常のハードヒットセキュリティ要件は別として)-ユーザーに新しいアカウントプロファイルにサインアップさせる必要がある-ネイティブアプリ認証/ Facebookを使用してユーザーを認証するまたはGoogleまたはYahooまたはOpenIdログイン-紛失したパスワードの取得を許可する-セッション処理のニーズ

すぐに使用できるフレームワーク(Drupal、Liferay、Tynamoを使用したタペストリー、Wicket ??)を使用して、JSPまたはHTMLをJSでラップできるアプリケーションをラップできますか?私は非常に単純で、おそらく素朴な質問をしていることを知っています。しかし、これはすべてのWeb開発者の第一人者が通過するトピックです。どんな助け、アドバイス、そしてポインタも大歓迎です。

24
user456563

Apache Shiroをご覧になることをお勧めします: http://shiro.Apache.org/

アプリケーションのセキュリティ部分を処理し、セキュリティを確保する方法に大きな柔軟性をもたらします。たとえば、アノテーションを追加して、個々のメソッド(たとえば、管理者でない限りこのメソッドを実行できない)、個々のページ(たとえば、管理者でない限りこのページをロードできない)を保護できます。およびURLパターン(URLに/ admin/*を含むものにアクセスするには、adminである必要があります)。

それがセキュリティ権に対してどれほど複雑になる可能性があるかを考えれば、Shiroは非常に使いやすいです。最初にいくつかの概念を理解するのに少し時間がかかるかもしれませんが、Shiroは複雑さを可能な限り隠すという非常に優れた仕事をしています。また、ユーザーリストは非常に応答性が高く、非常に役立ちます。

Tapestryを使用している場合は、次のようになります http://tynamo.org/tapestry-security+guide これにより、ShiroをTapestryアプリケーションで簡単に起動して実行できるようになり、テンプレートで使用するタグを使用します。

ShiroはOpenID、OAuth、またはFacebookとの統合をすぐに利用できるようにするつもりはありませんが、その部分をアプリケーションに合わせてカスタマイズする必要がある可能性が高いです。いくつかの作業が行われていると思います。これらのタイプの認証をフレームワークに有効にするのに役立つ機能を統合するために行われます。

Shiro上に構築されたフレームワークのいくつかは、あなたが探しているものの多くを提供するかもしれません。たとえば、 http://tynamo.org/tynamo-federatedaccounts+guide は、タペストリーアプリケーションでのフェデレーションログインのサポートを強化します。まだ初期段階ですが、タペストリーを使用しているかどうかを検討している可能性があります。必要なことを正確に実行できない場合でも、いくつかの良い例を提供する可能性があります。

あなたも興味があるかもしれません: http://static.springsource.org/spring-security/site/

補足として:セキュリティに加えて、典型的なWebプロジェクトで必要となる他のテクノロジーがおそらくたくさんあります。セキュリティ、永続性、基本的なユーザー管理などが必要になる場合があります。多くのWebアプリケーションを作成する場合は、新しい基本的なアプリケーションをすばやく起動して実行できるようにするMavenアーキタイプを作成して、すべての初期構造でコーディングを開始できるようにする価値があります。すでに配置されています。 AppFuseはこれを実行しようとしますが、Webフレームワークに関しては、さまざまな選択肢を提供することを目的としています。使用するテクノロジーがわかっている場合は、ニーズに合わせてカスタマイズされたスタートアップアプリを用意することで、時間を大幅に節約できます。

27
Mark

ApacheShiroまたはSpringSecurityを見てみます。

0
Jack K