web-dev-qa-db-ja.com

シークレットなしでJWTトークンをデコードする

JWTで秘密鍵を使用してトークンを作成しましたが、 http://kjur.github.io/jsjws/tool_jwt.html でデコードしようとすると、トークンをデコードできることがわかりました。キーが与えられていない。では、JWTトークンが単なる署名であるというのは正しいですか?キーなしでトークンがデコードされないようにするにはどうすればよいですか?

12
user440446

JWTで公開鍵/秘密鍵を使用する方法は2つあります。署名と暗号化です。

署名に秘密鍵を使用すると、受信者はJWTの送信者とメッセージの整合性を識別できますが、その内容を他の人から隠すことはできません(機密性)。 JWTに署名し、JSON Web署名(JWS)オブジェクトを生成するために使用されるのは、送信者の秘密鍵であることに注意してください。どうやらそれはあなたが見ているJWTに当てはまります。

暗号化に公開鍵を使用する場合、意図した受信者以外の誰からもコンテンツを隠すために使用できます。結果はJSONWeb暗号化オブジェクトです。 JWTの暗号化に使用されるのは受信者の公開鍵であることに注意してください。どうやらそれはあなたが探しているものです。

参照: http://jose.readthedocs.org/en/latest/

9
Hans Z.