【问题标题】:Validate an Azure idToken in Node.js在 Node.js 中验证 Azure idToken
【发布时间】:2019-03-09 17:44:29
【问题描述】:

我在验证 v2 端点颁发的 Azure idtoken 的令牌签名时遇到问题。

我已经阅读了文档(https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-id-and-access-tokens#validating-tokens),也有一些示例代码,但这里指的是 TS/JS 以外的语言。

目前我的代码是

import {
  decode,
  verify
} from 'jsonwebtoken';

const token = 'myRand0mIdtoken...meh';
const key = 'key from -->'; // https://login.microsoftonline.com/common/discovery/v2.0/keys
console.log(
  decode(token), //works fine!
  verify(token, key) //JsonWebTokenError: invalid algorithm
);

我该怎么办?解码有效,但验证无效。

站点https://login.microsoftonline.com/common/discovery/v2.0/keys 指向一个包含“keys”数组的 JSON 文档。这包含多个关键对象。其中,我使用了“kid”值与 idToken 标题中的“kid”值匹配的元素。

在这个元素中有两个字段,x5t 和 x5c,看起来像公钥。我都试过了,但没有运气。

亲切的问候

【问题讨论】:

    标签: node.js jwt azure-active-directory


    【解决方案1】:

    找到了解决办法。 https://nicksnettravels.builttoroam.com/post/2017/01/24/Verifying-Azure-Active-Directory-JWT-Tokens.aspx

    看来,我刚刚忘记了包含公钥的开始行和结束行。工作格式为:

    -----开始证书-----

    JSON 文档中 x5c 字段的内容

    -----结束证书-----

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-30
      • 1970-01-01
      • 2015-09-05
      • 2018-11-10
      • 2018-05-19
      • 2019-09-11
      • 1970-01-01
      相关资源
      最近更新 更多