Мое приложение (PHP) получает ответ SAML от OKTA, у которого есть значение подписи, и у меня также есть сертификат OKTA, который имеет открытый ключ. Моя заявка делает следующее:OKTA SAML Подпись verfication - PHP
- Получает открытый ключ из сертификата.
- Получает значение подписи от отправленного им SAML.
- Теперь он использует функцию openssl_verify ($ data, $ signature, $ pubkeykey, "sha1WithRSAEncryption"); Поскольку $ data является содержимым, используемым OKTA для подписи ответа saml, я не уверен, что нужно задать $ data.
Мой код,
$pubkeyid = openssl_pkey_get_details(openssl_pkey_get_public(file_get_contents("okta.cert")));
$pubkeyid = $pubkeyid["key"];
$signature = "<get it form SAML Response>";
$data = ???? (what should be provided)
$ok = openssl_verify($data, $signature, $pubkeyid,"sha1WithRSAEncryption");
Я всегда получаю 0, когда я присвоить значение данных, чтобы быть SAML ответ посылается приложению. Я что-то упустил?