マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

JWK : JSON Web Key

JSON Web Key (JWK)

JWK Set

詳細

パラメタ(JWK)

一覧

#キー説明
1kty (必須)key typeパラメタ。大文字・小文字を区別する。
RSA や EC といった暗号アルゴリズムファミリを示す。
2alg (任意)algorithmパラメタ。大文字・小文字を区別するASCII 文字列。
鍵で利用されるアルゴリズムを示す。
3kid (任意)Key IDパラメタ。大文字・小文字を区別するが、値の構造は未定義。
鍵のロールオーバー時に JWK Set の中から必要な鍵を特定するなど、特定の鍵を識別するために用いられる。
JWSJWE とともに利用する場合, Header に含まれる kid 値と一致させる。
4use (任意)public key useパラメタ。大文字・小文字を区別する。
当該公開鍵の用途を示す。暗号化目的 (sig) or 署名検証目的 (enc) or その他
5key_ops (任意)key operationsパラメタ。大文字・小文字を区別する。
公開鍵, 暗号鍵, 共通鍵のいずれのユースケースを想定した鍵のオペレーションを示す。
6x5u (任意)X.509 URLパラメタ。X.509 公開鍵証明書や証明書チェーンといったリソースを指し示す URI。
リソースは、PEM エンコード形式で、チェーンの先頭の証明書と一致させ、HTTPSのGETで取得する。
7x5c (任意)X.509 certificate chainパラメタ。PKIX 証明書(base64 エンコードされた DER 形式)のJSON 配列。
配列の先頭は、チェーンの先頭のPKIX 証明書で、その後に証明書を続けることもできる。
8x5t (任意)X.509 Certificate SHA-1 Thumbprintパラメタ。
DER エンコードされた X.509 証明書 の SHA-1 thumbprint (a.k.a. digest) の base64url エンコード値。
9x5t#S256 (任意)X.509 Certificate SHA-256 Thumbprintパラメタ。
DER エンコードされた X.509 証明書 の SHA-256 thumbprint (a.k.a. digest) の base64url エンコード値。

kty と kid

alg

JWSJWE用のalgを抜粋した。詳しくはJWAのRFCを参照。

use と key_ops

パラメタ(JWA)

パラメタ(JWK)に含まれないパラメタは、
JWAのRFCで、アルゴリズム毎に定義されているパラメタになる。

Parameters for Symmetric Keys

kty=octの場合(合わせて、algも必要)、
kにbase64urlエンコードされたSymmetric Keysを保存する。

Parameters for RSA Keys

サンプル

キー値の改行は掲載上の都合による。

JWK

RSA

Elliptic Curve DSA

P-256 Elliptic Curve の Elliptic Curve [DSS] 鍵

{
  "kty":"EC",
  "crv":"P-256",
  "x":"f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU",
  "y":"x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0",
  "kid":"Public key used in JWS spec Appendix A.3 example"
}

JWK Set

Public Keys

Private Keys

Symmetric Keys

自作ライブラリ

署名・暗号化アルゴリズム

ココの署名・暗号化アルゴリズムを使用すると良い。

RSAParameters

X.509証明書 ---> RSAParameters <---> JWK変換を考える。

.NET

.NETでは以下のようにできる模様。

他の言語

同じようなことは他の言語でも調査されている。

参考


Tags: :認証基盤, :クレームベース認証, :暗号化


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS