Bunu başka bir foruma göndermem gerektiğini düşünmeden önce - bu Windows işletim sistemi ile ilgili bir soru, programlama değil.
Kerberos üzerinden kullanıcının yetkilendirmesi gereken intranet web sitesi oluşturuyorum. Araştırma günlerinden sonra bunun için PHP'yi kullanmanın gerçekten en iyi yol olmadığını ve başka bir çözüm bulmam gerektiğini düşünüyorum. Bu yüzden, gerçekten işe yarayan bu fikre sahibim: Benim için çalışmak için .NET Framework'ü kullanmak için bilgilerimi C # ile kullanabilirim. Bu yüzden (şimdilik) Kerberos'u kullanıcı kimlik bilgilerini kontrol etmek için kullanan küçük bir uygulama yazdım. Geri dönüş kodunu kontrol etmek için PHP'den uygulama çalıştırdım:
MyApplication.exe kullanıcı_adı şifre1!
(yakın bir gelecekte komut satırından daha fazla bilgi alacaktır)
Yetki kontrolüne dayalı kod döndürür, böylece PHP uygulamam başarılı olup olmadığını bilir. Kerberos yetkilendirmesi şifreli (bu .NET ile süper kolaydı), bu yüzden "bir taşla iki kuş" var. Tabii ki, tüm süreç daha karmaşık, bu yüzden kullanıcı oturum açtığında her seferinde kullanmama gerek kalmıyor, ama burada mesele bu değil.
Sorular soruyorum, çünkü yararlı bir şeyler öğrenebilirim ve emin olmak istiyorum:
Bu yaklaşım gerçekten güvenli mi? Komut satırına geçirdiğim şifreyi kimse alabilir mi? Bir yere kaydedilebilir mi? Ve eğer evet - bunu önleyebilir miyim? Bu güvenli değilse - kimlik bilgilerini daha güvenli bir şekilde iletebilir miyim?
Bu gerçekten sadece bir soru "Bu güvenli mi?" ama sana ne istediğime dair bir fikir vermek istiyorum. İyi bir fikir olduğundan emin olmadıkça bu konuda fazla ileri gitmek istemiyorum. Ayrıca, şimdiye kadar her şey mükemmel çalışıyor.
Apache sunucusunu MySQL veritabanıyla birlikte Windows Server'da kullanıyorum (muhtemelen MSSQL Express olarak değişecektir).
[DÜZENLE] Kullandığımı belirtmeliyim exec () PHP'de komut. Bir şekilde Apache hizmetinin başlatılması / çalıştırılması arasında bir iletişim kurabilecek misiniz? MyApplication.exe , çünkü parola bir kereye mahsus yalnızca orada düz metin olarak geçirilir.