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

眺める: 2|答える: 0

[出典] .NET/C# JWTトークン署名の有効性を検証する2つの方法

[リンクをコピー]
掲載地1分前 | | | |
要件:APIを要求する際には、JWTトークン認証情報が含まれます。バックエンドはトークン署名の有効性を確認し、その後期限切れや発行情報などを確認します。

JSON Web Key Set URI

jwks_uri(JSON Web Key Set URI)は、OAuth 2.0およびOpenID Connect(OIDC)仕様における標準的な構成項目です。

簡単に言えば、認証サーバーが「公開鍵セット」を公開する場所を示す公開URLアドレス(またはエンドポイント)です。標準的なOIDCプロセスでは、認証サーバーはjwks_uriアドレスを含むサービスディスカバリーエンドポイントを提供します。

その人気の比喩

認証サーバーから発行されるJWT(またはIDトークン)が、物理的な公式印章が押された手紙に例えられる場合、次のようになります。

• 秘密鍵:認証サーバーが保管する金庫に施錠され、スタンプ(署名)に使われる「物理的な封印」
• jwks_uri:認証サーバーが公式ウェブサイトに掲載する「印章パターン開示セクション」です。
・第三者アプリケーション(クライアントまたはリソースサーバー):メールを受け取った後、このjwks_uriアドレスから印章デザイン(公開鍵)をダウンロードし、手紙のスタンプと照合して、正式な会社によって発行された手紙であり改ざんされていないことを証明します。

ここで、鍵集合における使用の意味は次の通りです:

「sig」:署名。データの完全性と改ざん防止保護を確保するために署名を検証または生成するために使われます。
「enc」:暗号化。データの暗号化や復号、鍵の管理(鍵暗号化)に用いられ、データの機密性を確保します。

以下に示すように:



JWT情報を解析してください

まず、nugetパッケージをインストールします:System.IdentityModel.Tokens.Jwtはjwtからのクレーム情報を読み取っており、コードは以下の通りです。

出力は以下の通りです:
担い手
1059EC2e-Ffa8-4FF5-BC47-F25D7E37AA5A

JWT署名の有効性を検証してください

まずSystem.IdentityModel.Tokens.Jwtパッケージを参照する必要があります。署名の有効性を検証する方法は2つあります。

解決策1:X.509証明書チェーン

デシリアライズはX.509国際標準に従って行われ、証明書から公開鍵、発行者、有効期限、シリアル番号などの構造化情報を抽出し、X509Certificate2オブジェクトを生成します。最後に、内部の隠されたRSA公開鍵を取得してJWTトークンを検証します。コードは以下の通りです:
以下に示すように:



解決策2:JsonWebKey

セキュリティキーに変換:内部のアルゴリズムタイプを自動的に識別します。次に、トークンの有効性を確認します。コードは以下の通りです:
(終わり)




先の:.NET/C# Roslynに基づくオブジェクトプロパティ、フィールド、コメントを取得します
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com