quarta-feira, 1 de outubro de 2014

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 AdministratorsDomain AdminsDomains 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

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.
Fonte: mastigado.wordpress.com

5 comentários:

  1. Ja fiz quase tudo nessa parte mapeamento de usuario e nada deu certo...

    ja coloquei de todos os jeitos....
    segue meu dc com os usuarios, qualquer uma me ajudaria....
    se puder me ajudar
    CN=openfire,OU=Grupos,OU=TI,OU=Betim,DC=dominio
    CN=Administrator,OU=Usuarios,OU=TI,OU=Betim,DC=dominio

    ResponderExcluir
  2. ola boa tarde a partir do passo 15 passo não consegui fiz o passo a passo umas 3 vezes e nao obtive exodo, alguem pode me ajudar?

    ResponderExcluir
  3. Este comentário foi removido pelo autor.

    ResponderExcluir
  4. Este comentário foi removido pelo autor.

    ResponderExcluir