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 https://kpsv2.nvi.gov.tr/Services/RoutingService.svc adresindeki (wsdl adresi: https://kpsv2.nvi.gov.tr/Services/Wsdl.a...ikNoServis) 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ı: 78)
WWW
Cevapla
#2
(02-02-2018, Saat: 20:21)csunguray Adlı Kullanıcıdan Alıntı: Delphi ile https://kpsv2.nvi.gov.tr/Services/RoutingService.svc adresindeki (wsdl adresi: https://kpsv2.nvi.gov.tr/Services/Wsdl.a...ikNoServis) 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  
Teknik Bilgi Dokümanı 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
https://kpsv2.saglik.gov.tr/Details/Exam...lanicilari

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.
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ı: 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.


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ı:
(05-02-2018, Saat: 11:50)sadettinpolat Adlı Kullanıcıdan Alıntı: 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.


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 ?
WWW
Cevapla
#9
(06-02-2018, Saat: 17:14)ismailkocacan Adlı Kullanıcıdan Alıntı: Boş 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ı:
(06-02-2018, Saat: 17:14)ismailkocacan Adlı Kullanıcıdan Alıntı: Boş 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.
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  yapay zeka delphi kl007 9 624 26-02-2026, Saat: 09:12
Son Yorum: mrmarman
  Win 11 ve Delphi 7 Minimize sorunu. enigma 7 495 11-02-2026, Saat: 10:27
Son Yorum: RAD Coder
Question Delphi formunu nasıl otomatik tam ekran yapabilirim ? erdemklt0 2 322 23-01-2026, Saat: 10:02
Son Yorum: csunguray
  Delphi SLL kullanım sorunu Bay_Y 12 1.317 22-12-2025, Saat: 18:11
Son Yorum: Bay_Y
  Delphi ile SQL server bağlantı hatası yakalama Under 20 1.981 21-11-2025, Saat: 15:24
Son Yorum: mrmarman



Konuyu Okuyanlar: 1 Ziyaretçi