我们正在测试我们自己的OIDC与一个商业客户。(我们无法访问客户端代码。)经过一些测试后,客户端总是返回
OpenID连接令牌验证失败:令牌签名无效(ID_TOKEN)
IDP处于网络的狂野状态,客户端在我们自己的网络中,中间有一个SSL破解器。我们有一个测试客户端,也在WWW,这是很好的工作。
我的问题是,OIDC使用哪个证书来验证签名.这是国内流离失所者网站的证书吗?如果是这样的话,可能是因为这个错误的原因,ssl破解器是否取代了原始证书?
发布于 2019-05-03 23:16:09
关于OIDC术语的注记
我知道您在编写"IdP“和"client”时所指的是什么,但我想提到的是,您通常会看到用于OIDC文档/讨论的OP和RP。
背景和建议
您正在测试的商业RP表明ID令牌(即JWT)的签名验证失败了。要具体回答您的问题,不是,它没有使用来自OP网站的x509证书来验证签名。RP用于验证签名的密钥将取决于您是否将OP配置为使用以下方法对ID令牌进行签名:
请查看上下文线程上接受的答案:RS256 vs HS256: What's the difference?
在前一种情况下(HS256),OP用一个秘密密钥对ID令牌进行签名。你的RP必须使用相同的密钥来验证签名。(请注意:您可能知道,重要的是要确保共享的密钥安全可靠。)如果这是您的环境,那么商业RP可能有一个配置选项,允许您上传或复制/粘贴秘密密钥。
在后一种情况下(RS256),OP用私钥对ID令牌进行签名,但是RP使用其公钥对应来验证签名。如果这是您的环境,那么商业RP可能有一个配置选项来指定"jwks_uri“和”option“。它们分别引用了将公钥发布到的URI及其密钥ID。
https://stackoverflow.com/questions/54979408
复制相似问题