我的应用程序(PHP)从OKTA获取SAML响应,其中包含签名值,我还有OKTA的证书,其中包含公钥。我的应用程序执行以下操作,
当我将数据的值赋为发送到应用程序的SAML响应时,我总是得到0。我是否漏掉了什么?
- 从证书中获取公钥。
- 从发送给它的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");
当我将数据的值赋为发送到应用程序的SAML响应时,我总是得到0。我是否漏掉了什么?