我的应用程序 (PHP) 从 OKTA 获得具有签名值的 SAML 响应,并且我还拥有具有公钥的 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");
当我将 data 的值分配为发送到应用程序的 SAML 响应时,我总是得到 0。我错过了什么吗?