mokey เป็นเว็บแอปพลิเคชั่นที่ให้เครื่องมือการจัดการบัญชีผู้ใช้แบบบริการตนเองสำหรับ FreeIPA แรงจูงใจสำหรับโครงการนี้คือการใช้ฟังก์ชันการสร้างบัญชีแบบบริการตนเองและการรีเซ็ตรหัสผ่านที่ขาดหายไปใน FreeIPA คุณลักษณะนี้ไม่ได้ให้ไว้ตามค่าเริ่มต้นใน FreeIPA ดูที่นี่สำหรับข้อมูลเพิ่มเติมและเหตุผลเบื้องหลังการตัดสินใจนี้ mokey ไม่ใช่ปลั๊กอิน FreeIPA แต่เป็นแอปพลิเคชันสแตนด์อโลนที่สมบูรณ์ซึ่งใช้ FreeIPA JSON API mokey ไม่จำเป็นต้องเปลี่ยนแปลงสคีมา LDAP พื้นฐาน และใช้ฐานข้อมูล MariaDB เพื่อจัดเก็บโทเค็นการเข้าถึง ประสบการณ์ผู้ใช้และอินเทอร์เฟซเว็บสามารถปรับแต่งให้เหมาะกับความต้องการของรูปลักษณ์และความรู้สึกขององค์กรได้ mokey เขียนใน Go และเผยแพร่ภายใต้ใบอนุญาต BSD ที่ได้รับการแก้ไข
mokey ควรได้รับการพิจารณาว่าเป็นซอฟต์แวร์อัลฟ่าและใช้โดยยอมรับความเสี่ยงเอง การให้คุณสมบัติต่างๆ เช่น การรีเซ็ตรหัสผ่านด้วยตนเองมีความเสี่ยงด้านความปลอดภัยโดยธรรมชาติ และอาจทำให้ระบบของคุณเสี่ยงต่อการถูกละเมิด
หมายเหตุ: จำเป็นต้องติดตั้ง mokey บนเครื่องที่ลงทะเบียนใน FreeIPA แล้ว ขอแนะนำให้ติดตั้งแพ็คเกจ ipa-admintools ด้วย การลงทะเบียนโฮสต์ใน FreeIPA อยู่นอกขอบเขตของเอกสารนี้
หากต้องการติดตั้ง mokey ให้ดาวน์โหลดสำเนาของไบนารีที่คอมไพล์ไว้ล่วงหน้าที่นี่
ไฟล์เก็บถาวร tar.gz:
$ tar xvzf mokey-VERSION-linux-x86_64.tar.gz
deb, แพ็คเกจ rpm:
$ sudo dpkg -i mokey_VERSION_amd64.deb
$ sudo rpm -ivh mokey-VERSION-amd64.rpm
สร้างบัญชีผู้ใช้และบทบาทใน FreeIPA ด้วยสิทธิ์ "แก้ไขผู้ใช้และรีเซ็ตรหัสผ่าน" บัญชีผู้ใช้นี้จะถูกใช้โดยแอปพลิเคชัน mokey เพื่อรีเซ็ตรหัสผ่านของผู้ใช้ สิทธิ์ "แก้ไขผู้ใช้" จำเป็นต้องเปิดใช้งาน "ipauserauthtype" ด้วย รันคำสั่งต่อไปนี้ (ต้องติดตั้ง 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
แก้ไขไฟล์การกำหนดค่า mokey และกำหนดเส้นทางไปยังไฟล์ keytab ค่าสำหรับ token_secret
และ csrf_secret
จะถูกสร้างขึ้นให้คุณโดยอัตโนมัติหากเว้นว่างไว้ ตั้งค่าข้อมูลลับเหล่านี้หากคุณต้องการให้เซสชันคงอยู่หลังจากรีสตาร์ท สำหรับตัวเลือกการกำหนดค่าเฉพาะไซต์อื่นๆ โปรดดูที่นี่:
$ 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 = ""
ขอแนะนำอย่างยิ่งให้เรียกใช้ mokey โดยใช้ HTTPS คุณจะต้องมีใบรับรอง SSL/private_key โดยใช้ PKI ของ FreeIPA ลงนามด้วยตนเอง หรือจากผู้ออกใบรับรองเชิงพาณิชย์ การสร้างใบรับรอง SSL อยู่นอกขอบเขตของเอกสารนี้ คุณยังสามารถเรียกใช้ mokey หลัง haproxy หรือ Apache/Nginx ได้
เริ่มบริการ mokey:
$ systemctl restart mokey
$ systemctl enable mokey
mokey อนุญาตให้ผู้ใช้เพิ่ม/ลบคีย์สาธารณะ ssh เซิร์ฟเวอร์ที่ลงทะเบียนใน FreeIPA สามารถกำหนดค่าให้มีคีย์สาธารณะผู้ใช้การค้นหา sshd ใน LDAP โดยเพิ่มบรรทัดต่อไปนี้ใน /etc/ssh/sshd_config และรีสตาร์ท sshd:
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
AuthorizedKeysCommandUser nobody
mokey ใช้ขั้นตอนการเข้าสู่ระบบ/ยินยอมเพื่อจัดการคำขอท้าทายจาก Hydra สิ่งนี้ทำหน้าที่เป็นสะพานเชื่อมระหว่างผู้ให้บริการข้อมูลระบุตัวตน Hydra และ FreeIPA สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Hydra และขั้นตอนการเข้าสู่ระบบ/ยินยอม โปรดดูที่นี่
หากต้องการกำหนดค่าขั้นตอนการเข้าสู่ระบบ/ยินยอม Hydra ให้ตั้งค่าตัวแปรต่อไปนี้ใน /etc/mokey/mokey.toml
:
[hydra]
admin_url = "http://127.0.0.1:4445"
login_timeout = 86400
fake_tls_termination = true
ไคลเอนต์ OAuth ใด ๆ ที่กำหนดค่าใน Hydra จะได้รับการตรวจสอบสิทธิ์ผ่าน mokey โดยใช้ FreeIPA เป็นผู้ให้บริการข้อมูลระบุตัวตน สำหรับตัวอย่างแอปพลิเคชันไคลเอนต์ OAuth 2.0/OIDC ดูที่นี่
ขั้นแรก คุณจะต้องใช้ Go v1.21 หรือสูงกว่า โคลนที่เก็บ:
$ git clone https://github.com/ubccr/mokey
$ cd mokey
$ go build .
mokey เปิดตัวภายใต้ลิขสิทธิ์สไตล์ BSD ดูไฟล์ใบอนุญาต