【问题标题】:Google OpenID Connect Public KeysGoogle OpenID Connect 公钥
【发布时间】:2015-09-26 17:59:08
【问题描述】:

https://www.googleapis.com/oauth2/v3/certs 的回复究竟是什么意思?我正在尝试使用node-jsonwebtokens 验证通过 Google OpenID Connect 流程获得的 JWT,并且用于验证签名的密钥必须是这两者之一。 node-jsonwebtokenssource code however suggests 等待的密钥格式与响应中的可用密钥格式不同:

[
  {
   'kty': 'RSA',
   'alg': 'RS256',
   'use': 'sig',
   'kid': 'e53139984bd36d2c230552441608cc0b5179487a',
   'n': 'w5F_3au2fyRLapW4K1g0zT6hjF-co8hjHJWniH3aBOKP45xuSRYXnPrpBHkXM6jFkVHs2pCFAOg6o0tl65iRCcf3hOAI6VOIXjMCJqxNap0-j_lJ6Bc6TBKgX3XD96iEI92iaxn_UIVZ_SpPrbPVyRmH0P7B6oDkwFpApviJRtQzv1F6uyh9W_sNnEZrCZDcs5lL5Xa_44-EkhVNz8yGZmAz9d04htNU7xElmXKs8fRdospyv380WeaWFoNJpc-3ojgRus26jvPy8Oc-d4M5yqs9mI72-1G0zbGVFI_PfxZRL8YdFAIZLg44zGzL2M7pFmagJ7Aj46LUb3p_n9V1NQ',
   'e': 'AQAB'
  },
  {
   'kty': 'RSA',
   'alg': 'RS256',
   'use': 'sig',
   'kid': 'bc8a31927af20860418f6b2231bbfd7ebcc04665',
   'n': 'ucGr4fFCJYGVUwHYWAtBNclebyhMjALOTUmmAXdMrCIOgT8TxBEn5oXCrszWX7RoC37nFqc1GlMorfII19qMwHdC_iskju3Rh-AuHr29zkDpYIuh4lRW0xJ0Xyo2Iw4PlV9qgqPJLfkmE5V-sr5RxZNe0T1jyYaOGIJ5nF3WbDkgYW4GNHXhv-5tOwWLThJRtH_n6wtYqsBwqAdVX-EVbkyZvYeOzbiNiop7bDM5Td6ER1oCBC4NZjvjdmnOh8-_x6vB449jL5IRAOIIv8NW9dLtQd2DescZOw46HZjWO-zwyhjQeYY87R93yM9yivJdfrjQxydgEs8Ckh03NDATmQ',
   'e': 'AQAB'
  }
]

它没有经典的BEGIN PUBLIC KEY 块,它可能被编码了吗?是否需要额外的步骤?

【问题讨论】:

标签: node.js google-oauth jwt google-openid openid-connect


【解决方案1】:

该代码确实处理 PEM 格式的证书/密钥,而不是由 Google 在您提供的 URL 上发布的 JSON Web Key (JWK) 格式的密钥材料。

但是,这里有一个不同的 URL 以 PEM 格式提供(相同的)密钥材料:https://www.googleapis.com/oauth2/v1/certs。您可以在 node-jsonwebtoken 中使用该表示。

【讨论】:

  • 您知道为什么在 v3 版本的端点中 PEM 格式被替换为 JWK 吗?我们可以使用 openssl 工具的 PEM 证书,但我们必须先转换为 PEM 的 JWK 证书,这并不容易做到
猜你喜欢
  • 2018-07-13
  • 1970-01-01
  • 2018-09-19
  • 2015-02-09
  • 2018-11-11
  • 1970-01-01
  • 2017-05-18
  • 2015-02-09
  • 2015-06-27
相关资源
最近更新 更多