mousey adalah aplikasi web yang menyediakan alat manajemen akun pengguna layanan mandiri untuk FreeIPA. Motivasi proyek ini adalah untuk mengimplementasikan fungsi pembuatan akun swalayan dan pengaturan ulang kata sandi yang tidak ada di FreeIPA. Fitur ini tidak disediakan secara default di FreeIPA, lihat di sini untuk info lebih lanjut dan alasan di balik keputusan ini. mokey bukanlah plugin FreeIPA melainkan aplikasi mandiri lengkap yang menggunakan API JSON FreeIPA. mokey tidak memerlukan perubahan pada skema LDAP yang mendasarinya dan menggunakan database MariaDB untuk menyimpan token akses. Pengalaman pengguna dan antarmuka web dapat disesuaikan agar sesuai dengan kebutuhan tampilan dan nuansa organisasi. mousey ditulis dalam Go dan dirilis di bawah lisensi BSD yang dimodifikasi.
mokey harus dianggap sebagai perangkat lunak alfa dan digunakan dengan risiko Anda sendiri. Ada risiko keamanan yang melekat dalam menyediakan fitur seperti pengaturan ulang kata sandi mandiri dan dapat membuat sistem Anda rentan terhadap penyalahgunaan.
Catatan: mousey perlu diinstal pada mesin yang sudah terdaftar di FreeIPA. Disarankan juga untuk menginstal paket ipa-admintools. Mendaftarkan host di FreeIPA berada di luar cakupan dokumen ini.
Untuk menginstal mocky, unduh salinan biner yang telah dikompilasi sebelumnya di sini.
arsip tar.gz:
$ tar xvzf mokey-VERSION-linux-x86_64.tar.gz
deb, paket rpm:
$ sudo dpkg -i mokey_VERSION_amd64.deb
$ sudo rpm -ivh mokey-VERSION-amd64.rpm
Buat akun pengguna dan peran di FreeIPA dengan hak istimewa "Ubah pengguna dan Setel ulang kata sandi". Akun pengguna ini akan digunakan oleh aplikasi mokey untuk mereset kata sandi pengguna. Izin "Ubah Pengguna" juga harus mengaktifkan "ipauserauthtype". Jalankan perintah berikut (memerlukan instalasi ipa-admintools):
$ mkdir /etc/mokey/private
$ kinit adminuser
$ ipa role-add 'Mokey User Manager' --desc='Mokey User management'
$ ipa role-add-privilege 'Mokey User Manager' --privilege='User Administrators'
$ ipa user-add mokeyapp --first Mokey --last App
$ ipa role-add-member 'Mokey User Manager' --users=mokeyapp
$ ipa permission-mod 'System: Modify Users' --includedattrs=ipauserauthtype
$ ipa-getkeytab -s [your.ipa-master.server] -p mokeyapp -k /etc/mokey/private/mokeyapp.keytab
$ chmod 640 /etc/mokey/private/mokeyapp.keytab
$ chgrp mokey /etc/mokey/private/mokeyapp.keytab
Edit file konfigurasi mousey dan setel jalur ke file keytab. Nilai untuk token_secret
dan csrf_secret
akan dibuat secara otomatis untuk Anda jika dibiarkan kosong. Tetapkan nilai rahasia ini jika Anda ingin sesi tetap ada setelah dimulai ulang. Untuk opsi konfigurasi khusus situs lainnya, lihat di sini:
$ vim /etc/mokey/mokey.toml
# Path to keytab file
keytab = "/etc/mokey/private/mokeyapp.keytab"
# Secret key for branca tokens. Must be 32 bytes. To generate run:
# openssl rand -hex 32
token_secret = ""
# CSRF token secret key. Should be a random string
csrf_secret = ""
Sangat disarankan untuk menjalankan mokey menggunakan HTTPS. Anda memerlukan sertifikat SSL/private_key baik menggunakan PKI FreeIPA, yang ditandatangani sendiri, atau dari otoritas sertifikat komersial. Membuat sertifikat SSL berada di luar cakupan dokumen ini. Anda juga dapat menjalankan mokey di belakang haproxy atau Apache/Nginx.
Mulai layanan mockey:
$ systemctl restart mokey
$ systemctl enable mokey
mockey memungkinkan pengguna untuk menambah/menghapus kunci publik ssh. Server yang terdaftar di FreeIPA dapat dikonfigurasi untuk memiliki kunci publik pengguna pencarian sshd di LDAP dengan menambahkan baris berikut di /etc/ssh/sshd_config dan memulai ulang sshd:
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
AuthorizedKeysCommandUser nobody
mokey mengimplementasikan alur login/persetujuan untuk menangani permintaan tantangan dari Hydra. Ini berfungsi sebagai jembatan antara Hydra dan penyedia identitas FreeIPA. Untuk informasi lebih lanjut tentang Hydra dan alur login/persetujuan lihat di sini.
Untuk mengonfigurasi alur login/persetujuan Hydra, atur variabel berikut di /etc/mokey/mokey.toml
:
[hydra]
admin_url = "http://127.0.0.1:4445"
login_timeout = 86400
fake_tls_termination = true
Setiap klien OAuth yang dikonfigurasi di Hydra akan diautentikasi melalui mocky menggunakan FreeIPA sebagai penyedia identitas. Untuk contoh aplikasi klien OAuth 2.0/OIDC lihat di sini.
Pertama, Anda memerlukan Go v1.21 atau lebih tinggi. Kloning repositori:
$ git clone https://github.com/ubccr/mokey
$ cd mokey
$ go build .
mocky dirilis di bawah lisensi gaya BSD. Lihat file LISENSI.