問題タブ [jose4j]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 暗号化と署名が有効な場合の JWT のパーサー例外
私は JWT を初めて使用し、スタンドアロン コードを通じて JWT API を理解することを学んでいます。以下のコードは、送信側の JWT トークンに署名して暗号化し、受信側で検証されます。
ライブラリ: JOSE 0.4.1
}
このプログラムの実行時に以下の例外を観察します。
署名付き JWT
暗号化された JWT
同じコードが署名と暗号化のために別々に実行されますが、両方を含めると実行されませんでした。
私が間違っていることを理解するのを手伝ってください。
前もって感謝します
java - jose4jのJWTで使用するためにシークレット文字列からHMAC_SHA256キーを作成する方法は?
JWT を作成し、HMAC_SHA256 で署名したいと考えています。そのタスクには、jose4jを使用する必要があります。私は秘密に基づいて鍵を生成しようとしました:
ただし、HMAC_SHA256 を使用した署名には 512 ビットのキーが必要ですが、40 ビットのキーが生成されます。
- 主な問題 - jose4j を使用して HMAC_SHA512 でトークンに署名する方法は?
- 上記の問題を解決する私のアプローチによって作成された問題 - 秘密文字列に基づいて 512 ビット長の秘密鍵を作成する方法は?
jwt - JWKs エンドポイントを使用して JWT トークンを処理する
OpenID Connect ID トークン (id_token) とアクセス トークン (access_token) の 2 つの JWT を受け取ります。OpenID の状況は多かれ少なかれ明確です。JWKS エンドポイントを使用して検証できます: https://smth.com/JWKS。
例のように ( https://bitbucket.org/b_c/jose4j/wiki/JWT%20Examples ):
問題は、アクセス トークンをどのように処理するかです。そこから userId と userDetails を抽出できますが、それを検証する必要もあると思いますか?
ID トークンと同じようにアクセス トークンを検証しようとすると、次のエラーが発生します。
UnresolvableKeyException: ヘッダー {"alg" : "RS256", "kid":"1"} を持つ JWS の適切な検証キーが見つかりません
実際、 のキーはありません"kid" : "1"
。また、この値"1"
はちょっと奇妙に思えますか?
私は何か完全に間違っていますか?
javascript - jose4j によって生成されたトークンで node.js の jsonwebtoken を使用して JWT を検証すると失敗する
node.js で jsonwebtoken を使用して jose4j によって生成された json Web トークンを検証しようとすると、次のエラーが表示されます。
[エラー: PEM_read_bio_PUBKEY が失敗しました]
jose4j コードは、基本的に例からそのまま引用されています。
したがって、トークンは内部的に正常に検証されます。ただし、トークンとキーをコピーすると (たとえば、以下は実行から)、上記のエラーが報告されます。
生成されたトークンを公開鍵で検証できるようにする (jose4j または jsonwebtoken のいずれかで) 不足している魔法はありますか?
ちなみに、トークンを jwt.io に貼り付けると、ヘッダーとペイロードが正しくデコードされますが、同じ公開鍵を使用して署名を検証することはできません。問題は本当に jose4j 側にあると思いますが、よくわかりません。
jwt - Jose4j ライブラリの Java 6 との互換性
JSON Web Tokens を生成して利用するためのライブラリの採用を検討しています。Jose4j は良い選択のようですが、ライブラリの「依存関係」には、「...Jose4j は Java 7 でコンパイルされ、Java 8 でも実行されます...」と記載されており、現在のインストールは Java 6 バージョンで実行されます (より高いバージョンへの移行は私たちの手の届かないところにあるので、私たちの質問は簡単です。
Jose4j を Java 6 と統合する機会はありますか? (いくつかの制限はありますが、特定のライブラリを追加するなどの方法で実現できるわけではありません。)
前もって感謝します
java - jwt トークン認証を使用したユーザーの識別
認証用のRSA署名トークン機能を備えたJWTとともにジャージーレストWebサービスを使用しています。トークンを正常に作成してフロントエンドに送信できました。ここまで達成した後、トークンの検証と、リソースを要求しているユーザーの識別について混乱しています。
ここでいくつか質問があります:
- クレームを確認するために、フロントエンドで受信した jwt トークンをデコードする必要がありますか?
- バックエンドでリソースを要求しているユーザーを特定するにはどうすればよいですか?
SO の投稿のいくつかでは、フロント エンドでトークンをデコードする必要はないと言う人もいるため (このリンクを確認してください)、他のサイトの他の例では、このようなフロント エンドでトークンをデコードする例が示されています。
今、フロントエンドでトークンを実際にデコードするか、そのままにしておくべきかについて、さらに先に進む方法を混乱させていますか? もしそうなら、他の例では、次のようにフロントエンドでデコードを示しています。
ここで使用しているトークンの例:
また、もう 1 つの問題は、nimbus+jose_JWT(RSA 署名) を使用して生成されたトークンです。Angular auth0ライブラリでデコードできません。公開鍵を使用しているからですか?