2013-06-21 17 views
5

Internet üzerinden WCF Hizmeti ile etkileşime giren bir istemci programı yapıyorum. Her şey amaçlandığı gibi çalışıyor ancak hizmetlerimi nasıl koruyabileceğimi merak ediyorum, böylece sadece müşteri programım bundan faydalanabilir mi?WCF Servisi - nasıl korunacağımı sadece müşterilerim kullanabilir?

Şu anda benim hizmetlerine doğru URL ile herkes WCFTestClient (örneğin) ile kullanabilirsiniz.

o özel yüzden sadece müşterilerim hizmet yararlanabilirler yapmak için en iyi yolu nedir? Dönen jeton ipleri? Sertifika? Parola?

hiçbir fikrim yok ve internette yararlı bir şey bulamadı.

Saygılarımızla

GÜNCELLEME: istemci programı kamu (Herkes) için indirilen üzere tasarlanmıştır. Yani iç kullanım için değil, vereceğimiz bir hizmet olacak, resmi üretimde olanlar.

Kendi düşünme gibi oldu: Müvekkilim programlarında sertifika Bind (Aynen hatta mümkünse?). WCF hizmetinin çalıştığı IIS'de geçerli sertifikayı denetleyin. Mümkün mü? Veya daha iyi çözümler var mı?

+1

http://msdn.microsoft.com/en-us/, ..15 saniye veya 30 sonra geçerli olmayacaktır magazine/cc163570.aspx – Rohit

+0

IIS'de, bir istemci veya IP aralığının sadece bilinen bir IP'si tarafından çağrılabilmesi için etkinleştirebilirsiniz. Uzun bir SSL, kimlik bilgileri vb – Kyle

+0

Merhaba Kyle aşağıda listelenen, üzgünüm ben yeterince özel değildi. Müşteri programı, üretimde olanlar herkes için olmalıdır. Yani istemcilerin IP adreslerini bilmiyorum. Temel olarak bu şekilde istiyorum, müvekkilimin hizmete karşı bir çeşit kimlik doğrulaması var, bu yüzden hizmetler halka/misafirler için kilitlendi. – user1281991

cevap

1

Protect .net Web Service URL diğer cevapları ile birlikte

yardımcı olur Umut ve süper dikkatli olmak istiyorsanız istemciler olsun bir belirteç sistemi uygulayabilir sizden ilk belirteç, her istek yeni bir jetonu döndürür ve her zaman bir müşteriyi şu anki belirteçle karşılaştırırsınız (ama bu benim düşüncemde dikkatli olmak zorundadır)

Güncelleme - çünkü bu herkes için bir Sunucuda kontrol etmek için geçerli bir belirteç oluşturma yolu, bir belirteç olabilir. insanlar isteği yakalanmış ve jetonu buldu bile saniyelik bir aralık için kapak, bu nedenle, bu vb

+0

Merhaba Royi, ben de bu fikrin fikrini düşündüm. Ama bunun hakkında bir sorum var. Daha sonra WCF servisi ile kullandığım her yöntemde belirteci geçmek zorunda mıyım? Yoksa bunu uygulamak için başka bir yolu var mı? – user1281991

+0

Bir jeton jeneratörü, zamana bağlı olarak - veya değişmekte olan ancak istemci ve sunucuda hala aynı olan ve her istekte bu jetonu geçtiğiniz, hatta istemci bilgisine bağlı olabileceğiniz ve bunlara bağlı olması gereken - Sunucu sadece aynı belirteci oluşturur ve her iki jetonu da denetler. ama evet, her istek ile belirteci göndermeniz gerekecek :) –

+0

Tamam, çok teşekkürler Royi. Bu düşündüm. Ancak daha akıllı bir şekilde umuyordum: D – user1281991

1

o zaman Gerekli

için

AspNetCompatibilityRequirementsMode etkinleştirerek Veya servis tek başına o zaman oauth kimlik doğrulaması kullanabilirsiniz herkes tarafından tüketilen yani eğer FormAuthentication Cookie kontrol etmek ASP.NET kaldıraç Formu kimlik doğrulaması kullanıyorsanız ne yapabileceğini yetkilendirilmiş tüm müşterilerine paylaşılacak olan bir tüketici gizli anahtarı olacağını ise ona Oauth Authentication

hakkında daha fazla bilgi bulabilirsiniz. Arayan kişi bu anahtarı kullanarak bazı bilgileri imzalar ve sunucu aynı anahtarı kullanarak imzalar ve sonra karşılaştırır.

o kötü de olamaz, bu

İlgili konular