Forum
Merhaba Değerli hocalarım,
Php ile yapılmış local de çalışan bir panel var kullanıcıların case oluşturması için kullanacağım destek taleplerini buraya açacaklar, eskiden yeniye doğru sıralayacak, admin user çözüldü olarak güncelleyecek. Ancak AD ile bağlantısını yapamadık elimde yapay zekadan alınma bir kod var. Çözemedik. Sizin elinizde kolayca entegre edebilecegimiz bir kod var mı. Clinet user bilgileri ile bu panele login olması gerekiyor.
Ornek kod:
<?php
// Active Directory sunucu bilgileri
$ldaphost = "ad.domain.com"; // Örneğin: ad.mycompany.com
$ldapuser = "cn=username,ou=users,dc=domain,dc=com"; // Örneğin: cn=john.doe,ou=users,dc=domain,dc=com
$ldappass = "password123";
// Bağlantı kur
$ldapconn = ldap_connect($ldaphost);
// Bağlantı seçenekleri
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);
// Kullanıcı bağlama (bind) işlemi
$ldapbind = ldap_bind($ldapconn, $ldapuser, $ldappass);
if ($ldapbind) {
// Bağlantı başarılı
echo "Giriş başarılı!";
// Kullanıcı bilgileri alma (örnek)
$filter = "(sAMAccountName=$username)";
$result = ldap_search($ldapconn, "dc=domain,dc=com", $filter);
$entries = ldap_get_entries($ldapconn, $result);
if ($entries["count"] > 0) {
// Kullanıcı bulundu
echo "Kullanıcı adı: " . $entries[0]["samaccountname"][0] . "<br>";
echo "Adı: " . $entries[0]["givenname"][0] . "<br>";
echo "Soyadı: " . $entries[0]["sn"][0] . "<br>";
} else {
echo "Kullanıcı bulunamadı.";
}
} else {
// Bağlantı başarısız
echo "Giriş başarısız!";
}
// Bağlantıyı kapat
ldap_close($ldapconn);
?>
Merhaba, eğer open source ürünler kullanmak yerine kendinizi geliştirmek ve bu tür konularda ilerlemek istiyorsanız size önerim github copilot kullanmanız olacaktır.
What is GitHub Copilot? - GitHub Docs
Ben yazılımcı değilim malum, yazılımcı arkadaşlar eğer görür ise postu ve vakitleri olur ise tabi ki yardımcı olurlar. Bende copilot' a sordum ve bu cevabı aldım;
Öncelikle, kullanıcı adı ve şifre gibi hassas bilgileri doğrudan kodda tutmak yerine, çevresel değişkenler veya güvenli bir yapılandırma dosyası kullanmak daha güvenli olacaktır. Ayrıca, kullanıcı giriş bilgilerini doğruladıktan sonra oturum yönetimi eklemek de önemlidir.
Aşağıda, AD ile PHP entegrasyonu için geliştirilmiş bir örnek kod bulunmaktadır:
<?php // Active Directory sunucu bilgileri $ldaphost = getenv('LDAP_HOST'); // Örneğin: ad.mycompany.com $ldapuser = getenv('LDAP_USER'); // Örneğin: cn=john.doe,ou=users,dc=domain,dc=com $ldappass = getenv('LDAP_PASS'); // Bağlantı kur $ldapconn = ldap_connect($ldaphost); // Bağlantı seçenekleri ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0); if ($ldapconn) { // Kullanıcı bağlama (bind) işlemi $ldapbind = ldap_bind($ldapconn, $ldapuser, $ldappass); if ($ldapbind) { // Bağlantı başarılı echo "Giriş başarılı!"; // Kullanıcı bilgileri alma (örnek) $username = 'kullanici_adi'; // Kullanıcının giriş yaptığı kullanıcı adı $filter = "(sAMAccountName=$username)"; $result = ldap_search($ldapconn, "dc=domain,dc=com", $filter); $entries = ldap_get_entries($ldapconn, $result); if ($entries["count"] > 0) { // Kullanıcı bulundu echo "Kullanıcı adı: " . $entries["samaccountname"] . "<br>"; echo "Adı: " . $entries["givenname"] . "<br>"; echo "Soyadı: " . $entries["sn"] . "<br>"; } else { echo "Kullanıcı bulunamadı."; } } else { // Bağlantı başarısız echo "Giriş başarısız!"; } // Bağlantıyı kapat ldap_close($ldapconn); } else { echo "LDAP sunucusuna bağlanılamadı."; } ?>
Bu kodda, LDAP sunucu bilgilerini çevresel değişkenler aracılığıyla alıyoruz. Bu, güvenliği artırır ve hassas bilgilerin kodda saklanmasını önler. Ayrıca, kullanıcı adı değişkenini tanımlayarak, giriş yapan kullanıcının bilgilerini alıyoruz.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
@hakanuzuner Değerli yorum ve desteğiniz için teşekkür ederim hocam araştırıyorum hemen.
Kaynak kodları yayınlanıyor. Belki işinize yarar. bir inceleyin.