【问题标题】:Generate the token that can be validated against RSA signing key in azure生成可以在 Azure 中针对 RSA 签名密钥进行验证的令牌
【发布时间】:2020-02-14 00:43:47
【问题描述】:

我正在使用 Azure B2C 自定义策略向用户发送邀请链接,其中包含必要的详细信息的 JWT 令牌。

我需要在 JAVA 中创建 JWT 令牌。使用 jjwt 库,我成功地使用 HS256 创建了一个令牌,但后来​​发现我需要使用 RSA256 对令牌进行签名。 我在 Azure AD B2C 中有 TokenSigningKeyContainer 策略密钥,具有以下字段

{
    "metadata": {
        "tenantID": "<tenant>.onmicrosoft.com",
        "storageKeyId": "B2C_1A_TokenSigningKeyContainer",
        "updatedUtc": "10/16/2019 2:12:11 PM"
    },
    "keys": [
        {
            "kid": "<key_id>",
            "use": "sig",
            "key_ops": [
                "sign"
            ],
            "kty": "RSA",
            "e": "<>",
            "n": "<n_value>"
        }
    ]
}

这似乎是验证生成令牌的公钥,在邀请链接中发送。

我需要知道的是如何获取私钥的必要详细信息,以签署 JWT 令牌?

【问题讨论】:

  • 巧合的是,我正在阅读this article。这似乎是你想要做的。
  • 感谢您指出这一点。但是创建证书后,它遵循 .Net 使用证书签署 JWT 令牌所需的步骤,而我们需要使用 Java 执行此操作。

标签: azure jwt azure-ad-b2c identity-experience-framework jjwt


【解决方案1】:

AzureAD B2C 在上传后不会透露私钥。通过使用api,您可以只访问元数据,通过使用众所周知的元数据发现点,您可以获得公钥。

您需要将证书与加密数据存储(例如 Azure Key Vault)一起存储,并在签署令牌时使用它。根据示例,您也不需要将其上传到 AADB2C。

【讨论】:

    猜你喜欢
    • 2018-09-09
    • 1970-01-01
    • 2017-12-26
    • 2019-06-20
    • 2016-12-02
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    相关资源
    最近更新 更多