0

ruby-saml gem 支持将证书和私钥信息添加到服务提供商的元数据中,但据我所知,它只配置签名证书,而不配置加密证书。这就是我所做的:

settings.certificate = "---- BEGIN CERTIFICATE----..."
settings.private_key = "-----BEGIN PRIVATE KEY----..."

这会导致将以下 XML 部分添加到服务提供者的元数据中:

<md:KeyDescriptor use='signing'>
      <ds:KeyInfo xmlns:ds='http://www.w3.org/2000/09/xmldsig#'>
        <ds:X509Data>
          <ds:X509Certificate>
CERTIFICATE IS HERE GSDk3tShjl4yhShj4Hr....
          </ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
</md:KeyDescriptor>

但是如何配置 ruby​​-saml 以添加类似的use='encryption'部分use='signing'

4

1 回答 1

0

如果我理解正确,您将无法以加密形式发送 SAMLResponse。如果是这种情况,当您构建 SAML 响应时,请再发送一个参数

saml_response = encode_response( :encryption => encryption_opts())

def encryption_opts: 
return {
      cert: saml_request.service_provider.cert,
      block_encryption: 'aes256-cbc',
      key_transport: 'rsa-oaep-mgf1p'
}
于 2020-05-05T11:31:38.383 回答