Khôi phục quyền truy cập từ dòng lệnh
Khi không ai sửa được một tài khoản trong ứng dụng, hãy đặt lại mật khẩu admin, xác thực hai lớp và gỡ khóa đăng nhập
từ máy chủ bằng các lệnh reputecast user. Các lệnh này làm việc trực tiếp với cơ sở dữ liệu, nên dùng được cả trước
khi kết nối bất kỳ nhà cung cấp gửi thư nào và khi mọi quản trị viên đều bị khóa ở ngoài.
Trước khi bắt đầu
Phần tiêu đề “Trước khi bắt đầu”- Quyền truy cập shell vào máy chủ chạy ReputeCast.
- Các lệnh cần cùng cấu hình với máy chủ, ít nhất là URL cơ sở dữ liệu:
- Docker Compose: chạy lệnh bên trong container ứng dụng đang chạy, vốn đã có sẵn môi trường:
docker compose exec app /usr/local/bin/reputecast user … - Tệp nhị phân: trước tiên hãy nạp môi trường mà dịch vụ dùng, ví dụ
set -a; . /etc/reputecast/env; set +a, rồi chạyreputecast user ….
- Docker Compose: chạy lệnh bên trong container ứng dụng đang chạy, vốn đã có sẵn môi trường:
- Email tài khoản của người cần khôi phục. Lệnh nào cũng nhận
--email.
Mỗi lệnh ghi một mục nhật ký kiểm tra với người thực hiện CLI (server). Các lệnh
thoát với mã 0 khi thành công, 2 khi dùng sai cú pháp (thiếu --reason, mật khẩu quá ngắn) và 1 với các lỗi
khác, chẳng hạn Error: no account for <email>.
| Tình huống | Lệnh |
|---|---|
| Quên mật khẩu | reputecast user reset-password --email <address> |
| Quên mật khẩu và không có cách nào gửi liên kết | reputecast user reset-password --email <address> --password … |
| Mất ứng dụng xác thực | reputecast user reset-2fa --email <address> --reason "…" |
| Bị khóa sau các lần đăng nhập thất bại | Xem gỡ khóa đăng nhập |
| Không còn quản trị viên hệ thống nào | reputecast user make-admin --email <address> |
Đặt lại mật khẩu bị quên
Phần tiêu đề “Đặt lại mật khẩu bị quên”-
In ra một liên kết đặt lại dùng một lần:
Terminal window Kết quả One-time password reset link for [email protected] (works once, until 12:39 UTC):https://reputecast.acme.io/reset-password/<token>Send it to them privately. Their current password keeps working until they use it.Liên kết dùng URL công khai đã lưu trong Quản trị hệ thống, rồi Hệ thống và cập nhật, hoặc
http.public_urlkhi chưa lưu URL nào. Tài khoản đã bị vô hiệu hóa sẽ bị từ chối:<email> is deactivated; reactivate the account first. -
Gửi liên kết cho người đó qua một kênh riêng tư. Liên kết chỉ dùng được một lần, trong 15 phút.
-
Họ mở liên kết và chọn mật khẩu mới. Chính sách mật khẩu của hệ thống được áp dụng (độ dài, dùng lại, kiểm tra mật khẩu bị lộ). Việc đặt mật khẩu sẽ đăng xuất mọi phiên và gỡ khóa đăng nhập; lần đăng nhập tiếp theo vẫn hỏi yếu tố xác thực thứ hai của họ.
Khi chưa có nhà cung cấp gửi thư nào gửi được trên luồng Hệ thống, liên kết Quên mật khẩu? trên trang đăng nhập sẽ hiển thị chính lệnh này thay vì gửi email.
Đặt mật khẩu trực tiếp
Phần tiêu đề “Đặt mật khẩu trực tiếp”Với --password, lệnh đặt mật khẩu ngay thay vì in ra liên kết:
docker compose exec app /usr/local/bin/reputecast user reset-password --email [email protected] --password 'a long passphrase here'Lệnh trả lời Password set for [email protected]. Every session was signed out. và hủy các liên kết đặt lại đang mở. Mật
khẩu phải đáp ứng auth.password_min_length trong cấu hình (mặc định 12 ký tự), chứ
không phải chính sách trong Quản trị hệ thống; mật khẩu ngắn hơn sẽ dừng với
Error: Use at least 12 characters. Passphrases are fine.
Gỡ ứng dụng xác thực bị mất
Phần tiêu đề “Gỡ ứng dụng xác thực bị mất”-
Xác nhận yêu cầu đến từ chính người đó, ví dụ qua một cuộc gọi, chứ không phải từ một email đề nghị làm việc này.
-
Gỡ ứng dụng xác thực của họ kèm một lý do; lý do này được ghi vào nhật ký kiểm tra:
Terminal window docker compose exec app /usr/local/bin/reputecast user reset-2fa --email [email protected] --reason "lost phone, verified by video call"Lệnh trả lời
Two-factor reset for [email protected]. They have 72 hours to set it up again.Nếu thiếu--reason, lệnh dừng vớiError: --reason is required; it's written to the audit log. -
Người đó đăng nhập bằng mật khẩu. Lệnh đã gỡ ứng dụng xác thực và mã khôi phục của họ, đồng thời đăng xuất các phiên; khóa truy cập vẫn giữ nguyên. Họ được yêu cầu thêm lại khóa truy cập hoặc ứng dụng xác thực, và phải làm việc đó trong vòng 72 giờ.
Người vẫn còn mã khôi phục thì không cần bước này: họ chọn tùy chọn mã khôi phục ở bước đăng nhập thứ hai. Trong ứng dụng, quản trị viên hệ thống có thể đặt lại tương tự bằng Quản trị hệ thống, rồi Người dùng, rồi ⋯ › Đặt lại xác thực hai lớp. Cách đó yêu cầu mật khẩu của quản trị viên, gửi thông báo cho người đó và dùng thời gian gia hạn của chính sách thay vì 72 giờ.
Gỡ khóa đăng nhập
Phần tiêu đề “Gỡ khóa đăng nhập”Sau quá nhiều lần nhập sai mật khẩu (mặc định 10 lần), đăng nhập cho email đó trả lời
Đăng nhập đã bị khóa sau quá nhiều lần thử. Hãy thử lại sau <time>, đặt lại mật khẩu hoặc dùng khóa truy cập.
- Trong ứng dụng: Quản trị hệ thống, rồi Người dùng, rồi ⋯ › Mở khóa đăng nhập gỡ khóa ngay lập tức.
- Bằng liên kết đặt lại: đặt mật khẩu mới qua một liên kết từ
reputecast user reset-passwordsẽ gỡ khóa. - Chờ hết thời gian khóa: khóa tự hết sau thời gian khóa (mặc định 15 phút).
reputecast user unlock --email <address> trả lời <email> can sign in again. và xóa bộ đếm số lần thất bại của tài
khoản. Ở phiên bản này, lệnh không gỡ khóa mà bước đăng nhập bằng mật khẩu kiểm tra trước tiên, nên đăng nhập bằng mật
khẩu vẫn bị khóa cho đến khi hết thời gian khóa. Hãy dùng một trong ba cách ở trên.
Cấp quyền quản trị viên hệ thống cho một người
Phần tiêu đề “Cấp quyền quản trị viên hệ thống cho một người”Lệnh trả lời [email protected] is now an instance admin. Lệnh này chỉ cấp cờ. Để thu hồi, hãy dùng
Quản trị hệ thống, rồi Người dùng, rồi ⋯ › Gỡ quyền quản trị hệ thống.
Kiểm tra kết quả
Phần tiêu đề “Kiểm tra kết quả”- Người đó đăng nhập được, hoặc mở được liên kết đặt lại trước khi liên kết hết hạn.
- Quản trị hệ thống, rồi Nhật ký kiểm tra liệt kê lệnh với người thực hiện CLI (server).
Khắc phục sự cố
Phần tiêu đề “Khắc phục sự cố”Error: no account for <email>: email không khớp với tài khoản nào. Các lệnh so khớp địa chỉ không phân biệt chữ hoa chữ thường; hãy kiểm tra lỗi gõ hoặc địa chỉ cũ.- Liên kết đặt lại trỏ đến
http://localhost:8080: chưa lưu URL công khai nào, vàhttp.public_urlđang ở giá trị mặc định. Hãy đặt URL công khai, hoặc thay host trong liên kết bằng địa chỉ mọi người vẫn dùng. - Lệnh không kết nối được cơ sở dữ liệu khi dùng tệp nhị phân: lệnh không có URL cơ sở dữ liệu của máy chủ nên quay
về giá trị mặc định
localhost:5432. Hãy nạp môi trường của dịch vụ trước. - Vẫn bị khóa sau
reputecast user unlock: đây là hành vi đã biết ở phiên bản này. Hãy dùng Mở khóa đăng nhập trong ứng dụng, một liên kết đặt lại, hoặc chờ khóa hết hạn.
Mặc định và giới hạn
Phần tiêu đề “Mặc định và giới hạn”| Thiết lập | Mặc định | Cách thay đổi |
|---|---|---|
| Thời hạn phiên | 14 days | Quản trị hệ thống › Xác thực; 1 ngày, 7 ngày, 14 ngày hoặc 30 ngày (API 1–2,160 giờ); áp dụng cho phiên mới |
| Thời gian chờ khi không hoạt động | 12 hours | Quản trị hệ thống › Xác thực; 1, 4, 12 hoặc 24 giờ (API 5–4,320 phút), không bao giờ dài hơn thời hạn phiên |
| Khóa đăng nhập sau các lần thất bại | 10 failed attempts for one email lock it for 15 minutes | Quản trị hệ thống › Xác thực; 3–100 lần thử, 5 phút, 15 phút hoặc 1 giờ (API 1–1,440 phút) |
| Bắt buộc xác thực hai lớp với | Members with a sensitive permission | Quản trị hệ thống › Xác thực; mọi người, thành viên có quyền nhạy cảm, hoặc tắt |
| Thời gian gia hạn để thiết lập xác thực hai lớp | 7 days | Quản trị hệ thống › Xác thực; không có, 1, 3, 7 hoặc 14 ngày (API 0–90) |
| Độ dài mật khẩu tối thiểu | 12 characters | Quản trị hệ thống › Xác thực, 8–128; mật khẩu có thể dài đến 256 ký tự |
| Dùng lại mật khẩu | The last 5 passwords are blocked | Quản trị hệ thống › Xác thực; chặn 5 mật khẩu gần nhất, chặn 10 mật khẩu gần nhất, hoặc cho phép dùng lại |
| Kiểm tra mật khẩu mới với các vụ lộ lọt dữ liệu đã biết | Off | Quản trị hệ thống › Xác thực |
| Tên miền email được phép cho tài khoản SSO mới | Up to 50 (none means any domain the identity provider allows) | Quản trị hệ thống › Xác thực |
| Liên kết đặt lại mật khẩu | Works once, for 15 minutes | Cố định |
Thời gian để thiết lập lại xác thực hai lớp sau reputecast user reset-2fa | 72 hours | Cố định; đặt lại trong Quản trị hệ thống › Người dùng dùng thời gian gia hạn của chính sách |
| Mã khôi phục | 10, each works once | Tài khoản và bảo mật › Tạo lại mã (thay toàn bộ) |
| Liên kết xác minh khi đổi email | 24 hours | Cố định |
| Thời gian để hoàn tất bước đăng nhập thứ hai | 10 minutes; 5 wrong codes restart the sign-in | Cố định |
Liên quan
Phần tiêu đề “Liên quan”- Quản trị hệ thống: các thao tác tương tự trong ứng dụng.
- Bảo mật tài khoản: mật khẩu, khóa truy cập, ứng dụng xác thực và mã khôi phục.
- Tham chiếu CLI: mọi lệnh và tùy chọn của
reputecast.