2010-05-15 31 views
5

Ở đâu, khi nào và làm cách nào để tạo tài khoản/người dùng quản trị viên cho trang web riêng tư?Tài khoản quản trị viên: Ở đâu, khi nào và như thế nào?

Vì vậy, những gì tôi hỏi là kỹ thuật thích hợp nhất để tạo tài khoản/người dùng quản trị viên đầu tiên đó là gì. Trong trường hợp của tôi, nó dành cho một ứng dụng web riêng. Tôi đang nói về tài khoản/người dùng sẽ sở hữu ứng dụng và nếu cần, hãy tạo/quảng bá các quản trị viên khác. Tôi đoán bạn có thể anh chàng này là người dùng root?

Dưới đây là một số cách tôi gặp phải trong các trang web/ứng dụng web khác.

Hướng dẫn cài đặt:
Bạn thấy điều này rất nhiều trong phần mềm hoặc diễn đàn blog. Khi bạn cài đặt ứng dụng, nó sẽ yêu cầu bạn tạo một người dùng quản trị viên. Ứng dụng web riêng sẽ rất có thể không có điều này.

Tệp cài đặt:
Tệp bạn chạy để cài đặt ứng dụng của mình. Tệp này sẽ tạo tài khoản quản trị viên cho bạn.

Tệp cấu hình:
Tệp cấu hình chứa thông tin xác thực cho tài khoản quản trị viên.

Chèn thủ công nó vào cơ sở dữ liệu:
Chèn thông tin người quản trị vào cơ sở dữ liệu theo cách thủ công.

+0

Vui lòng xác định "chèn/tạo tài khoản quản trị viên". Không rõ chính xác bạn muốn làm gì. "Vài cách" của bạn hơi khác một chút. Bạn cần tích hợp một phần quản trị? Bạn cần phải chèn một tài khoản quản trị? Bạn cần đọc thông tin đăng nhập của quản trị viên? –

+0

Tôi sẽ chỉnh sửa ngay lập tức. – Pickels

+0

Bạn không đề cập đến một tùy chọn khác, tùy chọn của tôi: một công việc cào để gieo giống ứng dụng. – kikito

Trả lời

3

Thời gian:

Trên một giai đoạn bootstrapping. Ai đó đã đề xuất seed.rb. Cá nhân tôi thích sử dụng đá quý bootstrapper (với một số phần bổ sung cho phép tôi phân tích các tệp csv).

Hành động này cho phép bạn tạo một nhiệm vụ cào mà có thể được gọi như thế này:

rake db:bootstrap 

này sẽ tạo người dùng quản trị ban đầu, cũng như bất kỳ dữ liệu seeding (chẳng hạn như danh sách các nước, hoặc định dạng blog mặc định, v.v.) Kịch bản rất linh hoạt. Bạn có thể yêu cầu mật khẩu hoặc chấp nhận thông số mật khẩu nếu bạn muốn.

Làm thế nào:

Trong mọi trường hợp tôi sử dụng declarative_authorization để quản lý quyền người dùng.

Người dùng quản trị viên của bạn phải trả lại vai trò có tên là 'quản trị viên' (hoặc bất kỳ tên nào bạn chọn) trên danh sách các vai trò gắn liền với nó. Tôi thường có 1 vai trò duy nhất cho mỗi người dùng, chủ yếu là vì tôi có thể sử dụng vai trò thừa kế (ví dụ: quản trị viên cũng là người chỉnh sửa theo mặc định). Điều này có nghĩa là trên cơ sở dữ liệu của tôi, tôi có một trường duy nhất cho người dùng được gọi là "role_id". 0 thường dành cho vai trò quản trị, vì đó là vai trò đầu tiên được tạo.

đâu:

Một tập tin cụ thể bên trong db/bootstrap/users.rb (hoặc yaml hoặc csv) quy định cụ thể các chi tiết của một người sử dụng với vai trò quản trị kích hoạt. Thứ tự rake db:boostrap phân tích cú pháp tệp đó và tạo người dùng tương ứng.

+0

Câu trả lời hay với thông tin bổ sung. – Pickels

1

Tôi thấy bạn đã gắn thẻ ruby ​​trên đường ray tại đây. Trong RoR, bạn có thể sử dụng tệp seed.rb trong/your_app/db.

Nếu bạn đang sử dụng asp.net, tôi có thể giả sử bạn đang sử dụng MSSQL hoặc có thể là Oracle. Việc có một proc được lưu trữ chạy dưới dạng tập lệnh cài đặt có thể thực hiện công việc.

Tôi đã thấy ứng dụng php sử dụng tệp install.php khi chạy sau khi cài đặt dữ liệu cần thiết vào cơ sở dữ liệu và sau đó yêu cầu trình cài đặt xóa tệp trước khi ứng dụng chạy.

Vì vậy, có ba cách để giải quyết vấn đề này.

1

Nếu bạn có tài khoản người dùng trên trang web của mình (và tôi thấy bạn có chúng), tệp cấu hình với thông tin đăng nhập của quản trị viên rất khó xử. Giải pháp này buộc bạn phải sao chép một phần lớn của logic xác thực. Giữ tài khoản trong cơ sở dữ liệu tốt hơn.

Tôi hiểu rằng bạn đang chuẩn bị đơn đăng ký cho chính mình, không phân phối cho khách hàng của bạn. Chuẩn bị trình hướng dẫn cài đặt hoặc tệp cài đặt dường như lãng phí thời gian.

Tôi sẽ làm đơn giản nhất - chỉ chèn thô. Ưu điểm: không có thêm công việc, cơ chế xác thực giống như đối với những người dùng khác. Nếu bạn đang sử dụng một số loại di chuyển cơ sở dữ liệu, bạn có thể tạo di chuyển tạo tài khoản gốc bằng một số mật khẩu giả mà bạn có thể thay đổi sau này.

+0

Nhận xét bạn đã nói về trình hướng dẫn cài đặt rất đúng. – Pickels

1

Hướng dẫn cài đặt: - chắc chắn là cách tiếp cận tốt nhất. Sạch sẽ, chắc chắn và thân thiện với người dùng. Nên được tích hợp với trình cài đặt ứng dụng.

Tệp cài đặt: - ok, nhưng chỉ khi bạn có một và chỉ tập lệnh để chạy. Có nhiều hơn -> vấn đề và lỗ hổng bảo mật tiềm ẩn (tất cả những người quên xóa tập tin này sau khi ...)

Tệp cấu hình: Để tránh. Bạn đang đòi hỏi người sử dụng phải biết PHP, bên trong của ứng dụng của bạn, có thể cấu hình phía máy chủ (bất cứ điều gì trên ftp có thể được "khó khăn")

thủ chèn nó vào một cơ sở dữ liệu: Để tránh * 2.

Ngoài , hai giải pháp cuối cùng là không thể nếu bạn đang sử dụng băm mật khẩu (ví dụ: md5 hoặc sha1 với muối cụ thể của trang web) - đó là một nghĩa vụ khá ngày nay.

+0

Nếu bạn làm việc với OpenID, bạn cũng có thể làm điều cuối cùng vì bạn sẽ không lưu bất kỳ mật khẩu nào. – Pickels

+0

OpenID dành cho quản trị viên? Tôi không chắc liệu đó có phải là ý tưởng hay không –

+0

Chèn thủ công quản trị viên hoàn toàn có thể thực hiện được, bạn chỉ cần thêm trường vào mỗi bản ghi người dùng chỉ định cấp đặc quyền của họ và điều chỉnh người dùng thông thường thành trạng thái quản trị bằng cách cập nhật một trường. Miễn là bạn có quyền truy cập cơ sở dữ liệu, bạn hoàn toàn tránh được vấn đề về mật khẩu của mình. – Drew

Các vấn đề liên quan