- 追加された行はこの色です。
- 削除された行はこの色です。
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>暗号・復号化 部品]]
*目次 [#y1c057a3]
#contents
*概要 [#q8a3b3e5]
-HS256、RS256のJWTの生成(署名)・検証が可能。
-一般的なJWTでは、ほぼ、RS256を使用している。
-プラットフォームや言語を跨いだ、トークン生成が可能。
*ライブラリ [#uc84410b]
以下のライブラリを使用する。
-https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Public/Util/JWT.cs
--https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Public/Util/JWT_HS256.cs
--https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Public/Util/JWT_RS256.cs
**クラス [#ve43cfc6]
以下の2つのクラスがある。
***HS256バージョン [#l036356f]
HMACSHA256ハッシュによるJWT生成(署名)・検証
***RS256バージョン [#iad4f2dd]
RSACryptoServiceProvider:SHA256によるJWT生成(署名)・検証
**メソッド [#rffe506e]
***Create [#lc8216c2]
生成(署名)
***Verify [#m145d3c8]
JWT検証
***利用例 [#qe10a550]
汎用認証サイトでは、以下のようにライブラリを使用して、AccessTokenやIDTokenを生成している。
-https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Models/ASPNETIdentity/TokenProviders/AccessTokenFormatJwt.cs
*[[検証ツール>暗号・復号化 部品#q103f322]] [#q103f322]
[[暗号・復号化 部品]]の[[検証ツール>暗号・復号化 部品#q103f322]]に同梱されている。
*外部サイト [#nb4e0b7c]
-以下のサイトで生成したJWTの検証が可能。
--JSON Web Tokens - jwt.io~
https://jwt.io/
-VERIFY SIGNATUREのPUBLIC KEYにはPEM形式の文字列を使用する。
-PEM形式の文字列は、「[[ココ>https://techinfoofmicrosofttech.osscons.jp/index.php?%E8%A8%BC%E6%98%8E%E6%9B%B8#tb47e80e]]」にあるように、~
OpenSSLでEncAndDecUtil_RS256.cerを処理して取得する。