Agent Korumaları ve Çalışma Zamanı LDAP Yapılandırması

Bugün iki farklı problem üzerinde çalıştım. Her ikisinin de aynı amacı vardı: sınırları açık ve kontrolü kolay hale getirmek.

İlk görev, bir yapay zeka ajanı için MCP araçları oluşturmayı içeriyordu. Ajanın; etkinlikleri listeleyerek, hazırlık durumunu kontrol ederek ve güncellemeleri yayınlayarak bir etkinlik platformunu yönetmesini istedim.

Zorluk şu ki, MCP araçları token kimlik doğrulaması kullanıyor. Bu, standart bir web isteğinin sahip olduğu oturum bağlamından yoksun oldukları anlamına geliyor. Eğer küresel bir kiracı kapsamına (global tenant scope) güveniyorsanız, sistem her organizasyondan veri döndürebilir.

Bunu üç kural ile çözdüm:

  • Her sorguda organizasyona göre açıkça filtreleme yapın. Küresel bir kapsama güvenmeyin.
  • Web uygulamasıyla aynı izin dizelerini kullanın. Bir ajan, onu kullanan insandan asla daha fazla yetkiye sahip olmamalıdır.
  • Arama işlemleri için otomatik artan ID'ler yerine UUID'ler kullanın.

Her aracı güvenilmeyen bir uç nokta olarak değerlendirin. Mantığınızı, tek bir yerden test edebileceğiniz bir yere koyun.

İkinci görev bir kimlik portalını içeriyordu. LDAP ayarlarını statik dosyalardan bir ayarlar arayüzüne (UI) taşıdım. Yöneticiler artık yeni bir dağıtım (deployment) yapmadan host, port ve kimlik bilgilerini değiştirebilirler.

Ayrıca bağlantı zaman aşımları ve SASL seçenekleri üzerinde kontrol de ekledim. Bu durum JSON ile ilgili teknik bir engel oluşturdu.

JSON'da tam sayı anahtarları sakladığınızda, bunları decode ettiğinizde string olarak dönerler. LDAP fonksiyonları tam sayı anahtarları gerektirir. Bu anahtarları kullanmadan önce tekrar tam sayıya dönüştürmek için bir mapper yazmam gerekti.

Bunu güvenli tutmak için iki koruma bariyeri ekledim:

  • Bind şifrelerini saklanırken şifreleyin. Gizli bilgileri önbelleğe asla düz metin (plaintext) olarak koymayın.
  • Kaydetmeden önce JSON alanlarını doğrulayın. Hatalı bir yapılandırma, kullanıcının erişimi engellendiğinde değil, kaydetme adımında başarısız olmalıdır.

Ayrıca hem bağlantıları test etmek hem de kaydetmek için tek bir assembler kullandım. Bu, test ettiğiniz bağlantının tam olarak kaydettiğiniz şey olmasını sağlar.

Mühendislik sadece özelliği inşa etmek değildir. Mühendislik, koruma bariyerlerini inşa etmektir.

Kaynak: https://dev.to/nasrulhazim/dev-log-2026-06-24-agent-guardrails-and-runtime-ldap-config-2hi5