Não existe uma boa maneira de um servidor desfazer a autenticação de um usuário que se logou via HTTP Basic Authentication (o método padrão do HTTP, usado pelo Zope mas não pelo Plone).
O motivo é que no protocolo HTTP não existe o conceito de sessão. Qualquer sistema Web que implementa sessões o faz se a ajuda do protocolo, em geral usando cookies ou identificadores de sessão apendados à URL. Quem gerencia o login no HTTP Básico é o navegador. É por isso, inclusive, que quem pede a senha é navegador (exibindo uma caixa de diálogo). Quando se usa algum mecanismo de sessão, a autenticação não é feita numa caixa de diálogo gerada pelo navegador, e sim num formulário HTML. No caso da autenticação básica, não existe uma forma 100% garantida do servidor dizer ao navegador para deixar de enviar a senha, o que simularia um "logoff". Esta situação simplesmente não é prevista no protocolo HTTP. Na autenticação por cookies, o servidor pode enviar uma mensagem para o browser deletar o cookie da sessão. Se a sessão é mantida via um identificador nas URLs, novamente o servidor tem controle, pois é ele que gera as URLs dos links que o navegador usa para navegar. Resumindo, se a sua aplicação exige que o usuário possa se deslogar facilmente, você será forçado a usar algum método de autenticação por sessão, como faz o Plone. [ ]s Luciano