terça-feira, 23 de maio de 2017

Instalar e configurar Spark e OpenFire com integração no AD do Windows utilizando SQL Server 2008 R2

ESCLARECIMENTO SOBRE ESTE POST(LEIA ANTES DE TUDO).
  1. Quando você tiver instalado e integrado ao AD o seu OpenFire, não existirá mais a necessidade de adicionar usuários e grupos manualmente dentro do Spark, a partir daí, você precisará apenas criar um usuário no AD e colocá-lo no grupo spark. Somente isso bastará para aparecerem listados todos os usuários no Spark de todos os clientes.
  2. Leia devagar e com atenção o passo a passo para a instalação até o 18º ítem que dará tudo certo, pois detalhei muito bem. Devagar, por favor.
  3. Logo após o passo a passo, eu marquei de vermelho todos os ítens que considero fundamentais para o pós-instalação, então por favor novamente, leia-os com atenção. Se surgiu alguma dúvida no meio do caminho, leia até o final porque talvez posso tratá-la mais abaixo.
Hoje vamos configurar um servidor de mensagens instantâneas no Windows de nome OpenFire. Bem, para quem está acostumado a utilizar o servidor de correio Zimbra que já possui o Jive rodando nativamente para a galera bater um papo sem ter de instalar nada no pc, bastando apenas estar logado no email pelo browser, esta não é a melhor a opção, mas para quem não tem Zimbra ou Notes ou sei lá o que que já tenha um servidor de mensagens instantâneas embutido, este carinha aqui até que pode ser legal para ser instalado numa empresa que não quer que seus funcionários fiquem utilizando o serviço mensageiro para bater papo com alguém na internet, mas fora isso acho chato porque temos que instalar o client Spark em todas as máquinas.
Pois é, na era em que quase tudo está nas “nuvens”, instalar algo no pc é chato, mas este carinha cumpre bem o seu papel e por isso, se for preciso formatar a máquina(uma coisa bem comum em ambiente Windows) e ter de instalar novamente o cliente mensageiro Spark em cada pc, quase sempre existirá aquele cidadão da TI que vai ter de configurar máquina por máquina novamente(fico triste por você meu caro).
Então, para não termos de dar ainda mais trabalho para o rapaz ou garota da TI(eu já vi uma mulher formatando uma máquina sendo ela a técnica de TI!), vamos integrar o nosso Spark ao AD e assim, sempre que for criar um novo usuário para utilizar o serviço mensageiro, não precisará mais abrir a área admin do OpenFire para nada, bastando apenas criá-lo no AD e colocá-lo no grupo do Spark, pronto acabou, é isso, já é!
1º – Instalaremos o arquivo executável do OpenFire(não importa a versão). Dê dois cliques e tudo next, next, next;
Arquivo executável do OpenFire
2º – Inicializaremos o executável do OpenFire para acessarmos o módulo administrador pelo browser. Clicaremos em Launch Admin para prosseguir;
Executável do Servidor do OpenFire
Executável do Servidor do OpenFire
3º – Ao clicamos em Launch Admin, para efetuarmos o acesso a página de configuração na Web do OpenFire, de cara, já teremos de configurar a linguagem de configuração;
Opção de instalação de linguagem no OpenFire
4º – Agora, configuraremos o nosso domínio, por mais que a orientação na interrogação diga que serve tanto para o nome do host, quanto para o ip do servidor que iremos instalar, mas como estamos integrando-o no AD, vamos colocar o nosso domínio aí. Quanto as portas, só convém mudar se já existir algum serviço as utilizando neste host;
OpenFire configuração de domínio
5º – Agora, a conexão com os dados no OpenFire poderá ser feita por um banco de dados externo ou interno, contudo vou deixar minha impressão a respeito do banco de dados interno.
Minha primeira instalação do OpenFire foi utilizando seu próprio banco de dados e não tive uma boa experiência porque ao terminar a instalação, simplesmente não consegui me logar na área administrativa do OpenFire por conta, julgo eu, de um bug. Pesquisei na net sobre isso e descobri que na versão 3.7.0 existia sim este bug, mas que nesta versão que estou instalando(3.7.1) já haviam corrigido, mas pelo que andei testando nesta, também não rolou. Ainda pesquisando na net, descobri um site que ensinava uma maneira de corrigir este bug após a instalação(http://red5guide.com/install_openfire_on_windows_server.html#openfirepassword), só que ao ler o guia, percebi que eu tinha que ter acesso a base de dados do OpenFire para dar um UPDATE em tabela de usuário e não achei muito simples ou possível fazer isso utilizando o banco de dados interno, por isso optei por utilizar um externo. Mas quero deixar claro que não significa que não irá funcionar utilizando o interno, mas este tutorial irá tratar especificamente de conexão com um externo.
Seguindo então na primeira opção, Conexão Padrão do Banco de Dados.
Conexão com banco de dados no OpenFire
6º – Aqui abaixo tenho a opção de escolher vários bancos, mas neste caso aqui, vai ser o Mr. Microsoft SQL Server mesmo.
Tipo de Banco de Dados
7º- (importante) E agora a configuração do bicho(bicho SQL Server). Entretanto, antes de tudo, crie um grupo no AD com o nome que desejar dentro de Users. Eu escolhi o nome spark para forçar quem for criar usuários no AD, lembrar que sempre devem acrescentar este grupo ao usuário. A criação do grupo é para ter a opção de controle de usuários que podem e não podem ter acesso para utilizar o Spark(cliente de mensagens local), enfim, se desejar segregá-lo, não acrescente este grupo ao usuário que você acha que não deve bater papo com ninguém.
Criação de Grupo no AD
8º – Criei um usuário no AD que é membro dos grupos Administrators, Domain Admins, Domains Users e claro, também o tornei membro do grupo spark. Fiz um usuário neste nível porque não quis misturar o usuário administrador do AD utilizado por usuários avançados com o específico deste sistema que estamos instalando, até porque ele será utilizado mais adiante algumas vezes.
Criação de Usuário Administrador de AD
9º – E para quem não manja muito de SQL Server, abaixo descrevo como criei o banco.
Para criar uma nova base de dados, dentro do gerenciador de banco de dados SQL Server Management Studio, clique com o botão direito em cima de Databases e em seguida, New Database. Dei o nome de SPARKDB para a database, coloquei o banco inicial com 40 megabytes(uns vão achar que é muito, mas deixei assim mesmo) e com Autogrowth ligado em 30%, que quer dizer que toda a vez em que ele atingir seu tamanho máximo(na primeira vez serão 40 megas), ele aumentará 30% deste tamanho automaticamente. Vale lembrar que estou me baseando numa base de dados de 200 usuários utilizando o Spark.
Criação do banco de dados
10º – Ainda dentro do SQL Server Management Studio, em Security, clique com o botão direito e em seguida New Login. Em Login Name, utilizei o mesmo nome do usuário do AD, openfire e marquei SQL Server Authenticationutilizando a mesma senha do usuário do AD para não me confundir depois, pois quando tentei com o do AD não consegui me logar no SQL Server.
Desmarquei todas as opções de verificações de senha.
E fiz uma alteração do default Database porque entendo que este usuário deve controlar apenas o seu banco, que no nosso caso é o SPARKDB.
Configuração de Usuário para conexão no SQL Server
11º – Na opção Server Role, marquei diskadmin para este usuário porque da última vez que não marquei, deu pau.
Regra do Servidor
12º – Em User Mapping, escolhi a base SPARKDB em específico e marquei db_owner para também colocar como dono daquele banco. E por último, cliquei em OK e a partir daí posso até fechar o SQL Server Management Studio.
User Mapping
13º – Até que enfim, voltei para este carinha aqui. No nosso caso escolhi o SQL Server, coloquei o usuário openfiredo banco de dados e alterei a linha da URL do Banco de Dados de:
jdbc:jtds:sqlserver://[host-name]/[database-name];appName=jive
para:
jdbc:jtds:sqlserver://nomeservidor:1433/SPARKDB;appName=jive
Repare que utilizei a porta do SQL Server que é 1433 junto com o nome do servidor.
Configuração do acesso da aplicação ao banco de dados
14º – Nesta tela escolhi a opção que utiliza LDAP porque quero me conectar no AD.
Openfire LDAP
15º – Bem, aqui tem que ser:
O Tipo de servidor tem que ser Active Directory;
Em Host, o nome do seu host. Vale lembrar que apesar de o ip também funcionar aqui(eu acho), uma pessoa que trabalha com AD me orientou colocar o nome do host mesmo.
Na Porta, deixe quietinho este 389 aí.
DN Base. Este cara você vai colocar desta forma: se seu domínio é aeroporto.cumbica, coloque dc=aeroporto,dc=cumbica;
DN Administrador: O nome daquele usuário que criamos, no caso o openfire(preferencialmente) com o seu domínio. Então ficaria assim:
openfire@aeroporto.cumbica
OBSERVAÇÃO(atualização em 17/12/2014): caso você não obtenha sucesso ao colocar o DN Administrador da forma como está descrito acima, tente usar desta forma:
CN=openfire,CN=users,DC=meudominio,DC=continuacao_do_nome_do_dominio
Ou seja:
CN=openfire,CN=users,DC=aeroporto,DC=cumbica
Configuração da Conexão com o AD
16º – Neste passo, onde está definido sAMAccountName deixei como está, só alterando apenas onde se encontra Configurações Avançadas > Filtro de Usuário de:
(&(objectCategory=person)(objectClass=user) (memberOf=CN=grupo_de_usuarios_do_ad_que_vao_utilizar_o_spark, CN=pasta_onde_esta_meu_usuario_admin_no_ad, DC=meu_dominio,DC=continuacao_do_nome_do_meu_dominio))
para:
(objectClass=organizationalPerson) (&(objectCategory=person)(objectClass=user) (memberOf=CN=grupo_de_usuarios_do_ad_que_vao_utilizar_o_spark, CN==pasta_onde_esta_meu_usuario_admin_no_ad, DC=meu_dominio,DC=continuacao_do_nome_do_meu_dominio))
Depois, só mando testar as configurações e se estiver tudo ok, é exibida para mim uma tela com o resultado do teste. No meu caso ele trouxe um usuário do AD de forma aleatória e deverá fazer isso com você também.
Mapeamento de usuário
Teste de Conexão com mapeamento de usuário
17º – Este cara aí abaixo, eu fui orientado para ignorá-lo e passar batido e foi isso o que fiz.
Mapeamento de Grupo
18º – Neste último passo, configuro a conta do administrador(Fui colocando vários usuários do AD que achei que deveriam ser admins do OpenFire).
Conta do Administrador
Pronto! Agora tente se logar no OpenFire com os usuários admins que você criou.
Já sabe, se der pau no login, utilize o procedimento do site abaixo. Claro, depois de ter parado e reiniciado tanto o serviço do aplicativo, quanto o pc que está instalado.
Para configurar os grupos do AD no seu OpenFire, clique no link abaixo.
Para aumentar a quantidade de memória do seu OpenFire caso note que o serviço esteja travando(isso acontece quando se tem muitos usuários logados).
Para rodar o OpenFire como serviço, siga os passos abaixo(peguei em um blog).
Quando você instala o OpenFire no Windows ele roda como uma aplicação e para ele rodar como serviço, você deve configurá-lo para isso.
Para instalar o serviço do OpenFire abra o pronpt de comandos e vá até o diretório de instalação e entre na pasta bin (%programfiles%openfirebin). Agora use os comandos abaixo para configurar o serviço.
openfire-service /install  Instala o serviço
openfire-service  /uninstall  Remove o serviço
openfire-service /start   Inicia o serviço
openfire-service /stop   Para o serviço
Use o /install e depois vá nos serviços do Windows e configure-o para iniciar automaticamente.
Para alterar as informações pessoais no client Spark.
Quando você se integra no AD, surge um pequeno incoveniente na hora de os usuários poderem alterar suas informações pessoais(nome, telefone, avatar, etc), pois tudo vem do Active Directory automaticamente a partir de então.
O usuário pode se deparar em sua tela com a mensagem abaixo ao tentar realizar qualquer alteração.
server does not support cards unable to save your vcard
Para resolver este pequeno problema, o 1º e o 2º passos são questionáveis e por isso, entendo que somente o 3º é necessário.
  1. Baixar o plugin LDAP Vcard(ldapvcardavatar.jar). Pelo que andei lendo, este plugin ainda está beta e em sua documentação ele diz para que você o utilize por sua conta e risco(depois que instalei e configurei, tive a certeza de ele é beta), mas acho que não temos muitas opções, não? Fui no endereço http://community.igniterealtime.org/docs/DOC-1350 e o baixei.
  2. Em seguida, instalei o “bicho” no servidor.

    Plugin LDAP Vcard para Openfire
    Plugin LDAP Vcard para Openfire
  3. Mas sinceramente, o plugin está em estado depreceated e por isso, você pode ir direto em em Propriedades do Sistema, que fica dentro de Gerenciamento do Servidor e alterar o parâmetro false para true do atributoldap.override.avatar.

    Propriedades do Sistema
    Propriedades do Sistema
Prós e Contras deste procedimento.
Prós:
  • Se você seguir os passos acima, ele realmente deixará que você altere seu avatar;
Contras:
  • Você só conseguirá alterar as informações de sua conta, caso altere o seu avatar e antes de clicar no botão Salvar, alterar o que você quiser e só depois salvar;
  • Mesmo que você altere as informações de sua conta, toda a vez em que você fizer um logout, o Spark irá carregar todas as informações do AD novamente, exceto o avatar.
É, mais contras do que prós né? Se quiser alterar mesmo as informações dos seus usuários Spark, altere no AD, reinicie o Openfire ou até o servidor do Openfire e torça(ou reze) para que ele leia as novas informações do seu AD e carregue nos grupos do Openfire.
Ah! Claro. Tem um cidadão(http://community.spiceworks.com/topic/211784-openfire-3-7-1-spark-ad-integrated-nickname-won-t-save-locally-vcard-only) que disse que se eu instalasse o plugin Client Control, eu poderia permitir que um usuário do Spark pudesse alterar os seus dados, mesmo logado no AD. Bem, para chegar neste controle, basta ir em Servidor > Gerenciamento de Cliente, mas sinceramente, não rolou. Se com alguém funfou, digam aí, belz?
Bom deixar também aqui um agradecimento a meu amigo Ricardo Peixoto que desmistificou os enigmas dos parâmetros do AD para mim, pois sem saber para que serviam aqueles tals de “DC”, “CN” e o funcionamento do AD em si, eu não teria conseguido montar este servidor.
AGORA, DUAS DICAS VALIOSAS QUE SÓ APRENDI NA PORRADA
  1. Caso seus usuários, mesmo estando no grupo específico para o Spark ainda assim não estiverem aparecendo na lista de pessoas do cliente Spark, você deve colocar o seu grupo principal sendo como Domain/Users, no Active Directory, feito isso, estes usuários irão aparecer na lista de usuários do Spark normalmente.
  2. Caso precise adicionar ou retirar administradores do OpenFire, o local correto para se fazer isso quando integrado no AD é Servidor > Gerenciamento do Servidor > Propriedades do Sistema > admin.authorizedJIDs e em seguida, editar esta propriedade.

Nenhum comentário:

Postar um comentário

Como mover senhas e favoritos entre Microsoft Edge Chromium

  Press  Win + R  keys to open up the  Run  dialog box. Type  %LocalAppData%\Microsoft\Edge\User Data  and press  enter . Move the  Default ...