*** Atenção: chapéu de IT Professional/Administrador de Redes/Cara de Infra na cabeça. Vamos em frente! ***
Na Lambda3 colocamos quase todos nossos serviços na nuvem. Servidores de ALM, hospedagem de blog, site, controle de projetos, CRM, email, portal, etc. Basicamente o que fica nos nossos sevidores internos são servidores de diretório (Active Directory, no caso) e Firewalls. Faz sentido, a empresa é nova, pra que nascer com algo que pode ser muito mais bem gerenciado por um terceiro na nuvem e mais barato. Pagamos para terceirizar o que não é nosso core business.
Nosso e-mail está com a Microsoft, usamos o serviço do Office 365, com uma conta Enterprise, que nos dá direito inclusive a licenças de Office Pro Plus 2013. Junto nessa conta recebemos ainda um portal do Sharepoint, que vem com Word Web App, Excel Web App, além de Wiki, que usamos bastante. Com o serviço do Office 365 as pessoas da Lambda3 ganharam um endereço de email tipo [email protected]. No entanto, o tal fulaninho tem também um login na rede da Lambda3, com o mesmo e-mail. Assim, ele tinha duas senhas: uma para a rede da Lambda3, outra para o e-mail, portal, wiki, etc.
O legal é que a Microsoft oferece uma maneira de você expor a autenticação dos usuários na internet, usando o Active Directory, e padrões abertos. É o Active Directory Federation Services (ADFS). Com o ADFS expomos um Secure Token Service (STS) que faz o trabalho de autenticação, e redireciona a pessoa para o site original, além de responder a chamadas de serviços (web services). Aqui nesse documento mostra como o ADFS.
E mais legal ainda é que eles implementaram suporte a um STS no Office 365. Assim, retiramos a senha dos usuários do Office 365, e o usuário ele é redirecionado para o STS da Lambda3, que o autentica e o devolve para o site do Office 365 que ele está tentando acessar (portal, webmail, etc). Os serviços do Office 365, como por exemplo, Exchange (que hospeda os emails e sincroniza com o Outlook e client de email de celular e Windows 8), também falam com o STS. Temos o single sign on funcionando.
Além disso, habilitaram a sincronização dos usuários do AD no Office 365. Assim, posso subir todos os usuários da rede Lambda3 para o Office 365, e qualquer mudança (nome, sobrenome, telefone, etc) reflete de imediato.
Passei umas 12 horas arrumando esse ambiente (temos 30 pessoas na Lambda3 mais ou menos). Não foi exatamente rápido, já que tive que aprender como se fazia pra configurar tudo, inclusive nosso firewall, mas posso dizer que gastei umas 4 horas só sincronizando as contas. Se 2 contas são iguais (o mesmo usuário, mesmo e-mail) mas os dados diferem (nome, sobrenome, nome completo e e-mail), ele não sincroniza. Tive que arrumar tudo na mão, porque ainda não há uma maneira mais inteligente de fazer (imagino que isso deve ir melhorando com o tempo).
Como os protocolos usados são padrões, imagino que poderei começar a usar o single sign on unificado com qualquer serviço que suporte os serviços, baseados em SAML.
Mas ao final tudo funcionou. O resultado pode ser visto em diversos lugares. Por exemplo, aqui é o site do Office 365. Ele pode ser acessado via http://portal.microsoftonline.com.br:
A administração é feita também via Windows Azure Directory, que ainda está em preview, acessível via https://activedirectory.windowsazure.com. Imagino que em algum momento essa interface vai para dentro do portal do Azure. Por enquanto não nenhuma feature nova, fora uma interface gráfica mais amigável. Notem a sincronização e o single sign on estão habilitados:
Os usuários listados. Notem que os usuários listados como “In Cloud” não estão no AD da Lambda3, e os que estão “Synced with active directory” estão na nuvem e na Lambda3:
Não podemos alterar os dados de um usuário sincronizado, isso é feito diretamente no nosso AD, e depois sincronizado.
Podemos atribuir a um usuário (sincronizado ou não) uma licença do Office 365, que lhe dá acesso a email, Office Pro, Exchange, etc.
Aqui um gif animado mostrando o login (clique para ampliar):
Gostei muito do resultado final. Vamos continuar investindo no uso de serviços em nuvem. Poupam muito nosso tempo tendo que administrar tudo isso.
Giovanni Bassi
Arquiteto e desenvolvedor, agilista, escalador, provocador. É fundador e CSA da Lambda3. Programa porque gosta. Acredita que pessoas autogerenciadas funcionam melhor e por acreditar que heterarquia é mais eficiente que hierarquia. Foi reconhecido Microsoft MVP há mais de dez anos, dos mais de vinte que atua no mercado. Já palestrou sobre .NET, Rust, microsserviços, JavaScript, TypeScript, Ruby, Node.js, Frontend e Backend, Agile, etc, no Brasil, e no exterior. Liderou grupos de usuários em assuntos como arquitetura de software, Docker, e .NET.