Skip to content

January 16, 2012

8

PHP ile WS-Security SOAP Servislerine Bağlanmak

php-ws-security-soap

Merhaba arkadaşlar, bu yazımızda WS-Security konusunu ele alacak ve PHP ile  WS-Security kullanan SOAP web servislerine nasıl bağlanabileceğimizi inceleyeceğiz.

PHP halihazırda WS-Security tabanlı web servisi oluşturmayı desteklemesede WS-Security tabanlı servislere bağlanmak mümkün. WS-Security tabanlı bir web servisine bağlanmak için PHP ‘nin yerleşik olan SoapClient sınıfını kullanmak yeterli.

WS-Security (WSS) Nedir ?

WS-Security, OASIS (Organization for the Advancement of Structured Information Standards) tarafından geliştirilmiş ve web servislerine güvenlik özellikleri ekleyen bir standarttır. Her ne kadar performans kaybı yaşatıyor olsada kullanmak zorunda olduğunuzda bu kodlar işinize yarayabilir.

PHP ile WS-Security (WSS) SOAP Servisine Nasıl Bağlanılır ?

<?php

// wsdl cache 'ini devre disi birak
ini_set("soap.wsdl_cache_enabled", "0");

try {

  // SOAP parametreleri
  $soapOptions = array('login' => "username",
                        'password'     => "password",
                        'soap_version' => SOAP_1_2
                        );
// SOAPClient nesnesi olustur
$client = new SoapClient("adress", $soapOptions);

} catch (Exception $exc) { // Hata olusursa yakala
  echo "Soap Hatasi Olustu: " . $exc->getMessage();
}
?>

Yukarıda bulunan “username” ve “password” alanlarıda ws-security tabanlı web servisine login olurken kullanacağınız kullanıcı adı ve şifresini yazmanız gerekiyor. Sonrasında diğer metodları PHP ile Web Servislerine Bağlanmak yazısında olduğu gibi çağırabilirsiniz.

Sonuç:

Yazımızın sonunda lazım olduğunda günlerce araştırıp bulduğumuz bu küçük bilgilerin işinize yarayacağını temenni ediyoruz.

Kaynaklar:

WS-Security – Wiki
WS-Security (.ppt) – UCSB
WS-Security 1.1 Spec (.pdf) – OASIS
Understanding WS-Security – MSDN
Why use WS-Security – Chris Seary’s blog

Daha fazla yazı PHP
Toplam 8 Yorum Yorum Yaz
  1. Bahadır
    Feb 10 2012

    kps.saglik.gov.tr adresinde olduğu gibi ws-security https üzerinden bir sorgu var yeni mernis değişti bu konu hakkında bana yardımcı olur musunuz lütfen_?

    Reply
    • Feb 15 2012

      Entegrasyonda takıldığınız konuda sorunu iletirseniz bilgimiz dahilinde yardımcı olmaya çalışırız.

      Reply
  2. Mehmet Ali Çetin
    Mar 5 2012

    Öncelikle Kaynaklarınızdan dolayı teşekkürler. Üzerinde çalıştığım projenin kurgulanmasında gerçekten çok ama çok işe yaradı.

    Benim aklıma takılan konu şu.
    Server oluştururken Kullanıcı Adı ve Şifre ile giriş yapmayı sağlatabilirmiyiz.
    Yani sadece bu kullanıcı adı / Şifre bu datayı çeksin die

    Gerçi bunu yapmak için server tarafındaki dosya üzerinden içerdeki bi fonksiyonla db den kontrol yaptırabilirim sıkıntı yok da merakım bunun desteğini PHP ‘nin SoapSERVER tarafı sağlıyormu
    Cevabınız için şimdiden teşekkürler

    Reply
    • Apr 12 2012

      Merhaba Mehmet Ali bey,

      Sanırım PHP SOAP Server ile bunu yapmak mümkün değil. WS-Security standartlarına göre bir web servisi sunucusu bunu yapabiliyor olması gerekiyor. Sonraki versiyonlarda bir destek gelir diye düşünüyorum.

      İyi Çalışmalar

      Reply
      • Burak
        Nov 24 2017

        Soap servisine basic auth bağlantısı oluştururken An error occurred when verifying security for the message alıyorum ne yapabilirim

        Reply
  3. İbrahim Gündüz
    Apr 4 2012

    Yine çok başarılı. Soapla ilgili daha çok yazı ve örnek bekliyoruz 🙂 Ellerine sağlık.

    Reply
  4. mchl
    Oct 1 2014

    Admin kardeşim öncelikle açıklamaların için teşekkür ederim. Benim sorum takbis(tapu – kadastro) sistemi var ve bu sistemde kullanıcı adı şifre ek olarak da guid ortamı paylaşım anahtarına sahip. Kullanıcı adı şifre sizin anlattığınız yöntemleri kullanarak başarılı bir şekilde yol aldım fakat guid oluşturamadığım için oturumdaki bilgilere ulaşamıyorum. PHP verilen paylaşım anahtarını kullanmak için herhangi bir fonksiyona sahip midir? yoksa boş yere mi çabalıyorum?

    Reply
  5. ahmet
    Feb 19 2015

    Öncelikle güzel yazılarınız için teşekkürler.
    Benim şöyle bir sorum olacaktı:
    Ben kendi yapmış olduğum site üzerinden vb.net ile soap yardımıyla veri alacağım. Alırken api mantığıyla şifreli olmasını istiyorum.WS-Security sunucu tarafından nasıl yazılıyor. Bunun örneğini vermeniz mümkün mü? İnternetteki kaynaklar hep client tarafını anlatıyor. Ya da ben tam olarak anlamadım.

    Reply

Leave a Reply to ahmet

(gerekli)
(gerekli)