【发布时间】:2020-01-17 11:48:18
【问题描述】:
验证 Azure AD 生成的令牌时出现错误。这是当前的设置:
我有一个可以粘贴到https://jwt.io 的令牌,我可以在右侧面板中看到正确的声明。我假设令牌的格式正确。我还可以在标题中看到
kid = piVlloQDSMKxh1m2ygqGSVdgFpA和alg: RS256。我将算法类型正确设置为 RS256 以进行验证。-
我去https://login.microsoftonline.com/common/discovery/keys寻找公钥,找到了同样的
kid = piVlloQDSMKxh1m2ygqGSVdgFpA。所以我复制了对应的公钥(x5c字段中的字符串)并将其包装成正确的字符串以使其成为 PKCS#8。兼容:-----开始证书----- MIIDBTCCAe2gAwIBAgIQMCJcgWf4l5xPpeoEwB7DKDANBgkqhkiG9w0BAQsFADAtMSswKQYDVQQDEyJhY2NvdW50cy5hY2Nlc3Njb250cm9sLndpbmRvd3MubmV0MB4XDTE5MTExNTAwMDAwMFoXDTI0MTExNDAwMDAwMFowLTErMCkGA1UEAxMiYWNjb3VudHMuYWNjZXNzY29udHJvbC53aW5kb3dzLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANF4YcKZhKTfowwWqZ84RW7bxFNgaSy3Gi85V5uJpU9jMCmZV0VFGptryNFEQ1GESmmuDutgQlkkhjr9ixkOrTA+aFPg6pLn+OG6NYS7nyKgAC1MprLH0bq06y3dH6lQPWQhd3wPP+8UIua9+9JuIfhu9Xs/HhN5cYlT5cEniV0aWuUMxgPAKcG1xolfupYhlOHjFwVN/QOaxcuk3YqGguD+sZ7PiHcJSzFnTkdvD+DtMoW1U6nDf5FuDeAEKJ7JQf7RjiRoViYxZHKrEPHG4iZ+kOhV6DQA16ISTt7ALXVB8gTTF3OvItubk2E3v6sgirgtvdE5Mkd4MTJcO67bgdUCAwEAAaMhMB8wHQYDVR0OBBYEFEXiTeLGkA2LgAjQOrT2KChpgwCgMA0GCSqGSIb3DQEBCwUAA4IBAQA6GqtYZDQzym0yxfL2NnlSbJP/lLhSQOqbPBdN6DWQ/3duk+e08Ix5qy63hzW+qQR0PAkFEcooL5+bdheS66tFJpVejEcqCSKUVvwOUe6GY/ju752dlB7anBB9An362khehCxqydYNS5Igl0rtcP7dKC3ZBn1m2B9ULsyx46iNpfHQHHv9NKU2vVq2CtNc95CFktwjUwlyWMgbfI/DzPX/cC6KnglqsuVVBO7+jIaBmi0XGqudooZkqgIrvnfNMM13Gy78TUNHsCiAQEwZ/L17yNbzotNGxAoPfuXldbD52MQNOsA7 WhH+j8qFWY6gZzTN4NpVtuW4m04TCEFexnTz -----结束证书-----
如果上面看不到,在-----BEGIN CERTIFICATE-----之后和-----END CERTIFICATE-----之前有一个\n
- 该公钥被复制到它的公钥部分,在我的代码中它是公钥 RSA 密钥。
- 我也尝试过使用 PKCS#1 进行格式化,但没有获得更多成功
它一直无效。在 jwt.io 和我的代码中甚至都没有过期,显然无效。
假设令牌是正确的,我的方法是否正确?我发现不同的教程以不同的方式准备 .pem。如果我的令牌不正确,除了从中获得索赔外,我该如何检查?
【问题讨论】:
标签: security jwt azure-active-directory