Google は現在、https://www.googleapis.com/oauth2/v2/certsで次の証明書の値を公開しています。
{
"keys": [
{
"kty": "RSA",
"alg": "RS256",
"use": "sig",
"kid": "90adc60c0f9f503265a5ebc2c404c88e59882083",
"n": "u_EOLEKRMNuTA_UPh9R-LTQkF1TNGE6XRVbgvh081A5VtKNFe8b2CmoGvgrm_ochjX0robr8LwpOUSHO779yJANgvwuATHJ4SKYHzN2Gr0yBsC7MyL9CI_eXik4RGiNlEU6mgoy7GGnLtY5-A6OPo-I-4HEttP81LJrmSYh6Y2k=",
"e": "AQAB"
},
{
"kty": "RSA",
"alg": "RS256",
"use": "sig",
"kid": "5886590f72b8e40668c55fa366c19efb2a22d635",
"n": "x9mePRk3StM-Tg32S_E8OyBYD8uIHhPPa6U8jkHbpnRf2jEImk1ndIwIoJQCrHl1IsKpY1j81fyQKul0u1Frvb-LFGFVY3L7zSR4hnwzuU_05JtKZRfK-87Kj8JVMJbt34SKRmUitPH4QA23b6g-ORUMYjqWgNWufV6OPy8GYNE=",
"e": "AQAB"
}
]
}
oicとjwkestを使用して Google API にアクセスしようとすると、エラーが発生します
DeSerializationNotPossible: Not base64url encoded
この問題はn
、両方のキーのパラメーターが=
文字で終わるために発生します。IIUC では、 JSON Web アルゴリズム ドラフトに従って Base64URL エンコードする必要があり、 JSON Web 署名ドラフト=
に従って、Base64URL は文字を削除します。
このエラーは私が使用している Python ライブラリにあるのでしょうか、それとも実際に Google が仕様に準拠していないのでしょうか? 後者の場合: どこに報告できますか?