Мое приложение (PHP) получает ответ SAML от OKTA, который имеет значение подписи, и у меня также есть сертификат OKTA с открытым ключом. Мое приложение делает следующее,
- Получает открытый ключ из сертификата.
- Получает значение подписи из отправленного ему 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, отправляемому приложению. Я что-то пропустил ?