首頁 >後端開發 >php教程 >如何使用 PHP 連線到受 WS-Security 保護的 Web 服務?

如何使用 PHP 連線到受 WS-Security 保護的 Web 服務?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-07 02:45:03746瀏覽

How to Connect to a WS-Security Protected Web Service Using PHP?

使用PHP 連接到WS-Security 保護的Web 服務

問題:

使用PHP 連接到受密碼保護的Web 服務並在建立之前進行身份驗證一個請求被證明是一個挑戰。將服務定義為 SoapClient 或 SoapServer 似乎都無法成功連線到遠端站台。

解決方案:

要建立與受 WS-Security 保護的 Web 服務的連接,請利用 SoapHeader建立符合 WS-Security 的身份驗證標頭。

實作:

透過建立定義 WS-Security 標頭細節的自訂類別來擴充 SoapHeader 類別。

class WsseAuthHeader extends SoapHeader {
  // ... (your code to generate the WS-Security header)
}

使用必要的憑證(使用者名稱、密碼)實例化自訂標頭類,並將其傳遞給 SoapClient 建構子。

$wsse_header = new WsseAuthHeader($username, $password);
$client = new SoapClient('service URL', ['__setSoapHeaders' => [$wsse_header]]);

附加說明:

  • 對於涉及 WS-Security 的情況使用隨機數和時間戳,請參閱答案部分中的另一種實現。
  • 確保將此方法與答案中指定的連結中 Stack Overflow 提供的方法進行比較。

以上是如何使用 PHP 連線到受 WS-Security 保護的 Web 服務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn