2017-01-28 4 views
1

申し訳ありませんが、これは何度か尋ねられましたが、しっかりとした回答を見つけることはできません。SPA HTML5アプリとWebサービス間のユーザートークンを保護しますか?

HTML5アプリケーションとPHP Webサービスのログイン手順とセッション(種類)を保護したいと考えています。私は、サーバーにHTTPSを使用するログイン画面をユーザーに提示し、クライアントに、ログイン時間と最後の要求時間、および自分の行に格納する実際のユーザーIDを持つデータベースに格納されているランダムなGUIDを与えますユーザー表に表示されます。したがって、毎回GUIDが異なるかもしれませんが、ログイン時にマッピングされるユーザーIDはサーバー側でのみ表示されます。

私は認証に関しては疲れており、このようなWebサービスに対してHTML5/JSアプリを扱ったことはありません。私は通常ASP .NETサイトを開発し、セッションを使用しました。

私は最近、クライアントに含まれ、サーバーとの間でやりとりされるトークン文字列にデータストアを暗号化するJWTトークンを発見しました。これは私がやっているよりも安全ですか?私は今持っているこのGUIDマッピングとは対照的にJWTを使用すべきですか?

私が目指しているのは、特定のWebサーバーに接続できるWebファームへのセッションレスの要求です。その要求は、その要求が有効なログインユーザーからのものかどうかを確認するために検証されます。

アドバイスは歓迎します:)

ありがとうございました。

+1

JWTはある番号から別の番号へのマッピングよりも安全ですか?はい。 –

答えて

1

トークンが機密情報なしでデコードできるので、トークン内の機密データをエンコードしないと、JWTトークンを使用することは完全に安全です。

あなたができることは、2つの鍵ペア(プライベート/パブリック)RSA鍵を持つことです。プライベート トークンをコード化し、ログイン成功をクライアントに

それを送信するため、クライアントは多分クッキーにトークンを保存し、HTML5のlocalStorageなど、すべてのリクエストに応じて は、クライアントがバックにリクエストヘッダを経由してトークンを渡しウェブサーバは、公開鍵でトークンを検証する。トークンを復号化し、トークンからGUIDを取得し、要求を続行することができる。

このワークフローは、多数のJWTライブラリがあるため、いくつかのサーバー側言語で機能します。

関連する問題