Yetkilendirme, istemcinin sisteme erişimini sağlamaya bakarken, kimlik doğrulama, sisteme yetkilendirildikten sonra müşterinin MongoDB'de ne tür bir erişime sahip olduğunu kontrol eder.
Çeşitli kimlik doğrulama mekanizmaları vardır, bunlardan sadece birkaçı aşağıda verilmiştir.
X.509 Sertifikalarını kullanarak MongoDB Kimlik Doğrulaması
İstemcinin kimliğini doğrulamak için x.509 Sertifikalarını kullanın - Sertifika, temelde istemci ile MongoDB Sunucusu arasındaki güvenilir bir imzadır.
Bu nedenle, sunucuya bağlanmak için bir kullanıcı adı ve şifre girmek yerine, istemci ile MongoDB Sunucusu arasında bir sertifika iletilir. İstemci, temelde, sunucuda kimlik doğrulaması için sunucuya iletilecek bir istemci sertifikasına sahip olacaktır. Her bir istemci sertifikası, tek bir MongoDB kullanıcısına karşılık gelir. Bu nedenle, MongoDB'den her kullanıcının, MongoDB sunucusunda kimlik doğrulaması yapmak için kendi sertifikasına sahip olması gerekir.
Bunun çalıştığından emin olmak için aşağıdaki adımlar izlenmelidir;
- Geçerli bir sertifika, geçerli bir üçüncü taraf yetkiliden satın alınmalı ve MongoDB Sunucusuna kurulmalıdır.
- İstemci sertifikası aşağıdaki özelliklere sahip olmalıdır (Tek bir Sertifika Yetkilisi (CA) hem istemci hem de sunucu için sertifikaları vermelidir. İstemci sertifikaları şu alanları içermelidir - keyUsage ve extendedKeyUsage.
- MongDB Sunucusuna bağlanan her kullanıcının ayrı bir sertifikaya sahip olması gerekir.
Kerberos ile Mongodb Kimlik Doğrulaması
Adım 1) MongoDB'yi pencerelerde Kerberos Kimlik Doğrulaması ile yapılandırın - Kerberos, büyük istemci-sunucu ortamlarında kullanılan bir kimlik doğrulama mekanizmasıdır.
Çok güvenli bir mekanizmadır, burada parolaya yalnızca şifrelenmişse izin verilir. MongoDB, mevcut bir Kerberos tabanlı sisteme karşı doğrulama yapma olanağına sahiptir.
Adım 2) mongod.exe sunucu işlemini başlatın.
Adım 3) mongo.exe istemci işlemini başlatın ve MongoDB sunucusuna bağlanın.
Adım 4) $ external veritabanına temelde bir Kerberos ana adı olan MongoDB'ye bir kullanıcı ekleyin. $ External veritabanı, MongoDB'ye bu kullanıcıyı kendi dahili sistemi yerine bir Kerberos sistemine göre doğrulamasını söyleyen özel bir veritabanıdır.
use $externaldb.createUser({user: "This email address is being protected from spambots. You need JavaScript enabled to view it.",roles:[{role: "read" , db:"Marketing"}}]}
Adım 5) Aşağıdaki komutu kullanarak mongod.exe'yi Kerberos desteğiyle başlatın.
mongod.exe -auth -setParameter authenticationMechanisms=GSSAPI
Ve sonra artık Kerberos kullanıcısı ve Kerberos kimlik doğrulamasıyla veritabanına bağlanabilirsiniz.
Özet:
- Veritabanlarında daha iyi güvenlik sağlamak için çeşitli kimlik doğrulama mekanizmaları vardır. Kullanıcı adları ve parolalar yerine kullanıcıların kimliklerini doğrulamak için sertifikaların kullanılması buna bir örnektir.