2012-09-06 14 views
6

IIS'de istemci sertifikalarını "yoksay", "izin ver" ve "isteme" yapabilirim.ASP.NET WebApi - İstemci sertifikalarına "gerek" değil "nasıl" izin veririm?

ASP.NET WebAPI'de (yalnızca biraz önce başlatılan sürüm 4.0), yalnızca "yok sayma" veya "gereksinim" olma özelliğine sahip gibi görünüyor. Benim yapılandırmasına bu bayrağı ayarlarsanız,

var cert = actionContext.Request.GetClientCertificate(); 

Ama: Varsayılan olarak

, istemci sertifikaları göz ardı edilir ... yani bu ifade her zaman null verir Sonra

config.ClientCredentialType = HttpClientCredentialType.Certificate; 

alıyorum müşteri sertifikası ... ancak artık anonim erişime izin verme yeteneğine sahip değilim.

Anonim istemcim şimdi 403 hatası alıyor: "Uzak sunucu bir hata verdi: (403) Yasak."

IIS'de nasıl bir "izin ver" yapabilirim?

+0

Burada yer alan kimlik modeli kodunu kullanmayı denediniz mi? http: //leastprivilege.com/2012/08/20/support-for-x-509-client-certificates-in-thinktecture-identitymodel-for-web-api/... Belki de bu yaklaşımın kullanımı ile birleştiğinde. AllowAnonymous özniteliği yardımcı olabilir? http://www.davidhayden.me/blog/asp.net-mvc-4-allowanonymous-attribute-and-authorize-attribute yardımcı olabilir? –

cevap

2

Bu kendini konak senaryosunda X509 Belgesi kullanarak bilinen bir sınırlamadır. Gerçek sınırlama, Müşteri Sertifikasına ilişkin olarak seçeneğine sahip olmayan WCF'deki temel taşıma aktarımından kaynaklanmaktadır. Ancak, anonim ve pencereler gibi diğer seçeneklerle birden çok kimlik doğrulama planına izin verebilirsiniz. Bu desteği anonim ve x509 sertifikasıyla da ekleyip ekleyemeyeceğimizi öğrenmek için WCF ekibiyle birlikte çalışıyoruz.

Bunu umarız.

0

Verilen sertifika geçersiz olabilir mi? Eğer durum buysa , şu size yardımcı olabilir: RemoteCertificateValidationCallback

+0

403 hatası, geçersiz bir sertifikadan gelmedi ... anonim ... anlamsız, hiç bir sertifika yok. –

+0

Ah Bu kısmı yanlış okuyorum. Kural dışı durumu koyar mı? İçsel bir istisna var mı? –

+0

Maalesef, hayır. Sertifika içermeyen bir hata, geçersiz bir sertifika ile aynıdır ... temel olarak, bir sertifika isteyip istemediğinizi, "gerekli" yapar. –