2017-04-18 20 views
0

私たちのプロジェクトは、Javaバックエンド(Spring Webアプリケーション)とiOSとAndroidクライアントアプリケーションで構成されています。次に、クライアントアプリケーションの認証をJavaバックエンドに追加する必要があります。この考え方は、外部Webサービスを使用して初めてユーザーを登録することです。このステップでは、ユーザーは完全な資格情報(ログインと "大きな"パスワード)を提供し、さらなる認証のためにいくつかのPINを選択します。プライマリステップが正常に完了すると、ユーザーはログインとPIN(以前に自分が選択したもの)を使用して認証できるようになります。これらのログインとピンはDBに保存する必要があります。また、必要に応じていつでも「セッション」とPINを破棄することができます。我々は、Webアプリケーションに最大10,000人の登録ユーザーがおり、同時に1000人のユーザーがオンラインになることを期待しています。Spring RESTサービス、ユーザー登録、認証

また、別の認証サーバーを使用する予定はないため、Webアプリケーション(バックエンド)自体にセキュリティを組み込む予定です。

私は2つのアプローチを検討しています。まず@通常の春@EnableWebSecurityアプローチです。これはまっすぐ進むと思われますが、サーバーにとっては「セッション」が悪いと言う人もいます。セッションは多くのメモリを消費し、パフォーマンスへの全体的な影響は悪くなります。本当ですか?

もう1つのアプローチは、Spring Oauth2の実装を使用することです。私はそれを適切に勉強する時間がなかった、これは私にとって少し残酷であるようです。私たちのニーズに合わせて勉強する価値はありますか? (私たちは時間を使い果たしている)。

また、セキュリティのニーズに合わせて適切なDB構造を用意する必要があります。

質問には、私たちの状況に最も適した方法はありますか?同様の問題を解決しているオープンソースプロジェクトはありますか?助けていただければ幸いです。

ありがとうございます。

答えて

1

認証に使用する技術は、認証されたユーザーの状態を維持するセッションが必要です。 Springセキュリティを単独で使用することも、Oauth2で使用することもできます。

簡略化のため、Spring Security with Tokenの機能を使用することをおすすめします。

ただし、Spring SecurityとOauthで良いブログを見つけることができます。

Securing REST Services with Spring Security and OAuth2

より明確にするため、あなたはまた、あなたがセッションで大量のデータを保存した場合にのみ、メモリのアロットを取る必要がありますhere

+0

私は自分の答えを改善することができるように少なくとも投票の理由を提供する –

1

セッションを訪問することができます。あなたがそれをしない限り、何の問題もないでしょう。セキュリティとユーザーエクスペリエンスの許容レベルに基づいて独自の認証を決定する必要があります。正しい答えはありません。春のセキュリティとセッションについては、How can I use Spring Security without sessions?について既に説明しました。

+0

私の同僚と議論したように、セッションはあまりメモリを必要としません。ユーザー。ユーザーはどのユーザーが認証されたのか、おそらくどのデバイスから取得されたのかを知る必要があります。 セキュリティ面では、アプリケーションを過度なセキュリティなしで一般的に安全にしたいと考えています。私が理解する限り、基本的なセキュリティは十分です。だから私たちはおそらくそのアプローチに固執するでしょう。 –

関連する問題