Ошибка PEM_read_bio_PUBKEY при отправке подписанного SAMLRequest на Auth0 - PullRequest
1 голос
/ 06 августа 2020

Я пытаюсь подписать (ITfoxte c Identity SAML2) запросы SAML и тестирование с помощью Auth0, и я получаю следующую ошибку на стороне Auth0:

invalid_request: Ошибка PEM_read_bio_PUBKEY

Я заполнил ключ publi c в их конфигурации.

{
  "signatureAlgorithm": "rsa-sha256",
  "digestAlgorithm": "sha256",
  "signingCert": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqt7eddg/N9MgaivTEWif\n...\nnmEbAFKJtjieiwu1JjsMsdUCAwEAAQ==\n-----END PUBLIC KEY-----\n"
}

Вот как я сгенерировал ключи:

openssl req -x509 -sha256 -newkey rsa:4096 -keyout auth0samlprivate.key -out auth0samlpublic.pem -days 3650 -nodes -subj "/CN=mydomain.com"

# then i generate the public key to fill in the configuration of Auth0
openssl x509 -pubkey -noout -in auth0samlpublic.pem  > auth0samlpublickey.pem

# then I generate the .pfx file to use server side for the private key
openssl pkcs12 -export -out auth0saml.pfx -inkey auth0samlprivate.key -in auth0samlpublic.cer

Затем в коде :

config.SignAuthnRequest = true;
config.SigningCertificate = CertificateUtil.Load("Path/To/auth0saml.pfx", "myPassword");

В браузере меня перенаправляют на правильный URL-адрес, содержащий параметр запроса подписи, поэтому кажется, что он обрабатывается правильно, но Auth0 не может его прочитать.

Что я пропустил? Я новичок в этой части сертификата.

1 Ответ

1 голос
/ 07 августа 2020

Проблема была в сгенерированном сертификате.

Во-первых, хотя пример в Auth0 использует закрытый ключ, использование сертификата тоже нормально.

Следующие команды у меня сработали:

openssl req -x509 -sha256 -newkey rsa:2048 -keyout auth0samlprivate.pem -out auth0samlpublic.pem -days 3650 -nodes -subj "/CN=thefiftyapp.com"

openssl pkcs12 -export -in auth0samlpublic.pem -inkey auth0samlprivate.pem -out auth0saml.pfx

Я думаю, что настоящая проблема заключалась в том, чтобы вручную изменить файл pem на файл cer без использования командной строки.

И конфигурация Auth0:

{
  "signatureAlgorithm": "rsa-sha256",
  "digestAlgorithm": "sha256",
  "signingCert": "-----BEGIN CERTIFICATE-----\nMIIDFTCCAf2gAwIBAgIUXg1jHZ9qRIrtySCsF/bK2JvYxMQwDQYJKoZIhvcNAQEL\n...\n53f63eKJn9PMmyqIYl9/K48ABR3Bf8exfvK4HRudkSU66pQsj8biIxl4MSDMg/6G\naHUZoTBJbJ/sXmoExGpltvFDcNMITfJMKGFCIBO9VnlsJrXdwalSTpxg/9Yi79GD\n5yMXEjicqion8KE0LMsk93LVS92bkujhSg==\n-----END CERTIFICATE-----\n"
}
...