生成可以针对天蓝色的RSA签名密钥进行验证的令牌

时间:2019-10-17 07:09:11

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

我正在使用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令牌?

1 个答案:

答案 0 :(得分:0)

AzureAD B2C在上载后不会显示其私钥。通过使用api,您只能访问元数据,通过使用知名的元数据发现点,您可以获得公共密钥。

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