PHP ile WS-Security SOAP Servislerine Bağlanmak
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
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_?
Entegrasyonda takıldığınız konuda sorunu iletirseniz bilgimiz dahilinde yardımcı olmaya çalışırız.
Ö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
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
Soap servisine basic auth bağlantısı oluştururken An error occurred when verifying security for the message alıyorum ne yapabilirim
Yine çok başarılı. Soapla ilgili daha çok yazı ve örnek bekliyoruz 🙂 Ellerine sağlık.
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?
Ö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.