T.C. Kimlik No doğrulaması için ASP.NET Core Web API
NVİ (Nüfus ve Vatandaşlık İşleri) KPSPublic SOAP servisini kullanarak TC Kimlik No · Ad · Soyad · Doğum Yılı bilgilerinin nüfus kayıtlarıyla uyuşup uyuşmadığını doğrular.
Kullanıcı kayıt/onay süreçlerinde kimlik doğrulaması gereken sistemler (e-ticaret, fintech, üyelik) için hafif bir doğrulama servisidir. Verilen kimlik bilgilerini NVİ'nin herkese açık KPSPublic servisine iletir ve sonucu true/false olarak döner. KPS Public servisi ücretsiz ve aboneliksizdir; yalnızca internet erişimi gerektirir.
C# · .NET 8 · ASP.NET Core Web API · WCF/SOAP istemcisi (System.ServiceModel) · Swashbuckle (Swagger/OpenAPI)
- 🔎 TC Kimlik No + Ad + Soyad + Doğum Yılı ile kimlik doğrulama
- 🔁 Ad/Soyad otomatik büyük harfe çevrilir (KPS servisi gereği)
- 📦 Sade JSON yanıtı:
{ "basarili": true/false } - 🧯 Hata yönetimi: istisna durumunda
{ "hata": "..." } - 📑 Geliştirme ortamında otomatik Swagger UI
| Method | Yol | Açıklama |
|---|---|---|
POST |
/api/Kps/dogrula |
Kimlik bilgilerini KPS'e gönderir, doğrulama sonucunu döner |
İstek gövdesi:
{ "tcKimlikNo": 10000000146, "ad": "Ali", "soyad": "Yılmaz", "dogumYili": 1990 }Yanıt:
{ "basarili": true }- .NET 8 SDK
- İnternet erişimi (
https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx)
Bu API, NVİ KPSPublic servisinin WSDL'inden üretilen KPSPublicSoapClient istemcisini kullanır. Üretilmiş bu kod repoya dahil değildir; ilk derlemeden önce bir kez eklenmelidir:
Visual Studio: Proje → sağ tık → Add → Connected Service → WCF Web Service Reference → URL:
https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?WSDL
→ Namespace: KpsTcDogrulamaAPI.KpsService → Finish.
CLI alternatifi:
dotnet tool install --global dotnet-svcutil
dotnet-svcutil "https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?WSDL" --namespace "*,KpsTcDogrulamaAPI.KpsService"dotnet restore
dotnet run --project KpsTcDogrulamaAPI/KpsTcDogrulamaAPI.csproj- API:
https://localhost:7197·http://localhost:5046 - Swagger:
http://localhost:5046/swagger
Gizli anahtar / connection string gerekmez — KPS Public servisi açıktır.
KpsTcDogrulamaAPI/
├── KpsTcDogrulamaAPI.sln
└── KpsTcDogrulamaAPI/
├── Program.cs → minimal hosting (controllers + Swagger)
├── Controllers/KpsService.cs → KpsController + TcDogrulamaModel
└── Properties/launchSettings.json
- Kişisel veri işlendiği için istemci–sunucu trafiği HTTPS üzerinden olmalıdır (
UseHttpsRedirectionetkin). - Üretim için endpoint'e kimlik doğrulama ve rate limiting eklenmesi önerilir.
- Çevrimdışı çalışmaz; NVİ servisine erişim şarttır.
MIT — bkz. LICENSE.