Использование технологий WWW для доступа к базам данных

       

Управление доступом


Сервер NCSA содержит гибкие средства управления доступом. С их

помощью можно централизованно или децентрализованно управлять

доступом, основываясь на структуре адреса WWW - клиента, создавать

пары имя/пароль для документов или целых подразделов, создавать

несколько пар имя/пароль.

Управление доступом с использованием пар имя/пароль

Для введения ограничений на доступ ко всем документам определенного

каталога необходимо создать в этом каталоге файл управления доступом.

Этот файл имеет фиксированное имя, определяемое параметром AccessFileName

файла конфигурации доступа. По умолчанию,

это файл .htaccess.

Пример содержимого файла .htaccess

AuthUserFile /otherdir/.htpasswd

AuthGroupFile /dev/null

AuthName ByPassword



AuthType Basic

<Limit GET>

require user pumpkin

</Limit>

AuthUserFile указывает путь файла паролей, который

должен находиться вне данного каталога.

Limit GET ограничивает доступ по методу GET, предоставляя

его только пользователю pumpkin. Для ограничения других методов

доступа (например, в каталогах

CGI) используется перечисление всех методов:

<Limit GET POST PUT>

require user pumpkin

</Limit>

Для создания файла паролей необходимо воспользоваться утилитой

htpasswd, входящей в состав дистрибутива сервера:

htpasswd -c /otherdir/.htpasswd

pumpkin

После запуска она дважды запросит пароль для пользователя pumpkin

и создаст файл паролей /otherdir/.htpasswd.

Использование нескольких пар имя/пароль

Использование нескольких пар имя/пароль достигается путем описания

группы, в которую входят несколько

пользователей, и указания

имени группы в операторе Limit.

  • Необходимо создать несколько записей в файле паролей. Этого

    можно достичь, не указывая

    ключа -c (create) для htpasswd:

    htpasswd /otherdir/.htpasswd

    peanuts

    htpasswd /otherdir/.htpasswd

    almonds

    htpasswd /otherdir/.htpasswd

    walnuts

  • Создать файл описания группы, назвав его,

    например, /otherdir/.htgroup

    со следующим содержимым:


    my-users: pumpkin peanuts almonds

    walnuts



    где my-users - имя группы,

    pumpkin, peanuts, almonds,

    walnuts - список пользователей, входящих в группу.

  • Изменить файл .htaccess следующим образом:

    AuthUserFile /otherdir/.htpasswd

    AuthGroupFile /otherdir/.htgroup

    AuthName ByPassword

    AuthType Basic

    <Limit GET>

    require group my-users

    </Limit>

    Все документы данного каталога будут доступны всем членам группы

    my-users после проведения процедуры аутентификации

    (ввода пароля).

    Ограничение доступа по сетевому имени

    В этом случае управление доступом осуществляется на основе сравнения

    сетевого имени машины - клиента с заранее заданным образцом. Если

    выявится совпадение, начинают действовать специальные правила

    доступа.

    Пример ограничения доступа на чтение. Чтение разрешено всем пользователям

    машин домена cnit.nsu.ru:

    Содержимое файла .htaccess:

    AuthUserFile /dev/null

    AuthGroupFile /dev/null

    AuthName ExampleAllowFromCNIT

    AuthType Basic

    <Limit GET>

    order deny, allow

    deny from all

    allow from .cnit.nsu.ru

    </Limit>

    Оператор order указывает порядок определения требований к доступу:

    сначала ограничения, затем разрешения.

    deny from all - сначала запрещает доступ для всех,

    allow from .cnit.nsu.ru - затем разрешает доступ для машин

    домена cnit.nsu.ru.

    Оператор AuthName задает имя данного ограничения доступа - произвольную

    комбинацию букв и цифр.

    Пример запрета на доступ для всех машин домена nstu.nsk.su:

    Содержимое файла .htaccess:

    AuthUserFile /dev/null

    AuthGroupFile /dev/null

    AuthName ExampleAllowFromCNIT

    AuthType Basic

    <Limit GET>

    order allow, deny

    deny from .nstu.nsk.su

    allow from all

    </Limit>


    Содержание раздела