Follow admAndreLuiz on Twitter

terça-feira, 15 de julho de 2014

Usando RD Gateway com Azure Multifactor Authentication

Usando RD Gateway com Azure Multifactor Authentication

Artigo em parceria com Kristin Grifin

Vamos examinar o cenário de um cliente que usa RD Gateway para permitir que os usuários acessem a estrutura RDS de fora da rede corporativa. Cerca de 1000 + usuários. Os usuários acessam o ambiente RDS através de dispositivos a maioria não gerenciados incluindo diferentes tipos de Tablets. A preocupação é a possibilidade desses dispositivos não gerenciados serem roubados ou extraviados oferecendo um potencial risco a acessos não autorizados ao ambiente RDS corporativo.

Pesquisando soluções para este problema (e tendo em conta a amplitude dos tipos de clientes não gerenciados que precisam ser suportados) temos uma potencial solução usando Multifactor Authentication ou autenticação multifator juntamente com RD Gateway para criar uma seqüência de autenticação que exige duas formas de identificação para acessar o ambiente RDS:

1. algo que somente o usuário sabe como por exemplo sua combinação de nome de usuário/senha

2. uma senha de uso único

Se você já usou autenticação em 2 etapas no Hotmail ou Gmail vai ficar claro do que estamos falando. Existem informações complementares nos artigos em inglês:

“The increasing need for two factor authentication”, do MVP Orin Thomas, contribuinte do site Windows IT Pro .

Nós exploramos algumas ofertas diferentes de autenticação multifator oferecidas no Microsoft Azure (Azure MFA) por três razões:

1) Preço: É excelente em comparação com algumas outras soluções concorrentes.

2) 2ª Camada : o Azure MFA pode completar a segunda camada de autenticação via telefone celular ou dispositivo inteligente (um dispositivo que a maioria das pessoas já têm) em vez de exigir um token em hardware.

3) Uso de PIN : O Azure MFA também podem ser definido para exigir um PIN exclusivo que somente o usuário sabe. Não importa qual dispositivo é usado para acessar a implantação da RDS, o usuário precisará mais do que suas credenciais de usuário (que são geralmente armazenados em cache) para entrar.

Um login via RD Gateway com Azure MFA seria assim:

1. o usuário faz logon no RD Web Access e da um duplo clique em RemoteApp (ou conexão de área de trabalho remota )

2. As credenciais de logon do usuário para o website são usadas para validar o usuário (Web SSO ), então não há necessidade de fornecer novamente.

3. O usuário então recebe uma mensagem de texto SMS em seu device ou smartphone. O SMS fornece um código de 6 dígitos numéricos que chamamos de senha de uso único (one-time password).

4. O usuário responde à mensagem de texto introduzindo o código de 6 dígitos e adicionando seu exclusivo PIN pré-definido para o final da sequência. Detalhe que o Azure MFA inclui a opção de exigir que o usuário saiba um PIN exclusivo predefinido.

5. O usuário é autenticado, e abre o RemoteApp (ou conexão de área de trabalho remota).

Nota: A autenticação de SMS não é a única maneira na qual o Azure MFA pode se comunicar com os usuários. Em um próximo artigo abordaremos as várias opções de autenticação como por exemplo autenticação por telefone e também usando um App em um smartphone.

Cenário de Testes: RD Gateway / solução Azure MFA. Primeiro, nós implementamos Azure AMF com um ambiente de RDS com apenas um servidor de Gateway RD (ambiente sem alta disponibilidade).

Depois implementamos em vários servidores RD Gateway em uma configuração de alta disponibilidade. As configurações em ambos funcionam bem, mas a instalação é diferente para estes cenários. Neste artigo nós abordaremos o cenário de APENAS UM Gateway. Em nossos próximos artigos iremos explorar configurações com alta disponibilidade.

Como o Azure MFA funciona com o RD Gateway

Vamos olhar mais de perto como funciona o MFA com RD Gateway para fornecer autenticação em 2 etapas. Em primeiro lugar, precisamos entender como o Gateway funciona para autenticar usuários.

RD Gateway e o NPS

RD Gateway usa o NPS (Network Policy Services), um recurso do Windows Server 2012 para manter as diretivas de rede (na interface do Gerenciador de Gateway de RD estas políticas são chamadas de RD Connection Access policies (diretivas de acesso de conexão de área de trabalho remota, ou RD CAPs). Em geral, RD Gateway (e NPS) trabalham juntos para autenticar um usuário como podemos ver abaixo:

1. As credenciais de logon do usuário é enviado para o Gateway.

2. NPS verifica as credenciais contra suas políticas de rede para ver se o usuário tem permissão para acessar o Gateway.

Se as credenciais forem permitidas pelo NPS, então:

3. RD Gateway verifica as credenciais do usuário contra suas políticas de autorização de recurso Resource Authorization Policies (RD RAPs que estão alojados em um arquivo XML no servidor

Adicionando o Azure MFA

No cenário em duas etapas o processo seria esse:

1. as credenciais de logon do usuário é enviado para o Gateway.

2. NPS verifica as credenciais contra suas políticas de rede para ver se o usuário tem permissão para acessar o Gateway RD).

Se as credenciais forem permitidas pelo NPS, então:

3. a solicitação de logon é enviada ao servidor MFA

4. MFA Server se comunica com o usuário final (por texto SMS, chamada telefónica, app móvel ou token) pedindo para responder de volta a sequência de letra/número adicionando seu PIN exclusivo ao final, no caso do ambiente ser configurado para exigir um PIN pessoal.

5. MFA recebe a resposta do usuário, verifica a resposta. Se a resposta estiver correta, então o MFA envia uma resposta de "aceitar" para o Gateway.

Se o RD Gateway receber uma resposta de aceite do MFA então:

6. RD Gateway verifica as credenciais do usuário contra suas RD RAPs para ver se o usuário tem permissão para acesso solicitado e permite ou então nega a conexão.

Incluindo o Azure MFA na sequência de autenticação

Quando você tiver um servidor RD Gateway RD em execução junto com um serviço NPS (a configuração padrão), você tem que ter alguma maneira enviar para o servidor MFA a sequência de comunicação. Como mostrado na Figura 1. Para fazer isso, vamos “enganar” o RD Gateway – vamos configurar o Gateway para usar um servidor NPS centralizado, mas apontando para o servidor MFA na nuvem. A comunicação funciona assim:

clip_image002

Figura 1: “Enganamos” o RD Gateway para ele “achar” que está usando um NPS centralizado.

1. RDG recebe a requisição de login do usuário

2. RD Gateway encaminha uma requisição RADIUS para o servidor MFA através do NPS.

3. O servidor MFA encaminha para o NPS para validação de credenciais.

4. RD Gateway valida a credencial do usuário e faz um check com as Diretivas de autorização de conexão da Área de Trabalho Remota (RD CAP).

5. NPS envia um ACCEPT ou REJECT para o servidor MFA.

6. No caso de ACCEPT, MFA realiza  a sequência de autenticação em duas etapas com o usuário (através de telefonema, texto ou app móvel). Se o usuário retorna a “contra-senha” ele envia um ACCEPT para o RD Gateway.

7. Finalmente o RD Gateway irá verificar as Diretivas de autorização de recursos da Área de Trabalho Remota (RD RAPs) e também permitir ou negar a conexão.

Implementando um servidor de AMF Azure On Premise com RD Gateway

A solução Azure MFA pode ser usado em um cenário de nuvem mas também em aplicações “on premise” aonde focamos aqui. Vamos mostrar como configurar um servidor “on premise” Azure MFA para prover autenticação em 2 etapas numa implementação RD gateway também “on premisse”.

Primeiro algumas configurações que precisamos:

· Um ambiente de trabalho RDS, incluindo RD Gateway (executando o NPS localmente)

· Um site RD Web Access publicado RemoteApps ou desktops.

· Uma conta de Azure configurada com informações defaturamento. Este artigo pressupõe que já configurou isso. Se você ainda não tem veja em: https://account.windowsazure.com/SignUp.

· Um servidor no Domínio (físico ou VM) designado para ser o servidor Azure MFA local

· Um telefone celular para responder aos pedidos de SMS do Azure MFA.

· Um cliente de teste (um PC ou um tablet, por exemplo) de preferência com Internet Explorer

Agora caminharemos através desses principais passos de instalação:

1. Instalar os pré-requisitos no servidor designado para o Azure MFA 

2. Criar um provedor de autenticação em duas etapas no Azure (MFA)

3. Baixar e instalar o software on premise do servidor MFA.

4. Configurar o servidor MFA, RD Gateway RD e NPS

5. 5. configurar um usuário de teste no servidor Azure MFA e fazer alguns testes

Pré-Requisitos

Uma premissa para instalação do servidor MFA Azure é o .NET Framework 3.5 Instale como mostrado (mostrado na Figura 2).

clip_image004

Figura 2: Instalação do.NET Framework 3.5

Criar um provedor de autenticação em duas etapas no Azure (MFA

Siga os seguintes passos :

1. Do servidor MFA, entre no portal Microsoft Azure Management: https://manage.windowsazure.com/.

2. Escolha o botão “+New” ou “Novo” na versão em Ptb (Figura 3)

clip_image006

clip_image008

Figure 3: Criação de um provedor MFA no Azure

3. A Figura 4 mostra cinco colunas do qual você irá selecionar propriedades do novo provedor MFA.

a. Selecione serviços de Aplicativos

b. Selecione Active Directory

c. Selecione o provedor de autenticação Multifator na terceira

d. Clique no botão criação rápida.

e. Preencha o formulário que aparece.

Observação:

· Na opção da cobrança por usuário você paga uma taxa fixa para cada usuário cadastrado e tem o uso ilimitado.

· Na opção cobrança por Autenticação nesse caso você paga por cada 10 autenticações com usuários ilimitados

Ambos podem ser usados nesse caso. É preciso um estudo para escolha do melhor modelo porque isso não pode ser mudado posteriormente

As opções do diretório permitem que você conecte este provedor MFA com o Active Directory do Azure. Como nessa implementação usamos um servidor MFA on premisse que é membro do domínio deixe a opção definida como “Do not link a directory” ou “não vincular um diretório”.

clip_image010

clip_image012

Figure 4: Configurando o provedor MFA .

4. Na página principal voce pode ver seu provedor MFA criado selecione-o e clique no ícone “manage” no final da página como mostra a Figura 5.

clip_image014

Figura 5: Selecionando o Provedor criado e clicando no botão de gerenciamento.

Download e Instalação do Azure MFA Server Software On Premise

O portal de gerenciamento do Azure Multifactor será aberto como mostra a Figura 6.

clip_image016

Figure 6: Portal de gerenciamento

Siga estas etapas para baixar e instalar o software Azure MFA.

1. Clique no botão de DOWNLOADS. Você obterá a tela mostrada na Figura 7.

clip_image018

Figure 7: Baixe o software e gere as credenciais de ativação.

2. Salve e execute o arquivo.

3. Cique no botão gerar novas credenciais de ativação. As credenciais de ativação só servem para 10 minutos. Insira as credenciais de ativação na tela ativar da instalação mostrada na Figura 8. Se suas credenciais expirarem antes de você digitá-los, clique no botão gerar novas credenciais de ativação novamente para obter um novo conjunto.

clip_image020

Figure 8: Especifique as credenciais.

Dica: Para isso funcionar você precisa uma saída pela porta 443. Em cenários onde o servidor MFA usa proxy, execute o seguinte comando:

netsh WinHTTP Set Proxy proxy-server="FQDN_of_Proxy_Server:8080"

Caso contrário, você pode executar no seguinte erro mostrado na Figura 9:

clip_image022

Figura 9: Esse erro indica que o serviço MFA não foi localizado.

Configurando o RD Gateway Server, NPS e o MFA Server

Agora precisamos configurar o RD Gateway, NPS, e o MFA para se comunicarem.

RD Gateway

Vamos “enganar” o RD Gateway e configura-lo para usar o “Central RD CAP”, mas vamos apontar para o servidor MFA server:

1. Abra o RD Gateway Manager, clique o lado direito no nome do servidor e abra “Properties”.

2. Selecione a guia “RD CAP Store” (Figura 10).

3. Selecione “Central server running NPS”.

4. Forneça o nome ou IP do servidor MFA e clique “Add”.

5. Entre uma senha e clique em OK.

clip_image024

Figura 10: Configurando o RD Gateway para usar o “central NPS”

Fazendo o NPS e o MFA se comunicarem

Ambos usam um cliente e um servidor RADIUS para se comunicarem. Então configuramos um cliente e um servidor RADIUS (Figura 11) em cada servidor:

· No servidor Gateway RD/NPS configuramos duas diretivas de solicitação de conexão:

a) A primeira enviará comunicação ao servidor do MFA através de um grupo de servidores RADIUS remotos (Remote RADIUS Server Group)

b) A segunda recebe comunicação do MFA server via cliente RADIUS.

· No servidor MFA:

a) Um cliente RADIUS para receber a comunicação do NPS server.

b) Um destino A RADIUS para mandar a comunicação para o servidor NPS.

clip_image026

Figura 11: NPS e o servidor MFA usam cliente e servidor RADIUS para comunicação.

Configurando NPS

Umas das coisas que precisamos fazer é evitar o Time Out do NPS enquanto não é completada a autenticação MFA (Figure 12):

1. Em NPS, clicar “RADIUS Clients and Servers” e “Remote RADIUS Server Groups”.

2. Quando configuramos o Gateway RD é criada uma entrada “TS GATEWAY SERVER GROUP”. Clique com o lado direito e selecione “Properties”.

3. Selecione o servidor MFA e Edit.

4. Selecione a guia “Load Balancing”.

5. Mude o parâmetro “Number of seconds without response before request is considered dropped” e “Number of seconds between requests when server is identified as unavailable” para 60 segundos.

clip_image028

Figure 12: Ajustando os parâmetros do RADIUS server no NPS.

Você precisa configurar o NPS para receber as autenticações RADIUS do servidor MFA:

1. Duplo clique em “RADIUS Clients” e “New”.

2. Adicione um nome amigável e um endereço do servidor MFA Figura 13.

3. Adicione a senha e OK.

clip_image029

Figura 13: Criando um cliente RADIUS no NPS.

Em seguida, configure as duas diretivas de solicitação de conexão no NPS - um para encaminhar as solicitações para o grupo de servidores RADIUS (que é definida para encaminhar ao servidor MFA), e o outro para receber solicitações do servidor MFA (para serem manipulados localmente).

A maneira mais fácil de fazer isso é usar a diretiva existente que foi criada quando você criou uma RD CAP. Siga estes passos:

1. Na seção de diretiras em NPS em Connection Request Policies. Veremos a diretiva criada chamada “TS GATEWAY AUTHORIZATION POLICY”.

2. Lado direito do mouse e selecione “Duplicate Policy”.

Note: Para facilitar renomeamos as diretivas :

· De “TS GATEWAY AUTHORIZATION POLICY” para “To MFA”

· De “Copy of TS GATEWAY AUTHORIZATION POLICY” para “From MFA”

3. Duplo clique na nova diretiva duplicada e selecione a guia “Conditions”.

4. Adicione um nome amigável como na Figura 14. Use o mesmo nome amigável que configuramos para o cliente RADIUS anteriormente.

clip_image031

Figura 14: Adicionando um “Client Friendly Name” para “TS GATEWAY AUTHORIZATION POLICY”.

5. Selecione a guia “Settings” e mude o parâmetro “Authentication” para “Authenticate requests on this server” Figura 15.

clip_image032

Figura 15: Mudando a diretiva para autenticação local.

6. Selecione “Accounting” e certifique-se que a check box “Forward accounting requests…” está desmarcada. Então clique em OK. A Interface de diretivas deve ficar como na Figura 16.

clip_image034

Figura 16: Visão das configurações de diretivas “From MFA”

7. Certifique-se de que a diretiva (cópia) esteja em primeiro lugar antes da diretiva original.

8. Apesar de não mexermos na diretiva original é prudente verificar para confirmar os parâmetros conforme Figura 17.

clip_image036

Figura 17: A diretiva mantém os parâmetros originais.

Configurando o servidor MFA

Agora precisamos configurar o cliente e o destino RADIUS do servidor MFA. Essas são as etapas:

1. no servidor MFA abrir o servidor de autenticação Multifator e clique no ícone “RADIUS Authentication”.

2. Verifique se a caixa de seleção autenticação está ativada.

3. Na guia “Clients” clique no botão “ADD” (Adicionar)

4. Adicionar o IP do servidor Gateway de RD / NPS e a chave compartilhada correspondente ao adicionado à configuração do “Central CAP Store”.

5. Clique na guia “Target” e escolha “RADIUS servers”.

6. clique “ADD” (Adicionar) e digite o endereço IP, chave compartilhada e portas do servidor NPS. A chave compartilhada deve corresponder ao configurados para o cliente RADIUS no servidor NPS.

Testando

Para adicionar um usuário de teste:

1. No servidor MFA server abra o Multi-Factor Authentication Server e selecione o ícone “Users”.

2. Clique no botão “Import Users from Active Directory”.

3. Selecione a conta que quer importar e clique “Import”.

4. Duplo clique na conta criada (Figura 18).

clip_image038

Figure 20: Configurando os parâmetros do usuário de teste.

Na guia “General”:

· Código do país (country code) e o telefone (phone number) do celular que vai ser usado para teste.

· Selecione a opção “Text Message”. Então selecione “OTP + PIN”.

· Entre com um PIN ou clique em “Generate” para gerar um novo código.

5. Selecione “Enabled” e “Apply” para salvar as configurações.

Agora as ações para o teste do cenário:

1. A partir do dispositivo cliente, abra o Internet Explorer e navegue até o site de acesso RD Web e faça o login.

2. Abra um aplicativo remoto ou área de trabalho remota. A caixa de diálogo mostrada na Figura 19 permanecerá aberta até que tenha sido concluída a autenticação em duas etapas:

clip_image040

Figura 19: Abrindo sessão RDP

3. Será enviada uma mensagem de texto (Figure 20).

clip_image042

Figure 20: Mensagem de texto do MFA server.

4. Respondemos ao texto digitando uma a senha e adicionando o PIN no final da resposta.

5. Se estiver correto a sessão abrirá.

Outros artigos úteis

· Getting started with Windows Azure Multi-Factor Authentication

· RADIUS Authentication

· Remote Desktop Gateway and Azure Multi-Factor Authentication Server using RADIUS

Sumário

Esta configuração é exemplo – um único Gateway de RD e um único servidor MFA “on premisse” ótimo para testar o conceito. Nos próximos artigos mostraremos como configurar uma solução altamente disponível, incluindo vários Gateways RD, vários servidores MFA. Também exploraremos vários métodos de autenticação como telefonema e opções de aplicativo móvel. Verifique www.RDSGurus.com e www.andreluiz.adm.br para atualizações.

Nenhum comentário: