「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る(JWT)>JWT]]
--[[JWS]]
--[[JWE]]

* 目次 [#d18835c6]
#contents

*概要 [#jd402cd5]
以下の内容で最終確認済み。~
https://tools.ietf.org/html/rfc7517

-JWK : JSON Web Keyは、

--[[JWS]]や[[JWE]]などで利用する公開鍵を JSON 形式で表現するための仕様、~
[[FIDO]]2.0 の [[Web Authentication API]] が生成する公開鍵なども、JWK で表現されている。

--複数の JWK のセットである JWK Set JSON データ構造も定義する。~
OpenID Connect Discovery をサポートしている IdP は公開鍵を JWK Set 形式で公開していることが多い。

-暗号アルゴリズムおよびその識別子は、[[JSON Web Algorithms (JWA) のRFC>JWA]]に記載

**JSON Web Key (JWK) [#d905d797]
-暗号鍵を表現する JSON オブジェクト。
-このオブジェクトの各要素は、鍵の各プロパティを表現する。

**JWK Set [#j5494828]
-1セットの JWK の集合を表現する JSON オブジェクト。
-この JSON オブジェクトは必ず keys という要素を含み、その要素は JWK の配列となる。

*詳細 [#p1b5801b]

**パラメタ(JWK) [#za196dbc]

***一覧 [#wc4698a3]

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

***alg [#z652c67f]
[[JWS]]・[[JWE]]用のalgは[[JWAのRFC>JWA]]を参照。

***use と key_ops [#e496fbe5]
-use と key_ops は同時に利用すべきではない。
-key_ops値
|#|値|説明|h
|1|sign|compute digital signature or MAC|
|2|verify|verify digital signature or MAC|
|3|encrypt|encrypt content|
|4|decrypt|decrypt content and validate decryption, if applicable|
|5|wrapKey|encrypt key|
|6|unwrapKey|decrypt key and validate decryption, if applicable|
|7|deriveKey|derive key|
|8|deriveBits|derive bits not to be used as a key|

***kty と kid [#uee91d10]
異なる鍵が同じ kid 値を持つケースがある。
>ktyは異なるが, アプリケーションからはそれらが~
互いに等価な代替手段であると考えられている場合。

**パラメタ(JWA) [#zb1db057]
[[パラメタ(JWK)>#za196dbc]]に含まれないパラメタは、~
[[JWAのRFC>#d88bad0f]]で、アルゴリズム毎に定義されているパラメタになる。

-RFC 7518 - JSON Web Algorithms (JWA) > 6.  Cryptographic Algorithms for Keys~
https://tools.ietf.org/html/rfc7518#section-6

***Parameters for Symmetric Keys [#r5be7fb8]
"kty"=octの場合(、合わせて、"alg"も必要)、~
"k"にbase64urlエンコードされたSymmetric Keysを保存する。

-[[サンプル - JWK Set - Symmetric Keys>#i6436458]]

***Parameters for RSA Keys [#abd89534]
-Parameters for RSA Public Keys
|#|値|説明|h
|1|n (必須)|Base64urlUIntでエンコードされたRSA公開鍵のモジュラス値|
|2|e (必須)|Base64urlUIntでエンコードされたRSA公開鍵の指数値(65537="AQAB")|

-Parameters for RSA Private Keys
|#|値|説明|h
|1|d (必須)|Base64urlUIntでエンコードされた、RSA秘密鍵のプライベート指数値|
|2|p (任意)|Base64urlUIntでエンコードされた、第1の素因数値|
|3|q (任意)|Base64urlUIntでエンコードされた、第2の素因数値|
|4|dp (任意)|Base64urlUIntでエンコードされた、第1のCRT指数値|
|5|dq (任意)|Base64urlUIntでエンコードされた、第2のCRT指数値|
|6|qi (任意)|Base64urlUIntでエンコードされた、第1(、第2)のCRT係数値。|
|7|oth (任意)|Base64urlUIntでエンコードされた、3番目以降の素数に関する情報の配列|

--oth~
詳しくは、RFC 3447も参照。
|#|値|説明|h
|1|r|Base64urlUIntでエンコードされた、3番目以降の素因数値|
|2|d|Base64urlUIntでエンコードされた、3番目以降のCRT指数値|
|3|t|Base64urlUIntでエンコードされた、3番目以降のCRT係数値|

*サンプル [#w3995313]
キー値の改行は掲載上の都合による。

**JWK [#q185a1f4]

***RSA [#md9069ea]
-RS256で使用するRSA-256~
[[FIDO]]2.0 の [[Web Authentication API]] が生成する公開鍵
 {
    "alg": "RS256", 
    "e": "AQAB", 
    "ext": false, 
    "kty": "RSA", 
    "n": "・・・"
 }

-"x5c" (X.509 Certificate Chain)~
RSA 公開鍵と x5c に指定された X.509 証明書の両者で表現される RSA 署名鍵の JWK 表現
 {
   "kty":"RSA",
   "use":"sig",
   "kid":"1b94c",
   "n":"vrjOfz9Ccdgx5nQudyhdoR17V-IubWMeOZCwX_jj0hgAsz2J_pqYW08
   PLbK_PdiVGKPrqzmDIsLI7sA25VEnHU1uCLNwBuUiCO11_-7dYbsr4iJmG0Q
   u2j8DsVyT1azpJC_NG84Ty5KKthuCaPod7iI7w0LK9orSMhBEwwZDCxTWq4a
   YWAchc8t-emd9qOvWtVMDC2BXksRngh6X5bUYLy6AyHKvj-nUy1wgzjYQDwH
   MTplCoLtU-o-8SNnZ1tmRoGE9uJkBLdh5gFENabWnU5m1ZqZPdwS-qo-meMv
   VfJb6jJVWRpl2SUtCnYG2C32qvbWbjZ_jBPD5eunqsIo1vQ",
   "e":"AQAB",
   "x5c":
    ["MIIDQjCCAiqgAwIBAgIGATz/FuLiMA0GCSqGSIb3DQEBBQUAMGIxCzAJB
    gNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGRGVudmVyMRwwGgYD
    VQQKExNQaW5nIElkZW50aXR5IENvcnAuMRcwFQYDVQQDEw5CcmlhbiBDYW1
    wYmVsbDAeFw0xMzAyMjEyMzI5MTVaFw0xODA4MTQyMjI5MTVaMGIxCzAJBg
    NVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGRGVudmVyMRwwGgYDV
    QQKExNQaW5nIElkZW50aXR5IENvcnAuMRcwFQYDVQQDEw5CcmlhbiBDYW1w
    YmVsbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL64zn8/QnH
    YMeZ0LncoXaEde1fiLm1jHjmQsF/449IYALM9if6amFtPDy2yvz3YlRij66
    s5gyLCyO7ANuVRJx1NbgizcAblIgjtdf/u3WG7K+IiZhtELto/A7Fck9Ws6
    SQvzRvOE8uSirYbgmj6He4iO8NCyvaK0jIQRMMGQwsU1quGmFgHIXPLfnpn
    fajr1rVTAwtgV5LEZ4Iel+W1GC8ugMhyr4/p1MtcIM42EA8BzE6ZQqC7VPq
    PvEjZ2dbZkaBhPbiZAS3YeYBRDWm1p1OZtWamT3cEvqqPpnjL1XyW+oyVVk
    aZdklLQp2Btgt9qr21m42f4wTw+Xrp6rCKNb0CAwEAATANBgkqhkiG9w0BA
    QUFAAOCAQEAh8zGlfSlcI0o3rYDPBB07aXNswb4ECNIKG0CETTUxmXl9KUL
    +9gGlqCz5iWLOgWsnrcKcY0vXPG9J1r9AqBNTqNgHq2G03X09266X5CpOe1
    zFo+Owb1zxtp3PehFdfQJ610CDLEaS9V9Rqp17hCyybEpOGVwe8fnk+fbEL
    2Bo3UPGrpsHzUoaGpDftmWssZkhpBJKVMJyf/RuP2SmmaIzmnw9JiSlYhzo
    4tpzd5rFXhjRbg4zW9C+2qok+2+qDM1iJ684gPHMIY8aLWrdgQTxkumGmTq
    gawR+N5MDtdPTEQ0XfIBc2cJEUyMTY5MPvACWpkA6SdS4xSvdXK3IVfOWA=="]
  }

-Plaintext RSA Private Key~
認証付き暗号化オペレーションのための平文入力 (プレーンテキスト)
 {
   "kty":"RSA",
   "kid":"juliet@capulet.lit",
   "use":"enc",
   "n":"t6Q8PWSi1dkJj9hTP8hNYFlvadM7DflW9mWepOJhJ66w7nyoK1gPNqFMSQRy
        O125Gp-TEkodhWr0iujjHVx7BcV0llS4w5ACGgPrcAd6ZcSR0-Iqom-QFcNP
        8Sjg086MwoqQU_LYywlAGZ21WSdS_PERyGFiNnj3QQlO8Yns5jCtLCRwLHL0
        Pb1fEv45AuRIuUfVcPySBWYnDyGxvjYGDSM-AqWS9zIQ2ZilgT-GqUmipg0X
        OC0Cc20rgLe2ymLHjpHciCKVAbY5-L32-lSeZO-Os6U15_aXrk9Gw8cPUaX1
        _I8sLGuSiVdt3C_Fn2PZ3Z8i744FPFGGcG1qs2Wz-Q",
   "e":"AQAB",
   "d":"GRtbIQmhOZtyszfgKdg4u_N-R_mZGU_9k7JQ_jn1DnfTuMdSNprTeaSTyWfS
        NkuaAwnOEbIQVy1IQbWVV25NY3ybc_IhUJtfri7bAXYEReWaCl3hdlPKXy9U
        vqPYGR0kIXTQRqns-dVJ7jahlI7LyckrpTmrM8dWBo4_PMaenNnPiQgO0xnu
        ToxutRZJfJvG4Ox4ka3GORQd9CsCZ2vsUDmsXOfUENOyMqADC6p1M3h33tsu
        rY15k9qMSpG9OX_IJAXmxzAh_tWiZOwk2K4yxH9tS3Lq1yX8C1EWmeRDkK2a
        hecG85-oLKQt5VEpWHKmjOi_gJSdSgqcN96X52esAQ",
   "p":"2rnSOV4hKSN8sS4CgcQHFbs08XboFDqKum3sc4h3GRxrTmQdl1ZK9uw-PIHf
        QP0FkxXVrx-WE-ZEbrqivH_2iCLUS7wAl6XvARt1KkIaUxPPSYB9yk31s0Q8
        UK96E3_OrADAYtAJs-M3JxCLfNgqh56HDnETTQhH3rCT5T3yJws",
   "q":"1u_RiFDP7LBYh3N4GXLT9OpSKYP0uQZyiaZwBtOCBNJgQxaj10RWjsZu0c6I
        edis4S7B_coSKB0Kj9PaPaBzg-IySRvvcQuPamQu66riMhjVtG6TlV8CLCYK
        rYl52ziqK0E_ym2QnkwsUX7eYTB7LbAHRK9GqocDE5B0f808I4s",
   "dp":"KkMTWqBUefVwZ2_Dbj1pPQqyHSHjj90L5x_MOzqYAJMcLMZtbUtwKqvVDq3
        tbEo3ZIcohbDtt6SbfmWzggabpQxNxuBpoOOf_a_HgMXK_lhqigI4y_kqS1w
        Y52IwjUn5rgRrJ-yYo1h41KR-vz2pYhEAeYrhttWtxVqLCRViD6c",
   "dq":"AvfS0-gRxvn0bwJoMSnFxYcK1WnuEjQFluMGfwGitQBWtfZ1Er7t1xDkbN9
        GQTB9yqpDoYaN06H7CFtrkxhJIBQaj6nkF5KKS3TQtQ5qCzkOkmxIe3KRbBy
        mXxkb5qwUpX5ELD5xFc6FeiafWYY63TmmEAu_lRFCOJ3xDea-ots",
   "qi":"lSQi-w9CpyUReMErP1RsBLk7wNtOvs5EQpPqmuMvqW57NBUczScEoPwmUqq
        abu9V0-Py4dQ57_bapoKRu1R90bvuFnU63SHWEFglZQvJDMeAvmj4sm-Fp0o
        Yu_neotgQ0hzbI5gry7ajdYy9-2lNx_76aBZoOUu9HCJ-UsfSOI8"
 }

***Elliptic Curve DSA [#p243fb77]
P-256 Elliptic Curve の Elliptic Curve [DSS] 鍵
-x 座標と y 座標はそれぞれ base64url エンコードされている。
-またこの鍵自身の識別子 (kid) も含まれる。

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

**JWK Set [#j8b14991]

***Public Keys [#od5799a4]
-2つの公開鍵
--1つ目は Elliptic Curve
---鍵が暗号化のために使用されていることを記している。
---鍵のマッチングの目的のために key ID を提供する。
--2つ目は RSA
---RS256 アルゴリズムで使用されていることを記している。
---鍵のマッチングの目的のために key ID を提供する。
 {
   "keys":
     [
       {
         "kty":"EC",
         "crv":"P-256",
         "x":"MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4",
         "y":"4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM",
         "use":"enc",
         "kid":"1"
       },
       {
         "kty":"RSA",
         "n":"0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx
             4cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMs
             tn64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2
             QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbI
             SD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqb
             w0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw",
         "e":"AQAB",
         "alg":"RS256",
         "kid":"2011-04-29"
       }
     ]
 }

***Private Keys [#ib0897f5]
-公開鍵と秘密鍵の値
--1つ目は Elliptic Curve
--2つ目は RSA
 {
   "keys":
     [
       {
         "kty":"EC",
         "crv":"P-256",
         "x":"MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4",
         "y":"4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM",
         "d":"870MB6gfuTJ4HtUnUvYMyJpr5eUZNP4Bk43bVdj3eAE",
         "use":"enc",
         "kid":"1"
       },
       {
         "kty":"RSA",
         "n":"0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx4
             cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMst
             n64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2Q
             vzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbIS
             D08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqbw
             0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw",
         "e":"AQAB",
         "d":"X4cTteJY_gn4FYPsXB8rdXix5vwsg1FLN5E3EaG6RJoVH-HLLKD9
             M7dx5oo7GURknchnrRweUkC7hT5fJLM0WbFAKNLWY2vv7B6NqXSzUvxT0_YSfqij
             wp3RTzlBaCxWp4doFk5N2o8Gy_nHNKroADIkJ46pRUohsXywbReAdYaMwFs9tv8d
             _cPVY3i07a3t8MN6TNwm0dSawm9v47UiCl3Sk5ZiG7xojPLu4sbg1U2jx4IBTNBz
             nbJSzFHK66jT8bgkuqsk0GjskDJk19Z4qwjwbsnn4j2WBii3RL-Us2lGVkY8fkFz
             me1z0HbIkfz0Y6mqnOYtqc0X4jfcKoAC8Q",
         "p":"83i-7IvMGXoMXCskv73TKr8637FiO7Z27zv8oj6pbWUQyLPQBQxtPV
             nwD20R-60eTDmD2ujnMt5PoqMrm8RfmNhVWDtjjMmCMjOpSXicFHj7XOuVIYQyqV
             WlWEh6dN36GVZYk93N8Bc9vY41xy8B9RzzOGVQzXvNEvn7O0nVbfs",
         "q":"3dfOR9cuYq-0S-mkFLzgItgMEfFzB2q3hWehMuG0oCuqnb3vobLyum
             qjVZQO1dIrdwgTnCdpYzBcOfW5r370AFXjiWft_NGEiovonizhKpo9VVS78TzFgx
             kIdrecRezsZ-1kYd_s1qDbxtkDEgfAITAG9LUnADun4vIcb6yelxk",
         "dp":"G4sPXkc6Ya9y8oJW9_ILj4xuppu0lzi_H7VTkS8xj5SdX3coE0oim
             YwxIi2emTAue0UOa5dpgFGyBJ4c8tQ2VF402XRugKDTP8akYhFo5tAA77Qe_Nmtu
             YZc3C3m3I24G2GvR5sSDxUyAN2zq8Lfn9EUms6rY3Ob8YeiKkTiBj0",
         "dq":"s9lAH9fggBsoFR8Oac2R_E2gw282rT2kGOAhvIllETE1efrA6huUU
             vMfBcMpn8lqeW6vzznYY5SSQF7pMdC_agI3nG8Ibp1BUb0JUiraRNqUfLhcQb_d9
             GF4Dh7e74WbRsobRonujTYN1xCaP6TO61jvWrX-L18txXw494Q_cgk",
         "qi":"GyM_p6JrXySiz1toFgKbWV-JdI3jQ4ypu9rbMWx3rQJBfmt0FoYzg
             UIZEVFEcOqwemRN81zoDAaa-Bk0KWNGDjJHZDdDmFhW3AN7lI-puxk_mHZGJ11rx
             yR8O55XLSe3SPmRfKwZI6yU24ZxvQKFYItdldUKGzO6Ia6zTKhAVRU",
         "alg":"RS256",
         "kid":"2011-04-29"
       }
     ]
   }

***Symmetric Keys [#i6436458]
-2つの対象鍵
--1つ目は AES Key Wrap
--2つ目は HMAC key
 {
   "keys":
     [
       {
         "kty":"oct",
         "alg":"A128KW",
         "k":"GawgguFyGrWKav7AX4VKUg"
       },
       {
         "kty":"oct",
         "k":"AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75
             aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow",
         "kid":"HMAC key used in JWS spec Appendix A.1 example"}
     ]
 }

*自作ライブラリ [#w4acaf5a]
**署名・暗号化アルゴリズム [#p4042a8b]
[[ココ>.NETの署名・暗号化アルゴリズム]]の署名・暗号化アルゴリズムを使用すると良い。

**RSAParameters [#r7acde95]
X.509証明書 ---> RSAParameters <---> JWK変換を考える。

***.NET [#o2fe6141]
.NETでは以下のようにできる模様。

-c# - Porting X509Certificate and CryptoConfig from .Net 4.5 to .Net Core - Stack Overflow~
https://stackoverflow.com/questions/43360576/porting-x509certificate-and-cryptoconfig-from-net-4-5-to-net-core

-ModulusとExponentを指定してRSAで暗号化/復号する(.NET) - misc.log~
http://backyard.hatenablog.com/entry/20161219/1482146423

-msdn.microsoft.com

--X509Certificate2 クラス (System.Security.Cryptography.X509Certificates)~
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.x509certificates.x509certificate2.aspx
---RSACertificateExtensions.GetRSAPublicKey メソッド~
https://msdn.microsoft.com/ja-https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.x509certificates.rsacertificateextensions.getrsapublickey.aspx

--RSACryptoServiceProvider クラス (System.Security.Cryptography)~
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.rsacryptoserviceprovider.aspx
---.ExportParameters Method~
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.rsacryptoserviceprovider.exportparameters.aspx
---.ImportParameters Method~
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.rsacryptoserviceprovider.importparameters.aspx

--RSAParameters 構造体~
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.rsaparameters.aspx

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

-How to parse a X.509 certificate and extract its public key | Connect2id~
https://connect2id.com/products/nimbus-jose-jwt/examples/parse-x509-certificate-extract-keys

-RubyでGoogleのJWKにあるmodulusとexponentからOpenSSLを使って公開鍵を生成する - Qiita~
https://qiita.com/trysmr/items/e8d4225ff6a603e9e21a

*参考 [#d88bad0f]
-RFC 7517 - JSON Web Key (JWK)~
https://tools.ietf.org/html/rfc7517

-OAuth Revocation と JWK を翻訳しました - OAuth.jp~
http://oauth.jp/blog/2016/07/01/jwk-and-oauth-revocation-translated/
--JSON Web Key (JWK)~
http://openid-foundation-japan.github.io/rfc7517.ja.html
--JSON Web Key (JWK) Thumbprint~
http://openid-foundation-japan.github.io/rfc7638.ja.html

-WebCrypto APIでJSON Web Tokenの検証を試してみる - Qiita~
http://qiita.com/tomoyukilabs/items/faa66805a440f4b30cfb
--Google OpenID Connectの場合、署名を検証するために必要となるJWKがWebサイト上で公開されている。
--一定時間ごとに更新されるため、署名の検証時にはその都度JWKの内容をWebサイトから取得する。~
https://www.googleapis.com/oauth2/v2/certs

**[[JWA - JWK用>JWA#y901bfc0]] [#xd6c0477]

----
Tags: [[:認証基盤]], [[:クレームベース認証]], [[:暗号化]]
Tags: [[:IT国際標準]], [[:認証基盤]], [[:クレームベース認証]], [[:暗号化]]


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