Tüm Platformlar için Hızlı Uygulama Geliştirme --->    Kitabımız...      Delphi

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi ile NVİ KPS (Kimlik Paylaşım Sistemi) web servislerine bağlanma.
#1
Delphi ile Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol adresindeki (wsdl adresi: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol) web servisine bağlanabilen var mıdır? Biliyorsunuz bu servis sadece tanımlı IP'lere açık bir servis. O yüzden her yerden deneme yapmak mümkün değil. İnternette yaptığım araştırmalarda C-Sharp, Java ve hatta PHP içerisinden hiç bir özel ayar yapmadan doğrudan bağlanılıyor. Ama Delphi içerisinden ne yaptıysam bağlanamadım.

Aldığım hata mesajı gönderdiğim XML nin uygun yapıda olmadığını söyleyen bir mesajdı. XML'ye WSSE ile security header da uyguluyorum. Bu konuda tecrübesi olan arkdaşlar tecrübelerini paylaşırsa sevinirim.

WSDL'nin import edilmiş hali ektedir.
.zip   KPS_TCKimlikIleKisiBilgisiSorgulamaNoWSP.zip (Dosya Boyutu: 4,48 KB / İndirme Sayısı: 13)
WWW
Cevapla
#2
(02-02-2018, Saat: 20:21)csunguray Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlDelphi ile Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol adresindeki (wsdl adresi: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol) web servisine bağlanabilen var mıdır? Biliyorsunuz bu servis sadece tanımlı IP'lere açık bir servis. O yüzden her yerden deneme yapmak mümkün değil. İnternette yaptığım araştırmalarda C-Sharp, Java ve hatta PHP içerisinden hiç bir özel ayar yapmadan doğrudan bağlanılıyor. Ama Delphi içerisinden ne yaptıysam bağlanamadım.

Aldığım hata mesajı gönderdiğim XML nin uygun yapıda olmadığını söyleyen bir mesajdı. XML'ye WSSE ile security header da uyguluyorum. Bu konuda tecrübesi olan arkdaşlar tecrübelerini paylaşırsa sevinirim.

WSDL'nin import edilmiş hali ektedir.
Alıntı:Kimlik Paylaşımı Sistemi web servislerinden faydalanabilmek için, bağlantı için kullanılan sistemin
bullet1.png XML Web Servislerini çağırabilme (SOAP 1.2) 
bullet1.png WS-Security 1.1, WS-Trust 1.3 ve WS-SecurityPolicy 1.2 web servis güvenliği

standartlarını desteklemesi gerekmektedir.

KPS’de tek noktadan kimlik doğrulama (Single Sign On – SSO) yöntemi uygulanmaktadır. Web servis kullanıcıları doğrudan KPS üzerinden değil, ayrı bir güvenlik anahtarı servisinden (Security Token Service – STS) kullanıcı adı ve parolaları ile anahtar alarak, geçerli olduğu süre zarfında aynı anahtar ile KPS’ye çağrıda bulunabileceklerdir.

STS, WS-Security - UsernameToken güvenlik yöntemini kullanmaktadır ve transport seviyesinde SSL (secure sockets layer) ile korunmaktadır. KPS V2 ise WS-Security 1.1, WS-Trust 1.3 ve WS-SecurityPolicy 1.2 güvenlik yöntemlerini uygulamaktadır. KPS V2 Servisleri transport serviyesinde SSL ile, SOAP serviyesinde SAML V1.1 güvenlik anahtarı ile korunmaktadır.

Kullanıcılar kendilerine verilen kullanıcı adı ve parolaları ile STS’nin sunduğu güvenlik anahtarı sağlayıcı servise istekte bulunurlar. STS servis cevabı olarak SAML V1.1 türünde bir güvenlik anahtarı döner. Kullanıcılar bu güvenlik anahtarı ile KPS servislerine istekte bulunabilirler.




Bir zamanlar uğraşmış ve Delphi 7 ile kps v1 ile bağlanmıştım. Daha sonra v2 ye geçilince güvenlik standartları değişti ve Delphi 7 bu standartları karşılamadığı için devam etmedim. Şu an durum nedir bilmiyorum ama  
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol nı incelemenizi tavsiye ederim.

Daha önce Delphi 7 ile sorun yaşadığımda c# ile yazılmış bir dll kullanarak projeme devam etmiştim. Ancak v2 ile uyumlu olmayan ve benim yazmadığım dll de şu anda kullanılır durumda değil.

İlk fırsatta yeni versiyonlarla durum nedir denemeye çalışacağım.

Umarım faydalı olmuştur 
Cevapla
#3
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

buradaki orneklerde duz http requestleri gonderilerek servis ile haberlesme yapilmis.
teknik olarak ayni mantikla delphiden de haberlesme yapilabilir. c# console uygulamasini delphiye cevirmek lazim gibi.
WWW
Cevapla
#4
Sadettin'in bahsettiği gibi c# kodlarını delphi'ye çevirebilirsiniz.Gördüğüm kadarıyla çok fazla kod yok.

Çevirmekle uğraşamam diyorsanız da .net process'ini delphi ile DLL export, IPC, COM gibi yöntemleri kullanarak haberleştirebilirsiniz.
My name is nobody.
WWW
Cevapla
#5
Başka br projemde C-Sharp ile bağlanıp daha sonra verileri ondan alarak işi hallettik. C-Sharp'ta zaten hiç bir ekstra işlem yapmadan doğrudan bağlanabiliyorsunuz.

Benim merak ettiğim Delphi içerisinden bağlanılıp bağlanılamadığı. Bağlanan olmadığına göre sanırım pek mümkün görünmüyor gibi. Ayrıca Sağlık Bakanlığı servislerini de kullanmak istemiyorum.

Yine C-Sharp yöntemini kullanmak zorunda kalacağım.
WWW
Cevapla
#6
Bu standartları destekleyen sanırım sadece c# var. JDK 8 ile de benzer bir servise baglanamadim ve internette buldugum cozum onerileri gerekli xml yapisini manuel olusturup http request olarak ilgili adreslere göndermek seklindeydi.

gerek saglik bakanliginin servisleri olsun gerek kps nin servisleri olsun delphi ile yapmak isterseniz ornek xml leri manuel olusturup gondermekten baska native bir cozum su an yok gibi.
WWW
Cevapla
#7
(05-02-2018, Saat: 11:50)sadettinpolat Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlGerek saglik bakanliginin servisleri olsun gerek kps nin servisleri olsun delphi ile yapmak isterseniz ornek xml leri manuel olusturup gondermekten baska native bir cozum su an yok gibi.


Ben o yolu da denedim ve manuel oluşturmaya razıyım. Ama örnek XML yok. Ayrıca o şekilde olacağından da şüpheliyim. Çünkü Fiddler ile XML leri incelediğimde bir sürü şifrelenmiş (sanırım base64 ile) içerik gördüm.
WWW
Cevapla
#8
(06-02-2018, Saat: 09:40)csunguray Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(05-02-2018, Saat: 11:50)sadettinpolat Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlGerek saglik bakanliginin servisleri olsun gerek kps nin servisleri olsun delphi ile yapmak isterseniz ornek xml leri manuel olusturup gondermekten baska native bir cozum su an yok gibi.


Ben o yolu da denedim ve manuel oluşturmaya razıyım. Ama örnek XML yok. Ayrıca o şekilde olacağından da şüpheliyim. Çünkü Fiddler ile XML leri incelediğimde bir sürü şifrelenmiş (sanırım base64 ile) içerik gördüm.
Boş bir C# projesi açıp, sadece tüm servisleri import edip projeyi paylaşabilir misiniz ?
My name is nobody.
WWW
Cevapla
#9
(06-02-2018, Saat: 17:14)ismailkocacan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBoş bir C# projesi açıp, sadece tüm servisleri import edip projeyi paylaşabilir misiniz ?

Müşteriye gittiğimde bu dediğinizi yapacağım.
WWW
Cevapla
#10
(07-02-2018, Saat: 13:07)csunguray Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(06-02-2018, Saat: 17:14)ismailkocacan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBoş bir C# projesi açıp, sadece tüm servisleri import edip projeyi paylaşabilir misiniz ?

Müşteriye gittiğimde bu dediğinizi yapacağım.
C# ile düzgün çalışıyorsa eğer ya da başka bir teknoloji de olabilir, yapıyı anlayıp delphi ya da başka bir dile çevirmek için ne yapmak gerekiyor onu analiz edip, anlamak için sormuştum.
My name is nobody.
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi ile Json Parse İşlemi yhackup 12 735 Dün, Saat: 07:59
Son Yorum: 10.Köy
Question delphi 10.1'den 10.2' ye geçiş BY-HAYALET 10 179 18-02-2018, Saat: 12:33
Son Yorum: BY-HAYALET
  Delphi Eval Hakkında narkotik 8 184 26-01-2018, Saat: 01:46
Son Yorum: narkotik
  Delphi Fonksiyonlar narkotik 6 213 15-01-2018, Saat: 23:32
Son Yorum: narkotik
  Delphi tarafından çağrılan programın süresini bulma cinarbil 10 314 05-01-2018, Saat: 01:14
Son Yorum: narkotik



Konuyu Okuyanlar: 1 Ziyaretçi