2010-05-15 3 views
5

Где, когда и как создать учетную запись/пользователя администратора для частного веб-сайта?Учетная запись администратора: где, когда и как?

Так что я спрашиваю, что является предпочтительным методом для создания первой учетной записи/пользователя администратора. В моем случае это для частного веб-приложения. Я говорю об учетной записи/пользователе, который будет владеть приложением, и при необходимости создаст/продвинет других администраторов. Наверное, вы можете этого парня стать пользователем root?

Вот несколько способов, с которыми я столкнулся на других сайтах/веб-приложениях.

Мастер установки:
Вы видите это много в блоге программного обеспечения или форумах. Когда вы устанавливаете приложение, оно попросит вас создать пользователя-администратора. Частное web-приложение, скорее всего, не будет этого.

Монтажный файл:
Файл, который вы запускаете для установки приложения. Этот файл создаст для вас учетную запись администратора.

конфигурации файлов:
Файл конфигурации, который содержит учетные данные для учетной записи администратора.

вручную вставить его в базу данных:
вручную ввести данные администратора в базу данных.

+0

Укажите «вставить/создать учетную запись администратора». Непонятно, что именно вы хотите сделать. Ваши «несколько способов» все немного отличаются по существу. Вам нужно интегрировать часть администратора? Вам нужно вставить учетную запись администратора? Вам нужно прочитать учетные данные администратора? –

+0

Я отредактирую его сразу. – Pickels

+0

Вы не упоминаете еще один вариант, мой предпочтительный: задача грабли для посева приложения. – kikito

ответ

3

Когда:

На этапе самонастройки. Кто-то предложил seeds.rb. Я лично предпочитаю использовать жемчужину bootstrapper (с некоторыми дополнениями, которые позволяют мне разбирать файлы csv).

Это действие позволяет создать реки задачу, которая может быть вызвана как это:

rake db:bootstrap 

Это создаст первоначальный пользователя с правами администратора, а также любые данные высева (например, в списке стран, или формат блога по умолчанию и т. д.). Сценарий очень гибкий. Вы можете попросить пароль или принять пароль, если вам это нравится.

Как:

Во всех случаях я использую declarative_authorization для управления разрешениями пользователей.

Ваш администратор должен вернуть роль «admin» (или любое другое имя, которое вы выберете) в списке связанных с ней ролей. Обычно у меня есть одна роль для каждого пользователя, главным образом потому, что я могу использовать наследование роли (например, администраторы по умолчанию также являются редакторами). Это означает, что в моей базе данных у меня есть одно поле для пользователей, называемых «role_id». 0 обычно используется для роли администратора, так как он создан первым.

Где:

Специфический файл внутри дб/бутстрапе/users.rb (или YAML или CSV) определяет детали пользователя с ролью администратора активированной. Порядок rake db:boostrap анализирует этот файл и создает его соответствующим образом.

+0

Хороший ответ с дополнительной информацией. – Pickels

1

Я вижу, что вы отметили рубин на рельсах здесь. В RoR вы, вероятно, будете использовать файл seeds.rb под/your_app/db.

Если вы используете asp.net, я могу предположить, что вы используете MSSQL или, возможно, Oracle. Наличие хранимой процедуры, выполняемой как сценарий установки, может выполнять эту работу.

Я видел приложения php, используя файл install.php, который при запуске однажды устанавливает необходимые данные в базу данных и затем сообщает установщику удалить файл до того, как приложение запустится.

Так что есть три способа справиться с этим.

1

Если у вас есть учетные записи пользователей на вашем веб-сайте (и я вижу, что у вас есть), файл конфигурации с учетными данными администратора очень неудобен. Это решение заставляет вас дублировать большую часть логики аутентификации. Лучше сохранить учетную запись в базе данных.

Насколько я понимаю, вы готовите приложение для себя, не доставляя его своим клиентам. Подготовка мастера установки или файлов установки кажется пустой тратой времени.

Я бы сделал самый простой - только сырой вставкой. Плюсы: отсутствие дополнительной работы, такой же механизм аутентификации, как и для других пользователей. Если вы используете какие-то миграции баз данных, вы можете создать миграцию, которая создает учетную запись root с каким-то фиктивным паролем, который вы можете изменить позже.

+0

Замечание, которое вы сказали о мастере установки, очень верно. – Pickels

1

Мастер установки: - definitvely лучший подход. Чистый, надежный и удобный. Должен быть интегрирован с установщиком приложений.

Монтажный файл: - ОК, но только если у вас есть один и только сценарий для запуска. Имея больше -> проблемы и потенциальные недостатки безопасности (все люди, которые забывают удалить этот файл после ...)

Файлы конфигурации: Чтобы этого избежать. Вы требовательны пользователю знать PHP, Внутренности вашего приложения, может быть на стороне сервера конфигурации (все, что выше FTP может быть «трудным»)

вручную вставить его в базу данных: Для того, чтобы избежать * 2.

В дополнение , два последних решения невозможны, если вы используете хеширование паролей (т. е. md5 или sha1 с солью, специфичной для сайта), что сегодня является довольно долгом.

+0

Если вы работаете с OpenID, вы также можете сделать последние два, потому что вы не будете сохранять какие-либо пароли. – Pickels

+0

OpenID для администратора? Я не уверен, что это хорошая идея. –

+0

Вручную добавление администратора отлично работает, вы просто добавляете поле в каждую запись пользователя, определяя уровень привилегий, и настраиваете обычного пользователя на статус администратора, обновляя одно поле. До тех пор, пока у вас есть доступ к базе данных, вы полностью избегаете проблемы с паролем. – Drew

Смежные вопросы