Я смотрю на портирование веб-сайта в CouchDB, и это выглядит очень интересно.
Однако большая проблема заключается в том, что CouchDB не поддерживает аутентификацию чтения; все документы в базе данных доступны всем читателям.
в другом месте предлагается использовать разные базы данных для разных групп читателей или внедрить аутентификацию читателей на другом (среднем) уровне, ни один из которых не является вариантом для этого проекта, где доступ определяется сложным для каждого документа списки контроля доступа.
Я думал реализовать аутентификацию в списках и ограничить весь доступ к CouchDb этими списками. Это ограничение может быть применено с помощью простых предложений mod_rewrite в Apache, используемых в качестве обратного прокси-сервера. Списки просто извлекают строку и проверяют userCtx по ACL документа. Что-то вроде:
function(head, req) {
var row;
while (row = getRow()) {
if (row.value.ACL[req.userCtx.name])
send(row.value);
else
throw({unauthorized : "You are not allowed to access this resource"});
}
Поскольку у меня нет опыта работы с CouchDB, и я нигде не читал об этом подходе, я хотел бы знать, может ли этот подход работать.
Это способ реализовать доступ на чтение или я злоупотребляю списками для неправильной цели? Не стоит ли ожидать, что такое простое решение возможно с CouchDB?