この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 58862|答える: 3

[出典] JWT(JSONウェブトークン)の理解について学びましょう。

[リンクをコピー]
掲載地 2018/05/21 15:56:52 | | | |
JWTの紹介:JSON Web Token(JWT)はオープンスタンダード(RFC 7519)であり、JSONオブジェクト内の当事者間で情報を安全に転送するためのコンパクトかつ自己完結型の方法を定義しています。 この情報はデジタル署名を通じて検証され、信頼されます。 JWTは秘密鍵(HMACアルゴリズムを用いる)またはRSAの公開鍵/秘密鍵ペアを使って署名できます。


JSONウェブトークンが役立ついくつかのシナリオ:

本人確認:これがJWTを使う最も一般的なケースです。 ユーザーがログインすると、その後の各リクエストにはJWTが含まれ、そのトークンで許可されたルート、サービス、リソースへのアクセスが可能になります。 シングルサインオンは、低コストで異なるドメイン間で容易に利用できるため、現在広く使われている機能です。

情報交換:JSONウェブトークンは、当事者間で安全に情報を転送する優れた方法です。 JWTは署名可能で、例えば公開鍵/秘密鍵ペアを使うことで、送信者が本人であることを確実に確認できます。 さらに、署名はヘッダーとペイロードを使って計算されるため、内容が改ざんされていないことも確認できます。


公式ウェブサイト:ハイパーリンクのログインが見えます。

JWT情報をオンラインで解析ハイパーリンクのログインが見えます。



JWTパラメータをオンラインで解析  ハイパーリンクのログインが見えます。

以下のJWTの理解は間違っています。アドバイスをください

まず最初に、このツールはMVCのウェブサイトで使うことは推奨されていません。WebAPIで使えます。このツールの位置付けはAPIであり、代替サイトのセッションではありません!

asp.net webapiの使い方チュートリアル:ハイパーリンクのログインが見えます。ホイールを作り直すつもりはありません。この記事の内容を見るのは問題ありません。

JWTの構成

JWTはヘッダー、ペイロード、シグネチャの3つの部分で構成されており、その間にドット記号が挟まれてxx.yy.zzの形を形成します。


署名済みトークンの場合、改ざん防止があっても誰でもこの情報を読むことができることに注意してください。 暗号化されていない限り、JWTの有効なコンテンツやヘッダー要素に機密情報を配置しないでください。

例えば:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

{
alg: "HS256",
typ: "JWT"
}.
{
sub: "1234567890",
name: "John Doe",
iat: 1516239022
}.
[署名]

簡単に言えば、誰でもこのトークンを復号できますが、情報の真正性は検証できず、このトークンを生成したサーバーのみが真偽を検証できるため、機密情報は保存しないでください。


ここに問題があります。つまり、ユーザーがパスワードを変更したりログインが禁止された場合、JWTはどのようにしてトークンの有効性を解決できるのでしょうか?

私自身のアイデアは、Payloadセクションにguidのような文字列を追加し、キャッシュに存在してユーザーの身元を確認する際に、jwtだけでなく、jwt内のPayload情報も検証することで、キャッシュを制御することで妥当性を制御することです。







先の:C#オープンソースフレームワーク(再版)
次に:あなたはセーフアップデートモードを使っていて、更新を試みました
掲載地 2018/08/22 14:42:27 |
iss: jwt签发者
sub: jwt所面向的用户
aud: 接收jwt的一方
exp: jwt的过期时间,这个过期时间必须要大于签发时间
nbf: 定义在什么时间之前,该jwt都是不可用的.
iat: jwt的签发时间
jti: jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击。


これらは必須ではありませんが、有用で相互運用可能な宣言のセットを提供するために推奨される事前定義された宣言の集合です。 その中には、ISS(発行者)、経験値(有効期限)、サブ(テーマ)、オーディエンス(オーディエンス)などがあります。

https://jwt.io/introduction/


 地主| 掲載地 2021/04/27 10:59:48 |
ヘッダー(base64の後)
ペイロード(ベース64以降)
秘密

base64文字列は4の倍数未満で、= を埋める必要があります。
 地主| 掲載地 2022/01/21 17:09:52 |
「IAT」=> 1356999524、#token发布时间
「exp」=> 1556999524、#token过期时间
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com