Forum

Active directory ph...
 
Bildirimler
Hepsini Temizle

[Çözüldü] Active directory php baglantisi hakkında

5 Yazılar
4 Üyeler
1 Reactions
88 Görüntüleme
(@volkancamur)
Gönderiler: 35
Eminent Member
Konu başlatıcı
 

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);
?>

Bu konu 4 gün önce Hakan Uzuner tarafından düzenlendi
 
Gönderildi : 07/12/2024 13:10

Hakan Uzuner
(@hakanuzuner)
Gönderiler: 33352
Illustrious Member Yönetici
 

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.
*****************************************************************

 
Gönderildi : 08/12/2024 23:25

(@volkancamur)
Gönderiler: 35
Eminent Member
Konu başlatıcı
 

@hakanuzuner Değerli yorum ve desteğiniz için teşekkür ederim hocam araştırıyorum hemen.

 
Gönderildi : 09/12/2024 09:22

(@serkanates)
Gönderiler: 1321
Üye

(@resulsoydas)
Gönderiler: 1660
Noble Member
 

Kaynak kodları yayınlanıyor. Belki işinize yarar. bir inceleyin.

https://github.com/pwm-project/pwm

 
Gönderildi : 11/12/2024 17:13
Hakan Uzuner reacted

Paylaş: