我是否可以在AWS IAM上使用多个证书注册IDP

问题描述 投票:0回答:1

我拥有的是:

  • 提供令牌的OpenId投诉服务(Rest)
  • 此服务具有多个证书(密钥对),用于在请求令牌时根据某些因素对令牌进行签名

    -服务正在实现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"
        }
    ]
}
amazon-web-services openid amazon-iam idp assume-role
1个回答
0
投票
所以问题是我试图将孩子安置在JWT的“要求”中。

然而,为了使AWS区分此JWT是使用此密钥签名的(来自jwks响应),它会检入JWT的标头。如果在标头中找到孩子,则它将在jwk响应中查找与相应孩子的证书。

因此,为了解决这个问题,我只需要在JWT的标头中设置孩子的身份。

© www.soinside.com 2019 - 2024. All rights reserved.