GNU/Linux >> Belajar Linux >  >> Linux

4 Langkah Openldap container Podman Easy

Pengantar

Mengapa OpenLDAP?

Proyek ini untuk menyalin kode sumber referensi LDAP. OpenLDAP adalah singkatan dari Lightweight Directory Access Protocol. LDAP adalah protokol aplikasi netral vendor yang memungkinkan Anda menilai dan memelihara layanan informasi direktori terdistribusi melalui ISP. Ada banyak cara berbeda untuk menyediakan direktori. Misalnya, menggunakan LDAP membantu Anda menyediakan tempat terpusat untuk menyimpan nama pengguna dan sandi.

Jadi, berbagai aplikasi dan layanan dapat terhubung ke server LDAP untuk memvalidasi pengguna. Server LDAP banyak digunakan di Organisasi untuk menyimpan nama Pengguna dan kata sandi di Server Terpusat di mana Pengguna dapat mengotentikasi lebih lanjut ke program dan layanan yang ada di jaringan. Selanjutnya, kami akan menggunakan paket Symas OpenLDAP untuk perintah pemeliharaan perangkat lunak standar asli sistem operasi Anda. OpenLDAP adalah kontributor utama dalam menulis 90% kode OpenLDAP. Lihat juga Tutorial OpenLdap di RHEL8 dan Dokumentasi OpenLDAP.

Pro OpenLDAP

Ini gratis. Mirip dengan Linux adalah open source. Protokol standar. Kedua, selain itu, mudah untuk mengikat otentikasi ke banyak aplikasi. Dapat disesuaikan dan ringan.

Kekurangan OpenLDAP

Akan lebih baik jika Anda melakukan persiapan. Selain infrastruktur Anda mendukung semua persyaratan. Kebijakan dan aturan keamanan berlaku. Jadi Database atau ActiveDirectory harus selalu menyimpan data. Semua atribut dan kebijakan akan rusak jika informasi saat ini tidak ada. Dengan asumsi Microsoft di wilayah Anda, berikan untuk OpenLDAP dengan Active Directory.

Dapatkan gambar OpenLDAP

#podman pull osixia/openldap:latest

Buat pod

Jangan lupa untuk menambahkan pemetaan port untuk kedua port 389 dan 636 jika Anda ingin mengakses server ldap dari komputer lain.

# podman pod create --name openldapapp -p 389:389 -p 636:636 --network bridge

Buat wadah openldap

Ini adalah perilaku default saat Anda menjalankan gambar ini. Ini akan membuat ldap terbuka untuk Unixcop.com. Dan domain example.com . Secara default, admin memiliki kata sandi admin . Semua pengaturan default tersebut dapat diubah di baris perintah buruh pelabuhan, misalnya:

podman run --pod openldapapp --name openldap-server --uts=private --hostname=openldap.example.com \
--env LDAP_ORGANISATION="My UnixCop" --env LDAP_DOMAIN="example.com" \ 
--env LDAP_ADMIN_PASSWORD="UnixCop@SoFreaky" --env LDAP_TLS=false \
--env LDAP_READONLY_USER=ldapuser01 --env LDAP_CONFIG_PASSWORD="UnixCop@SoFreaky" \ 
--env LDAP_READONLY_USER_PASSWORD="UnixCop@SoFreaky" \
--env LDAP_READONLY_USER_PASSWORD="UnixCop@SoFreaky" \ 
--env LDAP_BASE_DN="cn=admin,dc=example,dc=com" -d osixia/openldap:latest

Direktori /var/lib/ldap (file database LDAP) dan /etc/ldap/slapd.d (file konfigurasi LDAP) digunakan untuk menyimpan skema dan informasi data. Mereka harus dipetakan sebagai volume, sehingga file ldap Anda disimpan di luar wadah (gunakan database ldap yang ada). Namun, akan berguna untuk tidak menggunakan volume jika gambar harus mengirimkan gambar lengkap dengan data uji – ini sangat berguna saat menurunkan gambar lain dari gambar ini.

Gambar ini dapat memuat file ldif dan skema dari jalur internal saat startup. Selain itu, Anda dapat menyalin sertifikat dari direktori internal. Ini berguna jika layanan integrasi berkelanjutan secara otomatis memasang copy pekerjaan (sumber) ke dalam layanan buruh pelabuhan, yang terkait dengan pekerjaan ci.

Misalnya, GitLab tidak dapat memasang jalur khusus ke layanan buruh pelabuhan dari pekerjaan ci, tetapi Gitlab secara otomatis menskalakan salinan kerja di setiap wadah layanan. Jadi copy pekerjaan (sumber) dapat diakses di bawah /built-in setiap layanan pekerjaan ci. Direktori sertifikat dapat memperoleh jalur ke copy pekerjaan melalui ${CI_PROJECT_DIR}. Lihat juga:https://docs.gitlab.com/runner/executors/docker.html#build-directory-in-service

Ini juga dapat bekerja dengan layanan CI lain jika mereka secara otomatis memasang direktori kerja ke layanan pekerjaan ci seperti yang dilakukan Gitlab ci.

Untuk menyemai file ldif atau skema dari jalur internal, Anda harus menyetel variabel lingkungan tertentu LDAP_SEED_INTERNAL_LDIF_PATH dan LDAP_SEED_INTERNAL_SCHEMA_PATH. Jika dipilih, ini akan menyalin file apa pun di direktori yang ditentukan ke direktori penyemaian default gambar ini.

 LDAP_SEED_INTERNAL_LDAP_TLS_CRT_FILE: "${CI_PROJECT_DIR}/docker/certificates/certs/cert.pem"
 LDAP_SEED_INTERNAL_LDAP_TLS_KEY_FILE: "${CI_PROJECT_DIR}/docker/certificates/certs/key.pem"
 LDAP_SEED_INTERNAL_LDAP_TLS_CA_CRT_FILE: "${CI_PROJECT_DIR}/docker/certificates/ca/ca.pem"
 LDAP_SEED_INTERNAL_LDAP_TLS_DH_PARAM_FILE: "${CI_PROJECT_DIR}/certificates/dhparam.pem"

Tambahkan grup ke wadah openldap

# cat group.ldif
dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=othergroup,dc=example,dc=com
objectClass: organizationalUnit
ou: othergroup

Dapat dilakukan di dalam wadah

# podman exec -it openldap-server /bin/bash
/# ldapadd -x -W -D "cn=admin,dc=example,dc=com" -f /tmp/new-user.ldif -H ldap://openldap.example.com

Menambahkan pengguna ke wadah openldap

# cat new-user.ldif
dn: uid=ldapuser,ou=People,dc=example,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: adam
uid: adam
uidNumber: 16859
gidNumber: 100
homeDirectory: /home/ldapuser
loginShell: /bin/bash
gecos: ldapuser
userPassword: {crypt}x
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0

Linux
  1. Cara menginstal OpenLDAP Server di Debian atau Ubuntu

  2. Menjalankan Podman tanpa root sebagai pengguna non-root

  3. Menggunakan file dan perangkat dalam wadah tanpa akar Podman

  1. Mengapa Podman rootless tidak dapat menarik gambar saya?

  2. Pratinjau teknologi:Menjalankan wadah di dalam wadah

  3. Cara menggunakan Podman di dalam wadah

  1. Cara Menjalankan Nginx dalam Wadah Docker:Panduan Langkah demi Langkah

  2. Langkah demi Langkah Konfigurasi Server OpenLDAP pada CentOS 7 / RHEL 7

  3. perbedaan antara podman dan buruh pelabuhan.