Chuyển tới nội dung chính
Version: 4.1

Nhiều tài khoản, một lần đăng nhập

Khách hàng là một người (hoặc một công ty) sở hữu nhiều tài khoản hosting, mỗi tài khoản có gói riêng. Người đó đăng nhập vào một tài khoản bất kỳ như bình thường và chuyển sang các tài khoản còn lại ngay trên thanh đầu trang, không cần tự đăng xuất rồi đăng nhập lại.

Khách hàng chỉ là một bản ghi nhóm các tài khoản. Nó không có mật khẩu riêng: mỗi tài khoản giữ mật khẩu, xác thực hai yếu tố, passkey và danh sách IP cho phép của mình.

Ai thiết lập​

Quản trị viên, hoặc reseller cho các tài khoản của chính mình, trong bảng quản trị tại Users > Customers, hoặc ở dòng lệnh:

hitechcloudcli customers create "Acme Ltd" --owner admin
hitechcloudcli customers link 3 acme1 acme2
hitechcloudcli customers show 3
hitechcloudcli customers unlink acme2
hitechcloudcli customers delete 3

Các quy tắc:

  • Khách hàng có một chủ sở hữu, là quản trị viên hoặc một reseller, và chỉ liên kết các tài khoản của chủ sở hữu đó. Reseller không bao giờ thấy hay liên kết tài khoản của reseller khác hay của quản trị viên.
  • Một tài khoản chỉ thuộc tối đa một khách hàng.
  • Xóa khách hàng, hoặc hủy liên kết một tài khoản, không làm thay đổi tài khoản. Xóa một tài khoản sẽ gỡ liên kết của nó.
  • Tài khoản đang liên kết với một khách hàng không thể chuyển sang chủ sở hữu khác cho đến khi được hủy liên kết.
  • Nếu một reseller bị xóa, các khách hàng của reseller đó vẫn còn trong danh sách cho đến khi quản trị viên xóa chúng.

Các thao tác này cũng có dưới dạng REST API trong bảng quản trị (mã API của quản trị viên hoặc của reseller, chỉ trong phạm vi khách hàng của chính reseller đó; mã của một tài khoản hosting bị từ chối). Mọi yêu cầu POST và DELETE đều được ghi vào nhật ký kiểm toán:

GET /api/customers[?owner=admin|<reseller>]danh sách
POST /api/customers {"name", "note", "owner"}tạo (201)
GET /api/customers/{id}khách hàng và các tài khoản của nó
DELETE /api/customers/{id}xóa; các tài khoản vẫn giữ nguyên
POST /api/customers/{id}/accounts {"accounts": [...]}liên kết
DELETE /api/customers/{id}/accounts/{username}hủy liên kết

Khách hàng của chủ sở hữu khác trả về 404, giống như khách hàng không tồn tại. Trang Users có thêm cột Khách hàng và bộ lọc theo khách hàng (hoặc Không thuộc khách hàng nào) ngay khi có một tài khoản được liên kết.

Chuyển tài khoản​

Khi tài khoản đăng nhập của bạn có nhiều hơn một tài khoản liên kết đang hoạt động bình thường, thanh đầu trang của panel hiển thị danh sách các tài khoản còn lại. Hãy chọn một tài khoản:

  1. Phiên của tài khoản bạn rời đi kết thúc.
  2. Tài khoản bạn vào được kiểm tra như khi đăng nhập: phải đang hoạt động bình thường, danh sách IP cho phép của nó phải chấp nhận địa chỉ của bạn, và nó không bị khóa do đăng nhập sai nhiều lần.
  3. Nếu tài khoản đó có xác thực hai yếu tố (ứng dụng xác thực hoặc mã qua e-mail), biểu mẫu đăng nhập hỏi mã của chính tài khoản đó, với các giới hạn như mọi lần đăng nhập.
  4. Panel mở ra với tư cách tài khoản đó, bằng một phiên bình thường.

Việc chuyển chỉ bỏ qua một thứ: mật khẩu của tài khoản bạn vào. Mọi thứ khác mà đăng nhập yêu cầu vẫn được yêu cầu.

Tài khoản đăng nhập chỉ có một tài khoản, hoặc các tài khoản liên kết khác đang bị tạm ngưng, không thấy ô chuyển và không có gì thay đổi.

Thành viên nhóm không thể chuyển tài khoản, quản trị viên đang đăng nhập với tư cách tài khoản từ bảng quản trị cũng không. Gói không có tính năng account thì không có ô chuyển tài khoản.

Những gì được ghi lại​

  • Mỗi lần chuyển, và mỗi lần bị từ chối, là một dòng trong /var/log/hitechcloud/user/actions.log với vai trò customer: tài khoản rời đi là người thực hiện, tài khoản được vào là đối tượng.
  • Nhật ký hoạt động của cả hai tài khoản đều ghi lại, và tài khoản được vào gửi thông báo đăng nhập mới như thường lệ.

Sao chép cơ sở dữ liệu sang tài khoản khác​

Biểu tượng bên cạnh ô chuyển mở trang Copy a database. Trang này sao chép, hoặc chuyển, một cơ sở dữ liệu của tài khoản bạn đang dùng sang tài khoản khác của cùng khách hàng:

  1. Nguồn luôn là tài khoản bạn đang dùng. Đích được chọn trong các tài khoản còn lại của khách hàng, không bao giờ gõ tay.
  2. Chọn cơ sở dữ liệu, tài khoản đích và, nếu muốn, phần đuôi của tên mới. Bản sao được đặt tên với tiền tố của tài khoản đích và thuộc về tài khoản đích.
  3. Để chuyển, chọn Move và đánh dấu ô xác nhận rằng cơ sở dữ liệu bị xóa khỏi nguồn sau khi sao chép xong. Nguồn chỉ bị xóa sau khi bản sao có đủ mọi bảng của bản gốc.

Việc sao chép chạy nền và trang hiển thị trạng thái. Thành viên nhóm và quản trị viên đang đăng nhập với tư cách tài khoản không dùng được trang này. Mỗi lần chạy là một dòng trong actions.log với vai trò customer, và một dòng trong nhật ký hoạt động của tài khoản. Dữ liệu được dump bằng thông tin đăng nhập cơ sở dữ liệu riêng của tài khoản nguồn và nạp bằng thông tin đăng nhập riêng của tài khoản đích, không bao giờ bằng root, và một cơ sở dữ liệu có bản dump chứa thứ gì khác ngoài các câu lệnh của chính nó (một USE, một GRANT, một tên thuộc cơ sở dữ liệu khác, một DEFINER của thông tin đăng nhập khác) bị từ chối trước khi tạo bất cứ gì.

Ở dòng lệnh, việc tương tự là:

hitechcloudcli customers db-copy 3 acme1_shop --from acme1 --to acme2 --move --confirm
hitechcloudcli customers db-copy-status c3-1792300000