Keycloak在其JWK端点中是否支持x5 *参数?

时间:2019-03-19 00:50:52

标签: keycloak x509 jwk

我正在使用Keycloak作为我的身份和访问管理器。

我有一个用例,我需要将敏感信息传输到另一个受信方。流程如下:

  • 我通过受信任方的JWK端点检索受信任方的公钥
  • 我使用受信任方的公共密钥加密敏感数据
  • 然后我向自己发行JWT令牌。我用我的私钥对此签名。
  • 接下来,我将数据以及我在授权标头中的JWT令牌传输到可信方
  • 受信任方收到了我的请求
  • 受信方呼叫我的JWK端点以获取我的公钥
  • 受信任方验证我使用公钥发送的JWT令牌
  • 然后,受信方使用其私钥解密敏感数据

通过此流程,受信方可以确信

  • 敏感数据在运输过程中未被篡改

他们不能确定的是:

    我是他们以为我的人;我就是发送数据的人。

他们唯一知道的是他们在我这边呼叫的端点看起来像属于我的公司。但是,如果对手以某种方式拦截请求,即他们返回了自己的公钥,并且能够发布自己的由私钥签名的令牌,那么他们就可以将所需的任何数据传输给受信方。

这是x.509证书的来源。受信方需要一种方法来确保另一端的方是我。

截至四天前,

Keycloak在5.0.0-SNAPSHOT中显示为support x5c(证书链);这是通过添加/生成新的公用/专用密钥对和证书来配置的。如果配置了证书,则可以通过JWKS端点使用x5c参数。

但是,我还需要提供一个x5t(缩略图)参数。 Keycloak是否为此提供或打算将来提供任何支持?

1 个答案:

答案 0 :(得分:0)

我创建了KEYCLOAK-9868的拉取请求,并添加了x5tx5t#S256 JWK参数。该版本已合并到Keycloak master中,并且在5.0.0之后的下一发行版中均应可用。