2017-10-08 13 views
0

特に、複数の仮想プライベートネットワークとパブリックネットワークにわたってロールベースセッションを認証するためのサーバ側アプリケーションレイヤセキュリティパターンは何ですか?開発者のコ​​ードの複雑さを最小限に抑え、ITのメンテナンスを削減するソリューションを探しています。サーバ側アプリケーション層クラウド認証パターン

問題:個別のプライベート仮想クラウドでホストされているサーバー側のアプリケーションを、ベンダーニュートラル(非AWS/Azure)メカニズムで認証セッションを委任する必要があります。

シナリオ:認証されたセッションを持つアプリケーションは、JWTの形式で、別のネットワークを介してサーバーを呼び出す必要があり、JWTセッションを委任しますが、独自のセッションを無効にせずにそのまま維持します。

可能なパターンとその落とし穴:

  1. のOAuth:スペックはとてもそれが正しいあなた次第ですやって、具体的な実装である多く流れ、どれを持っています。中央IDプロバイダサービスが必要です。期限切れのトークンを使用すると、セッションの状態管理が困難になります。失敗のポイントは、クライアントIDと秘密の漏洩です。
  2. TLS相互クライアント証明書:証明書のライフタイム管理(ITの痛み)と証明書を検証するための追加コード(開発者向けの苦労)が必要です。パブリックサーバの場合は、パブリック認証局とDNSが必要です。これにより、dnsに証明書が要求されたと仮定してコストと複雑さが増します。障害点は、漏洩した秘密鍵とルージュ証明書です。

関連質問:OAuth 2.0 Many to Many Delegated Client Credential Flow Scenario

答えて

0

ベンダー依存しないデータセンター間のアプリケーションを確保する一般的なアプローチは、仲介認証パターンを使用することです。仲介認証のコンポーネントには、資格情報を検証しトークンを生成するセキュリティトークンサービス(STS)が含まれています:

  1. トークンを生成するセキュリティトークンサービス
  2. ユーザー/パスまたはアプリケーションキー/ IDと秘密。
  3. KPI(X.509クライアント証明書)。証明書はプレーンテキストの秘密やパスワードよりはるかに安全です。証明書の検証は、証明機関で行うことができますが、独自の問題を導入します。クライアントに既存の信頼関係がある場合、証明書のピニングはCA(https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning)のソリューションになる可能性があります。

参照Webサービスセキュリティ:http://download.microsoft.com/download/8/d/6/8d608524-0763-48b5-840b-0ae446996a14/MS_WSS_Dec_05.pdf

公開鍵インフラストラクチャ:https://sites.google.com/a/ssl4net.com/www/technology/public-key-infrastructure

関連する問題