2017-09-15 8 views
0

私たちは、nodeJSアプリケーションによって提供されるフロントエンドのAngularJSアプリケーションを保護するためにkeycloakを統合し、このサーバーにAPIリクエストを作成することを検討しています。AngularJSアプリに返されたアクセストークンを攻撃者が使用することはできますか?

いくつかのチュートリアルを見て、AngularJSアプリケーション用のjavascriptアダプターを使用してユーザーの認証フローを処理し、ベアラー専用の戦略を使用してnodeJSアプリケーションを保護し、NodeアプリケーションへのangularJS発信要求が含まれていることを確認します。ベアラトークン値が存在するAuthヘッダ。

私は、トークンがクライアントに返される方法に関して、\私がそれが私たちのためにjavascriptアダプタから読み込まれるものと仮定しているクッキー角度アプリからの後続のリクエストにAuthヘッダーを書き込むことができます。

私の質問は、このトークンの値をブラウザのクッキーから簡単に読み取って、攻撃者がapiリクエストを試みることによって悪意を持って使用することができますか?

私は、攻撃者がnodeJS側に格納されている秘密を知る必要があるため、考えにくいと思いますか?

答えて

0

アクセストークンを使用するためにクライアントシークレットを知る必要はありません。その秘密はアクセストークンを発行するためだけに使用されます。期限切れになっていないアクセストークンを持っている人は、トークンの有効期限が切れるまであなたの身元を使用することができます。しかし、https、httponlyクッキーを使用して、アクセストークンの盗難の可能性を最小限に抑えることができます。また、短いトークンの存続期間(たとえば5分)を使用することもできます。しかし、リフレッシュトークンを実装する必要があります。それ以外の場合、ユーザーはアクセストークンの有効期限が切れるたびに再ログインする必要があります。

私は適切な実装は自明ではないと思います。あなたのアプリの前で許可と認証を処理するいくつかの逆認証プロキシの使用をお勧めします。ヒント:https://github.com/gambol99/keycloak-proxy

関連する問題