Integração do WordPress MultiSite Active Directory e privacidade do site


19

Aqui está a visão geral da configuração:

  • Eu tenho uma instalação multisite do WordPress 3.4.2.
  • Instalei o plug-in de Integração de Autenticação do Active Directory para permitir que os usuários usem suas credenciais do AD. Isso também permite atribuir grupos do AD a cada site, para que os administradores do site não precisem atribuir permissões manualmente.
  • Eu instalei o plug-in de privacidade de rede , para que certos sites precisem estar conectados antes que você possa ver qualquer conteúdo. Usuários anônimos veem apenas a página de login.

Em muitos aspectos, essa configuração funciona. No entanto, estou com um problema que está me impedindo de distribuir isso para a instalação principal de vários sites do WordPress:

  • Bob é um membro do grupo "Suporte de TI" no AD.
  • Bob também é membro do grupo "Usuários do Domínio" no AD.
  • O site principal (www.mysite.com) está bloqueado para permitir apenas " Domain Users" os membros a entrar.
  • O subsite (www.mysite.com/itsupport) está bloqueado para permitir apenas " IT Support" os membros a entrar.
  • Bob visita www.mysite.com e é solicitado a autenticação. Ele insere suas credenciais do AD e é permitido no site.
  • Agora que ele está logado no site www.mysite.com, Bob clica no link para acessar o site www.mysite.com/itsupport e recebe um erro dizendo que ele não é um membro do site.
    • Parece que nenhuma entrada de usuário foi criada no banco de dados do WordPress para este subsite.
  • Bob sai do site www.mysite.com.
  • Agora que ele está desconectado, Bob vai diretamente para www.mysite.com/itsupport e solicita a autenticação. Ele insere suas credenciais do AD e é permitido no site.
    • Parece que a entrada do usuário no banco de dados WordPress é criada neste momento para este subsite.
  • Agora, se ele sair e entrar no site www.mysite.com, poderá acessar o site de suporte sem problemas.

Se eu excluir as entradas de usuário de Bob para os dois sites e desativar o plug-in de privacidade de rede, Bob poderá acessar o site www.mysite.com e, em seguida, acessar o site de suporte. Mas se eu excluir as entradas do usuário e reativar o plug-in de Privacidade da Rede, o problema reaparecerá.

Eu tive o mesmo problema com outro plug-in de privacidade, embora não me lembre qual.

Se você conseguir identificar o problema ou se tiver configurado algo semelhante, estou disposto a tentar qualquer coisa, desde que atenda aos critérios básicos do uso de grupos do AD e seja capaz de bloquear determinados sites.


Parece um conflito de caso de uso de plug-in / borda. Você verificou com o desenvolvedor do plugin se ele suporta bancos de dados de usuários externos?
Damien

Damien - Registrei itens de suporte nos fóruns dos dois plugins. Só estou vendo se consigo entender o cérebro daqueles que podem ter enfrentado algo semelhante antes. Não acredito que o plug-in de privacidade realmente precise saber sobre bancos de dados de usuários externos, ele só precisa permitir que o plug-in do AD faça o que quiser e adicione o usuário ao banco de dados interno do WordPress. Infelizmente, o plugin de privacidade parece estar atrapalhando isso.
Phil Erb

2
Como você conseguiu falar com isso? Estou pesquisando uma implementação semelhante para uma escola.
orionrush

1
Parece que o AD está devolvendo apenas o grupo atribuído a esse site - como em "Ei, este é o site de TI, então só vou verificar se a conta que está fazendo login é o grupo de TI e ignora o outros grupos ". Talvez veja se existe uma maneira de o AD se lembrar de todos os grupos aos quais um usuário pertence.
phatskat

1
Como uma pergunta de 4 anos pode estar no topo da resposta? Isso nem é mais relevante, pois os dois plug-ins vinculados estão obsoletos.
Athoxx 21/11

Respostas:


1

Tente uma abordagem diferente. Em vez de usar plug-ins, sugiro modificar o wordpress um pouco, conforme descrito na resposta a seguir.

/programming//a/39195424/3157038

Portanto, no seu caso, você deve configurar as instalações do wordpress assim:

  • mysite.com
    • raiz: * / domínios / mysite.com / public_html
    • db: user_mysite
    • prefixo da tabela: root_
  • mysite.com/itsupport
    • raiz: * / domínios / mysite.com / public_html / itsupport
    • db: user_mysite
    • prefixo da tabela: itsupport_

do que além da configuração dada na resposta à qual eu vinculei, adicione o seguinte aos arquivos wp-config de ambas as instalações do wordpress:

define( 'CUSTOM_USER_TABLE', 'mysite_users );
define( 'CUSTOM_USER_META_TABLE', 'mysite_usermeta' );

0

Se você tiver uma instalação em vários sites, mude o site de Suporte Técnico de TI para um subdomínio.

Você provavelmente está enfrentando uma incompatibilidade de login no cookie. Como está definido na raiz do domínio, é o mesmo para os dois sites. Portanto, se você configurar o support.example.com, deve ser mais claro que example.com/support

A menos que eu não entenda completamente, nesse caso, tente um plug-in diferente para restringir o conteúdo ao usuário e não execute isso como um subsite.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.