Как указать сертификат шифрования SAML в ruby -saml? - PullRequest
0 голосов
/ 25 апреля 2020

Gem ruby -saml поддерживает добавление информации о сертификате и секретном ключе в метаданные поставщика услуг, но, насколько я могу судить, это настраивает только сертификат подписи, но не шифрование. Вот что я делаю:

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'?

1 Ответ

0 голосов
/ 05 мая 2020

Если я правильно понял, Вы не можете отправить 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'
}
...