2017-10-30 11 views
0

私は次のようなシナリオを持っています:会社全体のREST認証サービスを使用するNode.js REST APIを使用するAngular 4 Webアプリケーション。暗号化されたJWTトークン(JWE)にデータを追加するにはどうすればよいですか?

このREST認証サービスは、node-joseライブラリを使用して解読できるJWEトークンを返します.Node.js APIは、ユーザーのロールをチェックして、彼がウェブアプリケーションを使用できるかどうかを判断します。

ユーザーの役割に応じて、Angular Webアプリケーションは一部のルートへのアクセスを許可/拒否する可能性があります。したがって、私はGuard routesを使用しています。

私の質問は次のとおりです。元のJWEトークンにユーザーロールを追加し、それを有効にしたままAngular Webアプリケーションに戻すことは可能ですか?

トークンの要求とウェブアプリに戻すだけでこれです:

request.post('http://security.companyname.com/service/security/auth') 
      .send({ username: req.body.username, password: req.body.password }) 
      .set('Content-Type', 'application/json') 
      .then(authResult => { 
        res.json({ 
         status: true, 
         token: authResult.text, 
         error: null 
        }); 
      }) 
      .catch(err => { 
       res.json({ status: false, token: null, error: err.message }); 
       console.log(err.message); 
      }); 
+0

バックエンドがそのトークンを拒否する可能性はありますが、フロントエンドから変更できる場合はセキュリティの目的を破るだけです – Dhyey

答えて

1

いいえ、それが可能であれば誰でも有効なトークンを生成することがありました。 JWTは秘密鍵で署名されており、コンテンツの変更によって署名が無効になり、サーバはトークンを拒否する必要があります。

有効なトークンを作成するには、アプリケーションに秘密鍵が必要です。また、Webアプリケーションで作業しているため、鍵はクライアント側で保護されません。あなたは新しいトークンをサーバに要求する必要があります

関連する問題