web-dev-qa-db-ja.com

REST Webサービスを使用したiOS認証/認証

現在、開発したい新しい「ゲートウェイサーバー」の設計段階にあります。サーバーにはRESTサービスがあります。私の仕事は、aforementionendへのアクセスを保護するための実行可能なオプションを見つけることですRESTサービス(auth/auth)

このサーバーはビジネス環境で使用される予定です。つまり、使い捨てにLDAP/Active Directoryがあります。このAPIを介して提供される情報は非常に価値が高く、デバイスとサーバーで適切に保護する必要があります。アプリとバックエンドは従業員が使用する予定で、パブリックユーザーは存在しません。

アプリケーションサーバー(Glassfish)をバックエンドの基本コンポーネントとして使用します。おそらく劣っている独自のソリューションを発明することを避けたいので、組み込みのセキュリティメカニズムを使用したいと思います。

未承認/未認証のアクセスからバックエンドを保護するためのベストプラクティスは何ですか?

より具体的には:

  • バックエンドへのアクセスをどのように保護できますか?
  • モバイルデバイスからバックエンドへのすべてのリクエストでユーザー名とパスワードを送信するオプションですか?
  • 送信されたユーザー名/パスワードをLDAPに対して検証することは良い習慣ですか?

知っておきたいこと:

  • ゲートウェイサーバーは、リバースプロキシの背後にあります。
  • ユーザーは、複製したいときに、ユーザー名/パスワードで自分自身を認証する必要があります(バックエンドに接続します)
  • デバイスとバックエンド間の通信はTLSで保護されます

ありがとう

2
theXs

認証システムには、回避すべき一般的な欠陥があります。

  • 企業環境では、認証をすぐに終了することが重要です。従業員が解雇された場合、彼らは復讐を求めることができ、アクセスクラウドの狭いウィンドウでも深刻な金銭的損失を引き起こすのに十分です。
  • 強引な。特定のIPからの認証要求をレート制限するシステムが必要です。 IPがキャプサを解決できるまでリクエストをブロックすることは、Googleや他の人が使用する良いアプローチです。
  • 安全でないチャネルを介した情報の漏洩。これはTLS(またはHTTPS)によって緩和されます。 TLSには独自の問題があり、常にデフォルトで誤って設定されています。安全な暗号スイート(TLS V1以降)を使用していることを確認し、再ネゴシエーション要求を無効にします。その価値のある脆弱性スキャナーは、これらの違反を示し、それらは一般的な発見です。
  • 注入と認証のバイパス。 LDAP Injection を理解していることを確認してください。

すべてのリクエストにユーザー名/パスワードを含めるように強制すると、即時終了の最初の問題が解決します。すべての要求をActive Directoryに送信する必要がある場合、アクセスを取り消す場所は1つだけです。 LDAPは非常に高速な非リレーショナルデータベースであり、フィルター要求は非常に高速です(SQLよりもはるかに高速)。

2
rook