我的應用程序(PHP)從具有簽名值的OKTA獲取SAML響應,並且我還擁有具有公鑰的OKTA證書。我的應用程序執行以下操作:OKTA SAML簽名驗證 - PHP
- 從證書獲取公鑰。
- 從發送給它的SAML獲取簽名值。現在,它使用函數openssl_verify($ data,$ signature,$ pubkeykey,「sha1WithRSAEncryption」);由於$ data是OKTA用來簽署saml響應的內容,我不確定需要設置哪些$數據。
我的代碼,
$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響應。 我錯過了什麼嗎?