我所拥有的是:
- 提供令牌的 OpenId 投诉服务 (Rest)
- 此服务有多个证书(keyPairs)用于签署令牌,具体取决于请求令牌时的某些因素
- 该服务正在实施 2 个 OpenId 端点(众所周知和证书)
我做了什么:
- 我成功地将服务注册为 AWS IAM 服务上的 IDP(因此我的两个 OpenId 端点正在工作,否则 AWS 不会接受 IDP)
- 我在 IAM 上创建了要使用 IDP 服务令牌承担的角色
- 我从 IDP 服务中获得了两个用于担任角色的令牌(每个都使用不同的密钥签名)
问题:
- AssumeRole 失败,我得到两个令牌的无效令牌异常。
我尝试在令牌中设置“孩子”声明,每个都使用证书的相应孩子,但它不起作用:(。
笔记:
- 我正在使用 Java AWS API 担任角色
- 当我删除其中一个证书(从下面的示例响应中)时,剩余的证书可以正常工作。所以问题在于拥有 2 个证书,但我需要拥有,AWS 应该有一种方法来处理我不知道如何处理的这种情况。
我的证书端点的示例如下:
{
"keys": [
{
"kid": "kid",
"kty": "kty",
"use": "use",
"alg": "alg",
"n": "nValue",
"e": "eValue",
"x5c": [
"cert1"
],
"x5t": "x5t=",
"x5t#S256": "x5t#S256"
},
{
"kid": "kid1",
"kty": "kty",
"use": "use",
"alg": "alg",
"n": "nValue",
"e": "eValue",
"x5c": [
"cert2"
],
"x5t": "x5t=",
"x5t#S256": "x5t#S256"
}
]
}