Controle de Acesso TWiki
Restringindo acesso de leitura e escrita a tópicos e Webs por usuários e grupos
Visão Geral
TWikiAccessControl permite que você restrinja o acesso a tópicos individuais e a Webs inteiras por usuários individuais e por grupos de usuários em três áreas principais: view; edit & attach; e rename/move/delete. Estes controles, combinados com o
TWikiUserAuthentication?, permitem que você crie e gerencie facilmente um sistema de privilégio extremamente flexível e refinado.
Uma Consideração Importante Do Controle
Aberta, a edição do freeform é a essência do
WikiCulture - é o que faz TWiki diferente e frequentemente mais eficaz do que outras ferramentas da colaboração. Assim, recomenda-se fortemente que as decisões para restringir lêem ou escrevem o acesso a uma WEB ou um tópico seja feito com cuidado. A experiência mostra que _ irrestrito escreva trabalhos do acesso _ muito bem porque:
- Peer influence é suficiente para asegurar que somente é postado conteúdo relevante.
- Peer editing - a habilidade de rearranjar qualquer coisa em uma página - mantém tópicos focalizados.
- Todo o conteúdo é preservado sob um controle de revisão.
- Edições podem ser desfeitas pelo TWikiAdminGroup( o grupo padrão de administradores; veja #GerenciandoGrupos).
- Usuários são encouragados a editar e refactor (condensar um tópico grande), já que há uma rede segura.
Como padrão a seguir para colaboração:
- Criar grupos de acesso amplo (more and varied input), and...
- Evitar criar usuários de apenas leitura (se você pode ler, você pode contribuir).
Usuários e Grupos
O controle de acesso é baseado em usuários e grupos. Os usuários são definidos por seus
WikiNames, e então organizados em ilimitadas combinações sob diferentes grupos de usuários.
Gerenciando Usuários
Um usuário é criado pelo formulário
TWikiRegistration. O processo gera um tópico na Web Main com o
WikiName do novo usuário. O nome padrão do visitante é
TWikiGuest.
- Usuários podem se autenticar usando Autenticação Básica ou SSL. TWikiUserAuthentication? é necessária para rastrear identidades de usuários.
Gerenciando Grupos
Grupos são definidos por tópicos de grupos na Web
Main, como o
TWikiAdminGroup. Para iniciar um novo grupo:
- Crie um novo tópico com um nome que termine em Group,
SomeGroup
- Defina duas variáveis:
- Set GROUP = < lista de usuários e grupos >
- Set ALLOWTOPICCHANGE = < lista de usuários e grupos >
- GROUP é uma lista de usuários e grupos separada por vírgulas:
= Set GROUP = SomeUser?, OtherUser?, SomeOtherGroup?=
- ALLOWTOPICCHANGE define quem é autorizado a mudar o tópico do grupo; é uma lista de usuários e grupos delimitados por vírgulas. Você tipicamente deseja restringí-la aos membros do próprio grupo, portanto ele deveria conter o nome do tópico,
= Set ALLOWTOPICCHANGE = TWikiAdminGroup=
para o tópico TWikiAdminGroup?.(Isso previne que usuários não pertencentes ao grupo editem o tópico e ganhem sem autorização associação ao grupo.)
Restringindo Acesso a Escrita
Você pode definir quem tem permissão de fazer mudanças em uma Web ou um tópico.
Negando a permissão de edição de um tópico
Negar a permissão de edição de um tópico também restringe anexação de arquivos a esse tópico; os privilégios são designados juntos.
- Defina uma ou ambas as seguintes variáveis em um tópico, de preferência ao fim da página:
- Set DENYTOPICCHANGE = < lista de usuários e grupos >
- Set ALLOWTOPICCHANGE = < lista de usuários e grupos >
- DENYTOPICCHANGE define usuários ou grupos que não têm permissão de realizar mudanças no tópico. É uma lista de usuários e grupos delimitada por vírgulas. Exemplo:
= * Set DENYTOPICCHANGE = SomeBadBoy?, SomeBadGirl?, SomeHackerGroup?=
- ALLOWTOPICCHANGE define usuários ou grupos que têm permissão de realizar mudanças no tópico. É uma lista de usuários e grupos delimitados por vírgulas. Exemplo:
= * Set ALLOWTOPICCHANGE = SomeGoodGuy?, SomeGoodGirl?, TWikiAdminGroup=
- DENYTOPICCHANGE é avaliado antes de ALLOWTOPICCHANGE. O acesso é negado se a pessoa autenticada estiver na lista DENYTOPICCHANGE, ou não estiver na lista ALLOWTOPICCHANGE. O acesso é garantido caso DENYTOPICCHANGE e ALLOWTOPICCHANGE não estejam definidas.
Negando a permissão de edição de uma Web
Restringir a edição de uma Web inteira impede a criação de novos tópicos, a modificação de tópicos ou a anexação de arquivos para usuários sem permissão.
- Defina uma ou ambas as seguintes variáveis no tópico WebPreferences :
- Set DENYWEBCHANGE = < lista de usuários e grupos >
- Set ALLOWWEBCHANGE = < lista de usuários e grupos >
As mesmas regras se aplicam para a restrição de tópicos, com as seguintes adições:
Restringindo a renomeação de tópicos
Você pode definir quem tem permissão de renomear, mover ou excluir um tópico, ou renomear uma Web.
Negando a permissão de renomear tópicos
Para permitir que usuários renomeiem, movam ou excluam um tópico é necessário que eles tenham permissão de escrita. É também necessária permissão de escrita para mudar referências em consulta de tópicos.
- Defina uma ou ambas as seguintes variáveis em um tópico, de preferência ao fim do tópico:
- Set DENYTOPICRENAME = < lista de usuários e grupos >
- Set ALLOWTOPICRENAME = < lista de usuários e grupos >
- DENYTOPICCRENAME define usuários ou grupos que não têm permissão de renomear o tópico. É uma lista de usuários e grupos delimitada por vírgulas. Exemplo:
= * Set DENYTOPICRENAME = SomeBadBoy?, SomeBadGirl?, SomeHackerGroup?=
- ALLOWTOPICRENAME define usuários ou grupos que têm permissão de renomear o tópico. É uma lista de usuários e grupos delimitados por vírgulas. Exemplo:
= * Set ALLOWTOPICRENAME = SomeGoodGuy?, SomeGoodGirl?, TWikiAdminGroup=
- DENYTOPICRENAME é avaliado antes de ALLOWTOPICRENAME. O acesso é negado se a pessoa autenticada estiver na lista DENYTOPICRENAME, ou se não estiver na lista ALLOWTOPICRENAME. O acesso é assegurado caso DENYTOPICRENAME e ALLOWTOPICRENAME não estejam definidos.
Negando a permissão de renomear uma Web
Você pode definir restrições a quem é permitido renomear uma Web TWiki.
- Defina uma ou as duas variáveis no tópico WebPreferences:
- Set DENYWEBRENAME = < lista de usuários e grupos >
- Set ALLOWWEBRENAME = < lista de usuários e grupos >
As mesmas regras são aplicadas para tópicos, com as seguintes adições:
- DENYTOPICRENAME (no tópico) prevalece sobre DENYWEBRENAME (em WebPreferences)
- ALLOWTOPICRENAME (no tópico) prevalece sobre ALLOWWEBRENAME (em WebPreferences)
Restringindo acesso para leitura
Você pode definir quem tem permissão de ver uma Web TWiki.
- Defina uma ou ambas as seguintes variáveis no tópico WebPreferences :
- Set DENYWEBVIEW = < lista de usuários e grupos >
- Set ALLOWWEBVIEW = < lista de usuários e grupos >
Problemas conhecidos
- A restrição de acesso para leitura não é apropriada para um conteúdo muito suscetível, visto que há um meio de driblar a restrição de acesso a leitura.
- Restrição de acesso a leitura só funciona se o view script for autenticado, o que significa que o usuário também precisa logar para ler os tópicos. TWikiInstallationGuide fala mais de Autenticação Basica baseada no arquivo
.htaccess .
Selective Unrestricted Web Access
- Há um workaround caso você prefira ter acesso irrestrito a visualização de tópicos localizados em webs normais, e para autenticar usuários somente para webs onde a restrição de visualização é permitida:
- Omita o script
view do arquivo .htaccess.
- habilite a flag
$doRememberRemoteUser em lib/TWiki.cfg como descrito em TWikiUserAuthentication?. TWiki irá agora lembrar do endereço IP de um usuário autenticado.
- Copie o script
view para viewauth (ou melhor, crie um link simbólico)
- Adicione
viewauth à lista de scripts autenticados no arquivo .htaccess .
- Quando um usuário acessa uma Web onde você habilitou view restriction, TWiki irá redirecionar
view script para viewauth script (isso acontece apenas se o usuário nunca tiver editado um tópico). Fazendo isso, irá então pedir autenticação. O viewauth script mostra o tópico pedido se o usuário logar e for autorizado a ver aquela Web.
- Se você habilitar view restriction para uma Web,é recomendado restringir search "all webs" de pesquisar essa web. Habilite essa restrição com a variável
NOSEARCHALL em WebPreferences, como:
- Não é recomendado restringir acesso a visualização a tópicos individuais visto que todo o conteúdo é pesquisado na web.
Escondendo configurações de controle
-
para esconder o controle de acesso a configurações de uma visualização normal no navegador, coloque-o comentado.
The SuperAdminGroup?
Ao se colocar erroneamente um usuário ou grupo em ALLOWTOPICCHANGE , é possível que o tópico fique trancado, de maneira que ninguém pode editá-lo de um navegador. Para impedir que isso aconteça:
- Coloque na variável
$superAdminGroup em lib/TWiki.cfg o nome do grupo de usuários que sempre tem permissão de editar/visualizar tópicos.
$superAdminGroup = "TWikiAdminGroup";
- A configuração padrão é de não haver superusuários.
--
MikeMannix - 02 Dec 2001