Sign-On único (criando aplicativos de nuvem Real-World com o Azure)

por Rick Anderson, Tom Dykstra

Baixar Corrigir Projeto ou Baixar Livro Eletrônico

O livro eletrônico Building Real World Cloud Apps with Azure é baseado em uma apresentação desenvolvida por Scott Guthrie. Ele explica 13 padrões e práticas que podem ajudá-lo a desenvolver aplicativos Web para a nuvem com êxito. Para obter informações sobre o livro eletrônico, consulte o primeiro capítulo.

Há muitos problemas de segurança para pensar quando você está desenvolvendo um aplicativo de nuvem, mas para esta série vamos nos concentrar em apenas um: logon único. Uma pergunta que as pessoas costumam fazer é a seguinte: "Estou criando principalmente aplicativos para os funcionários da minha empresa; como hospedar esses aplicativos na nuvem e ainda permitir que eles usem o mesmo modelo de segurança que meus funcionários conhecem e usam no ambiente local quando estão executando aplicativos hospedados dentro do firewall?" Uma das maneiras pelas quais habilitamos esse cenário é chamada de Azure Active Directory (Azure AD). Azure AD permite disponibilizar aplicativos lob (linha de negócios) corporativos pela Internet e permite que você disponibilize esses aplicativos também para parceiros de negócios.

Introdução ao Azure AD

Azure AD fornece o Active Directory na nuvem. Os principais recursos incluem o seguinte:

Suponha que você tenha um ambiente de Windows Server Active Directory local que você usa para permitir que os funcionários entrem em aplicativos da Intranet:

Esta ilustração mostra uma estrutura em forma oval com vários dispositivos e duas torres de triângulo, cruzando uma linha e setas entre cada dispositivo e sua origem, para mostrar como cada um se conecta.

O que Azure AD permite que você faça é criar um diretório na nuvem. É um recurso gratuito e fácil de configurar.

Ele pode ser totalmente independente do seu Active Directory local; você pode colocar qualquer pessoa desejada nele e autenticá-los em aplicativos da Internet.

Windows Azure Active Directory

Ou você pode integrá-lo ao AD local.

Integração do AD e do WAAD

Agora, todos os funcionários que podem se autenticar localmente também podem se autenticar pela Internet , sem precisar abrir um firewall ou implantar novos servidores em seu data center. Você pode continuar a aproveitar todo o ambiente existente do Active Directory que você conhece e usa hoje para fornecer aos seus aplicativos internos a funcionalidade de logon único.

Depois de fazer essa conexão entre o AD e o Azure AD, você também pode habilitar seus aplicativos Web e seus dispositivos móveis para autenticar seus funcionários na nuvem, e você pode habilitar aplicativos de terceiros, como Office 365, SalesForce.com ou aplicativos do Google, para aceitar as credenciais de seus funcionários. Se você estiver usando Office 365, já está configurado com Azure AD porque Office 365 usa Azure AD para autenticação e autorização.

Aplicativos de terceiros

A beleza dessa abordagem é que sempre que sua organização adiciona ou exclui um usuário ou um usuário altera uma senha, você usa o mesmo processo que usa hoje em seu ambiente local. Todas as alterações do AD local são propagadas automaticamente para o ambiente de nuvem.

Se sua empresa estiver usando ou migrando para Office 365, a boa notícia é que você terá Azure AD configurado automaticamente porque Office 365 usa Azure AD para autenticação. Portanto, você pode usar facilmente em seus próprios aplicativos a mesma autenticação que Office 365 usa.

Configurar um locatário Azure AD

Um diretório Azure AD é chamado de locatário Azure AD e configurar um locatário é muito fácil. Mostraremos como isso é feito no Portal de Gerenciamento do Azure para ilustrar os conceitos, mas, claro, como as outras funções do portal, você também pode fazer isso usando um script ou uma API de gerenciamento.

No portal de gerenciamento, clique na guia Active Directory.

WAAD no portal

Você tem automaticamente um locatário Azure AD para sua conta do Azure e pode clicar no botão Adicionar na parte inferior da página para criar diretórios adicionais. Talvez você queira um para um ambiente de teste e outro para produção, por exemplo. Pense cuidadosamente sobre o nome de um novo diretório. Se você usar seu nome para o diretório e usar seu nome novamente para um dos usuários, isso pode ser confuso.

Adicionar diretório

O portal tem suporte completo para criar, excluir e gerenciar usuários nesse ambiente. Por exemplo, para adicionar um usuário, acesse a guia Usuários e clique no botão Adicionar Usuário .

Botão Adicionar Usuário

Caixa de diálogo Adicionar usuário

Você pode criar um novo usuário que exista somente neste diretório ou registrar uma Conta da Microsoft como um usuário neste diretório ou registrar ou um usuário de outro diretório Azure AD como um usuário neste diretório. (Em um diretório real, o domínio padrão seria ContosoTest.onmicrosoft.com. Você também pode usar um domínio de sua própria escolha, como contoso.com.)

Tipos de usuário

Adicionar uma caixa de diálogo do usuário

Você pode atribuir o usuário a uma função.

Perfil de usuário

E a conta é criada com uma senha temporária.

Senha temporária

Os usuários que você cria dessa maneira podem fazer logon imediatamente em seus aplicativos Web usando esse diretório de nuvem.

No entanto, o que é ótimo para o logon único da empresa é a guia Integração de Diretórios :

Guia Integração de Diretórios

Se você habilitar a integração de diretórios, poderá sincronizar esse diretório de nuvem com o Active Directory local existente que você já está usando dentro de sua organização. Em seguida, todos os usuários armazenados em seu diretório aparecerão neste diretório de nuvem. Seus aplicativos de nuvem agora podem autenticar todos os seus funcionários usando suas credenciais existentes do Active Directory. E tudo isso é gratuito – tanto a ferramenta de sincronização quanto a própria Azure AD.

A ferramenta é um assistente fácil de usar, como você pode ver nessas capturas de tela. Estas não são instruções completas, apenas um exemplo mostrando o processo básico. Para obter informações mais detalhadas sobre como fazer isso, consulte os links na seção Recursos no final do capítulo.

Assistente de configuração da ferramenta de sincronização waad - Imagem 1

Clique em Avançar e insira suas credenciais do Azure Active Directory.

Assistente de configuração da ferramenta de Sincronização do WAAD – Imagem 2

Clique em Avançar e insira suas credenciais do AD local.

Assistente de configuração da ferramenta de Sincronização do WAAD – Imagem 3

Clique em Avançar e indique se deseja armazenar um hash de suas senhas do AD na nuvem.

Assistente de configuração da ferramenta de sincronização do WAAD – Imagem 4

O hash de senha que você pode armazenar na nuvem é um hash unidirecional; as senhas reais nunca são armazenadas em Azure AD. Se você decidir não armazenar hashes na nuvem, precisará usar Serviços de Federação do Active Directory (AD FS) (ADFS). Também há outros fatores a serem considerados ao escolher se o ADFS deve ou não ser usado. A opção ADFS requer algumas etapas de configuração adicionais.

Se você optar por armazenar hashes na nuvem, você terminará e a ferramenta começará a sincronizar diretórios quando você clicar em Avançar.

Assistente de configuração da ferramenta de sincronização do WAAD – Imagem 5

E em alguns minutos você terminou.

Assistente de configuração da ferramenta de Sincronização do WAAD – Imagem 6

Você só precisa executar isso em um controlador de domínio na organização, no Windows 2003 ou superior. E não há necessidade de reinicializar. Quando terminar, todos os usuários estarão na nuvem e você poderá fazer logon único de qualquer aplicativo Web ou móvel, usando SAML, OAuth ou WS-Fed.

Às vezes, nos perguntam o quão seguro isso é : a Microsoft o usa para seus próprios dados comerciais confidenciais? E a resposta é sim, nós fazemos. Por exemplo, se você acessar o site interno do Microsoft SharePoint em https://microsoft.sharepoint.com/, será solicitado que você faça logon.

Entrar no Office 365

A Microsoft habilitou o ADFS, portanto, quando você insere uma ID da Microsoft, você é redirecionado para uma página de logon do ADFS.

Entrada do ADFS

E depois de inserir credenciais armazenadas em uma conta interna do Microsoft AD, você terá acesso a esse aplicativo interno.

Site do MS SharePoint

Estamos usando um servidor de entrada do AD principalmente porque já tínhamos o ADFS configurado antes de Azure AD ficar disponível, mas o processo de logon está passando por um diretório Azure AD na nuvem. Colocamos nossos documentos importantes, controle do código-fonte, arquivos de gerenciamento de desempenho, relatórios de vendas e muito mais na nuvem e estamos usando exatamente essa mesma solução para protegê-los.

Criar um aplicativo ASP.NET que usa Azure AD para logon único

O Visual Studio facilita muito a criação de um aplicativo que usa Azure AD para logon único, como você pode ver em algumas capturas de tela.

Quando você cria um novo aplicativo ASP.NET, MVC ou Web Forms, o método de autenticação padrão é ASP.NET Identity. Para alterar isso para Azure AD, clique em um botão Alterar Autenticação.

Alterar a autenticação

Selecione Contas Organizacionais, insira o nome de domínio e selecione Logon único.

Caixa de diálogo Configurar Autenticação

Você também pode conceder ao aplicativo permissão de leitura ou leitura/gravação para dados de diretório. Se você fizer isso, ele poderá usar a API REST do Azure Graph para pesquisar o número de telefone dos usuários, descobrir se eles estão no escritório, quando fizeram logon pela última vez etc.

Isso é tudo o que você precisa fazer – o Visual Studio solicita as credenciais de um administrador para seu locatário Azure AD e configura seu projeto e seu locatário Azure AD para o novo aplicativo.

Ao executar o projeto, você verá uma página de entrada e poderá entrar com as credenciais de um usuário no diretório Azure AD.

Entrada na conta da organização

Conectado

Ao implantar o aplicativo no Azure, basta selecionar uma caixa Habilitar marcar de Autenticação Organizacional e, mais uma vez, o Visual Studio cuida de toda a configuração para você.

Publicar na Web

Essas capturas de tela vêm de um tutorial passo a passo completo que mostra como criar um aplicativo que usa Azure AD autenticação: Desenvolvendo aplicativos ASP.NET com o Azure Active Directory.

Resumo

Neste capítulo, você viu que o Azure Active Directory, o Visual Studio e o ASP.NET, facilitam a configuração do logon único em aplicativos da Internet para os usuários da sua organização. Os usuários podem entrar em aplicativos da Internet usando as mesmas credenciais que usam para fazer logon usando o Active Directory em sua rede interna.

O próximo capítulo analisa as opções de armazenamento de dados disponíveis para um aplicativo de nuvem.

Recursos

Para saber mais, consulte os recursos a seguir: