Configurar o logon único na Área de Trabalho Virtual do Azure usando o AD FS
Este artigo orientará você pelo processo de configuração do SSO (logon único) dos Serviços de Federação do Active Directory (AD FS) para a Área de Trabalho Virtual do Azure.
Observação
A Área de Trabalho Virtual do Azure (Clássica) não dá suporte a esse recurso.
Pré-requisitos
Antes de configurar o logon único do AD FS, você precisa ter a seguinte configuração em execução no seu ambiente:
Hosts de sessão que executam uma versão com suporte do Windows 10 ou Windows 11.
Você precisa implantar a função de AC (Serviços de Certificados) do Active Directory. Todos os servidores que executam a função precisam estar conectados ao domínio, ter as atualizações mais recentes do Windows instaladas e ser configuradas como autoridades de certificação empresariais.
Você precisa implantar a função do AD FS (Serviços de Federação do Active Directory) . Todos os servidores que executam essa função precisam estar conectados ao domínio, ter as atualizações mais recentes do Windows instaladas e estar executando o Windows Server 2016 ou posterior. Confira nosso tutorial de federação para começar a configurar essa função.
É recomendável configurar a função do Proxy de Aplicativo Web para proteger a conexão do seu ambiente com os servidores do AD FS. Todos os servidores que executam essa função precisam ter as atualizações mais recentes do Windows instaladas e estar executando o Windows Server 2016 ou posterior. Confira este Guia do Proxy de Aplicativo Web para começar a configurar essa função.
Você deve implantar o Microsoft Entra Connect para sincronizar usuários com o Microsoft Entra ID. O Microsoft Entra Connect precisa ser configurado no modo de federação.
Configure o ambiente do PowerShell para a Área de Trabalho Virtual do Azure no servidor do AD FS.
Observação
Não há suporte para essa solução com o Microsoft Entra Domain Services. Use um controlador de domínio do Active Directory Domain Services.
Clientes com suporte
Os seguintes clientes da Área de Trabalho Virtual do Azure dão suporte a esse recurso:
Configurar a autoridade de certificação para emitir certificados
Você precisa criar corretamente os seguintes modelos de certificado para que o AD FS possa usar o SSO:
- Primeiro, você precisará criar o modelo de certificado do Agente de Registro do Exchange (solicitação offline) . O AD FS usa o modelo de certificado do Agente de Registro do Exchange para solicitar certificados em nome do usuário.
- Você também precisará criar o modelo de certificado do Logon de Cartão Inteligente, que o AD FS usará para criar o certificado de entrada.
Depois de criar esses modelos de certificado, você precisará habilitar os modelos na autoridade de certificação para que o AD FS possa solicitá-los.
Observação
Essa solução gera novos certificados de curto prazo sempre que um usuário entra, o que pode deixar o banco de dados de Autoridade de Certificação lotado quando há muitos usuários. Você pode evitar a sobrecarga do banco de dados configurando uma AC para processamento de certificado não persistente. Se você fizer isso, no modelo de certificado de logon de cartão inteligente duplicado, habilite apenas Não armazenar certificados e solicitações no banco de dados de AC. Não habilite Não incluir informações de revogação em certificados emitidos para que a configuração funcione.
Criar o modelo de certificado do agente de registro
Dependendo do seu ambiente, talvez você já tenha configurado um modelo de certificado de agente de registro para outros propósitos, como o Windows Hello para Empresas, certificados de logon ou certificados de VPN. Nesse caso, será necessário modificá-lo para que ele dê suporte ao SSO. Caso contrário, você pode criar um modelo.
Para determinar se você já está usando um modelo de certificado de agente de registro, execute o comando do PowerShell a seguir no servidor do AD FS e veja se um valor é retornado. Se ele estiver vazio, crie um modelo de certificado de agente de registro. Caso contrário, lembre-se do nome e atualize o modelo de certificado do agente de registro existente.
Import-Module adfs
(Get-AdfsCertificateAuthority).EnrollmentAgentCertificateTemplateName
Para criar um modelo de certificado de agente de registro:
Na autoridade de certificação, execute mmc.exe no menu Iniciar para iniciar o Console de Gerenciamento Microsoft.
Selecione Arquivo...>Adicionar/Snap-in Remoto...>Modelos de Certificado>Adicionar >>OK para exibir a lista de modelos de certificado.
Expanda os Modelos de Certificado, clique com o botão direito do mouse em Agente de Registro do Exchange (Solicitação Offline) e selecione Duplicar Modelo.
Selecione a guia Geral e insira "Agente de Registro do ADFS" no campo Nome de exibição do modelo. Isso definirá automaticamente o nome do modelo como "ADFSEnrollmentAgent".
Selecione a guia Segurança e Adicionar... .
Em seguida, selecione Tipos de Objeto... , Contas de Serviço e OK.
Insira o nome da conta de serviço do AD FS e selecione OK.
- Em uma configuração do AD FS isolada, a conta de serviço será denominada "adfssvc $"
- Se você configurar o AD FS usando o Microsoft Entra Connect, a conta de serviço será denominada "aadcsvc$"
Depois que a conta de serviço for adicionada e estiver visível na guia Segurança, selecione-a no painel Grupo ou nomes de usuário, selecione Permitir para "Registrar" e "Registrar automaticamente" no painel Permissões para a conta de serviço do AD FS e selecione OK para salvar.
Para atualizar um modelo de certificado de agente de registro existente:
- Na autoridade de certificação, execute mmc.exe no menu Iniciar para iniciar o Console de Gerenciamento Microsoft.
- Selecione Arquivo...>Adicionar/Snap-in Remoto...>Modelos de Certificado>Adicionar >>OK para exibir a lista de modelos de certificado.
- Expanda os Modelos de Certificado, clique duas vezes no modelo que corresponde ao modelo configurado no servidor do AD FS. Na guia Geral, o nome do modelo deve corresponder ao nome que você encontrou acima.
- Selecione a guia Segurança e Adicionar... .
- Em seguida, selecione Tipos de Objeto... , Contas de Serviço e OK.
- Insira o nome da conta de serviço do AD FS e selecione OK.
- Em uma configuração do AD FS isolada, a conta de serviço será denominada "adfssvc $"
- Se você configurar o AD FS usando o Microsoft Entra Connect, a conta de serviço será denominada "aadcsvc$"
- Depois que a conta de serviço for adicionada e estiver visível na guia Segurança, selecione-a no painel Grupo ou nomes de usuário, selecione Permitir para "Registrar" e "Registrar automaticamente" no painel Permissões para a conta de serviço do AD FS e selecione OK para salvar.
Criar o modelo de certificado de Logon de Cartão Inteligente
Para criar o modelo de certificado de Logon de Cartão Inteligente:
Na autoridade de certificação, execute mmc.exe no menu Iniciar para iniciar o Console de Gerenciamento Microsoft.
Selecione Arquivo...>Adicionar/Snap-in Remoto...>Modelos de Certificado>Adicionar>OK para exibir a lista de modelos de certificado.
Expanda os Modelos de Certificado, clique com o botão direito do mouse em Logon de Cartão Inteligente e selecione Duplicar Modelo.
Selecione a guia Geral e insira "SSO do ADFS" no campo Nome de exibição do modelo. Isso definirá automaticamente o nome do modelo como "ADFSSSO".
Observação
Como esse certificado é solicitado sob demanda, é recomendável encurtar o período de validade para 8 horas e o período de renovação para 1 hora.
Selecione a guia Nome da entidade e clique em Fornecer na solicitação. Quando você vir uma mensagem de aviso, selecione OK.
Selecione a guia Requisitos de Emissão.
Selecione Este número de assinaturas autorizadas e insira o valor de 1.
Para a Política de aplicativo, selecione Agente de Solicitação de Certificado.
Selecione a guia Segurança e Adicionar... .
Selecione Tipos de Objeto... , Contas de Serviço e OK.
Insira o nome da conta de serviço do AD FS da mesma maneira que você fez na seção Criar o modelo de certificado do agente de registro.
- Em uma configuração do AD FS isolada, a conta de serviço será denominada "adfssvc $"
- Se você configurar o AD FS usando o Microsoft Entra Connect, a conta de serviço será denominada "aadcsvc$"
Depois que a conta de serviço for adicionada e estiver visível na guia Segurança, selecione-a no painel Grupo ou nomes de usuário, selecione Permitir para "Registrar" e "Registrar automaticamente" e selecione OK para salvar.
Habilite os novos modelos de certificado:
Para habilitar os novos modelos de certificado:
Na autoridade de certificação, execute mmc.exe no menu Iniciar para iniciar o Console de Gerenciamento Microsoft.
Selecione Arquivo...>Adicionar/Remover Snap-in...>Autoridade de Certificação>Adicionar >>Concluir> e OK para exibir a Autoridade de Certificação.
Expanda a Autoridade de Certificação no painel esquerdo e abra Modelos de Certificado.
Clique com o botão direito do mouse no painel central que mostra a lista de modelos de certificado, selecione Novo e Modelo de Certificado a ser Emitido.
Selecione o Agente de Registro do ADFS e o SSO do ADFS e clique em OK. Você deverá ver ambos os modelos no painel central.
Observação
Se você já tiver um modelo de certificado do agente de registro configurado, precisará apenas adicionar o modelo de SSO do ADFS.
Configurar os servidores do AD FS
Você precisa configurar os servidores dos Serviços de Federação do Active Directory (AD FS) para usar os novos modelos de certificado e definir o objeto de confiança de terceira parte confiável para dar suporte ao SSO.
O objeto de confiança de terceira parte confiável entre o seu servidor do AD FS e o serviço de Área de Trabalho Virtual do Azure permite que as solicitações de certificado de logon único sejam encaminhadas corretamente para o seu ambiente de domínio.
Ao configurar o logon único do AD FS, você precisa escolher a chave compartilhada ou o certificado:
- Se você tiver só um servidor do AD FS, poderá escolher a chave compartilhada ou o certificado.
- Se você tiver vários servidores do AD FS, será necessário escolher o certificado.
A chave compartilhada ou o certificado usado para gerar o token para entrar no Windows precisa ser armazenado com segurança em Azure Key Vault. Você pode armazenar o segredo em um Key Vault existente ou implantar um novo. Em ambos os casos, verifique se a política de acesso correta foi configurada para que o serviço de Área de Trabalho Virtual do Azure possa acessá-la.
Ao usar um certificado, você pode usar qualquer certificado de uso geral e não há nenhum requisito no nome da entidade ou no SAN (Nome Alternativo da Entidade). Embora não seja necessário, é recomendável criar um certificado emitido por uma Autoridade de Certificação válida. Esse certificado pode ser criado diretamente no Azure Key Vault e precisa ter uma chave privada exportável. A chave pública pode ser exportada e usada para configurar o servidor do AD FS usando o script abaixo. Observe que esse certificado é diferente do certificado SSL do AD FS que precisa ter um nome de entidade apropriado e uma Autoridade de Certificação válida.
O script do PowerShell ConfigureWVDSSO.ps1 disponível na Galeria do PowerShell configura o seu servidor do AD FS para o objeto de confiança de terceira parte confiável e instala o certificado se necessário.
Esse script tem apenas um parâmetro obrigatório, ADFSAuthority, que é a URL que é resolvida para o seu AD FS e usa "/adfs" como o sufixo. Por exemplo, https://adfs.contoso.com/adfs
.
Nas VMs do AD FS, execute o seguinte cmdlet do PowerShell para configurar o AD FS para usar os modelos de certificado da seção anterior:
Set-AdfsCertificateAuthority -EnrollmentAgentCertificateTemplate "ADFSEnrollmentAgent" -LogonCertificateTemplate "ADFSSSO" -EnrollmentAgent
Observação
Se você já tiver um EnrollmentAgentCertificateTemplate configurado, use o nome do modelo existente em vez de ADFSEnrollmentAgent.
Execute o script ConfigureWVDSSO.ps1.
Observação
Você precisa dos valores de variável
$config
para concluir a próxima parte das instruções, portanto, não feche a janela do PowerShell que você usou para concluir as instruções anteriores. Você pode continuar usando a mesma janela do PowerShell ou deixá-la aberta durante a inicialização de uma nova sessão do PowerShell.Se você estiver usando uma chave compartilhada no Key Vault, execute o seguinte cmdlet do PowerShell no servidor do AD FS com o ADFSServiceUrl substituído pela URL completa para acessar o seu serviço do AD FS:
Install-Script ConfigureWVDSSO $config = ConfigureWVDSSO.ps1 -ADFSAuthority "<ADFSServiceUrl>" [-WvdWebAppAppIDUri "<WVD Web App URI>"] [-RdWebURL "<RDWeb URL>"]
Observação
Você precisa das propriedades WvdWebAppAppIDUri e RdWebURL para configurar um ambiente em uma nuvem soberana como o Azure Government. Na Nuvem Comercial do Azure, essas propriedades são definidas automaticamente como
https://www.wvd.microsoft.com
ehttps://rdweb.wvd.microsoft.com
, respectivamente.Se você estiver usando um certificado no Key Vault, execute o seguinte cmdlet do PowerShell no servidor do AD FS com o ADFSServiceUrl substituído pela URL completa para acessar o seu serviço do AD FS:
Install-Script ConfigureWVDSSO $config = ConfigureWVDSSO.ps1 -ADFSAuthority "<ADFSServiceUrl>" -UseCert -CertPath "<Path to the pfx file>" -CertPassword <Password to the pfx file> [-WvdWebAppAppIDUri "<WVD Web App URI>"] [-RdWebURL "<RDWeb URL>"]
Observação
Você precisa das propriedades WvdWebAppAppIDUri e RdWebURL para configurar um ambiente em uma nuvem soberana como o Azure Government. Na Nuvem Comercial do Azure, essas propriedades são definidas automaticamente como
https://www.wvd.microsoft.com
ehttps://rdweb.wvd.microsoft.com
, respectivamente.
Defina a política de acesso no Azure Key Vault executando o seguinte cmdlet do PowerShell:
Set-AzKeyVaultAccessPolicy -VaultName "<Key Vault Name>" -ServicePrincipalName 9cdead84-a844-4324-93f2-b2e6bb768d07 -PermissionsToSecrets get -PermissionsToKeys sign
Armazene a chave compartilhada ou o certificado no Azure Key Vault com uma Marca que contém uma lista separada por vírgula de IDs de assinatura com permissão para usar o segredo.
Se você estiver usando uma chave compartilhada no Key Vault, execute o seguinte cmdlet do PowerShell para armazenar a chave compartilhada e definir a marca:
$hp = Get-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" $secret = Set-AzKeyVaultSecret -VaultName "<Key Vault Name>" -Name "adfsssosecret" -SecretValue (ConvertTo-SecureString -String $config.SSOClientSecret -AsPlainText -Force) -Tag @{ 'AllowedWVDSubscriptions' = $hp.Id.Split('/')[2]}
Se o certificado já estiver no Key Vault, execute o seguinte cmdlet do PowerShell para definir a marca:
$hp = Get-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" $secret = Update-AzKeyVaultCertificate -VaultName "<Key Vault Name>" -Name "<Certificate Name>" -Tag @{ 'AllowedWVDSubscriptions' = $hp.Id.Split('/')[2]} -PassThru
Se você tiver um certificado local, execute o seguinte cmdlet do PowerShell para importar o certificado no Key Vault e definir a marca:
$hp = Get-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" $secret = Import-AzKeyVaultCertificate -VaultName "<Key Vault Name>" -Name "adfsssosecret" -Tag @{ 'AllowedWVDSubscriptions' = $hp.Id.Split('/')[2]} -FilePath "<Path to pfx>" -Password (ConvertTo-SecureString -String "<pfx password>" -AsPlainText -Force)
Observação
Opcionalmente, você pode configurar a frequência com que os usuários são solicitados a fornecer credenciais alterando as Configurações de logon único do AD FS. Por padrão, os usuários serão solicitados a cada oito horas em dispositivos não registrados.
Configurar o seu pool de host da Área de Trabalho Virtual do Azure
Está na hora de configurar os parâmetros de SSO do AD FS no pool de host da Área de Trabalho Virtual do Azure. Para fazer isso, Configure o ambiente do PowerShell para a Área de Trabalho Virtual do Azure se você ainda não tiver feito isso e se conecte à sua conta.
Depois disso, atualize as informações de SSO do seu pool de host executando um dos dois cmdlets abaixo na mesma janela do PowerShell na VM do AD FS:
Se você estiver usando uma chave compartilhada no Key Vault, execute o seguinte cmdlet do PowerShell:
Update-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" -SsoadfsAuthority "<ADFSServiceUrl>" -SsoClientId "<WVD Web App URI>" -SsoSecretType SharedKeyInKeyVault -SsoClientSecretKeyVaultPath $secret.Id
Observação
Você precisa definir que a propriedade SsoClientId corresponda à nuvem do Azure na qual você está implantando o SSO. Na Nuvem Comercial do Azure, essa propriedade deve ser definida como
https://www.wvd.microsoft.com
. No entanto, a configuração necessária para essa propriedade será diferente para outras nuvens, como a nuvem do Azure Government.Se você estiver usando um certificado no Key Vault, execute o seguinte cmdlet do PowerShell:
Update-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" -SsoadfsAuthority "<ADFSServiceUrl>" -SsoClientId "<WVD Web App URI>" -SsoSecretType CertificateInKeyVault -SsoClientSecretKeyVaultPath $secret.Id
Observação
Você precisa definir que a propriedade SsoClientId corresponda à nuvem do Azure na qual você está implantando o SSO. Na Nuvem Comercial do Azure, essa propriedade deve ser definida como
https://www.wvd.microsoft.com
. No entanto, a configuração necessária para essa propriedade será diferente para outras nuvens, como a nuvem do Azure Government.
Configurar pools de host adicionais
Quando você precisar configurar pools de host adicionais, será possível recuperar as configurações usadas na definição de um pool de host existente para configurar o novo.
Para recuperar as configurações do pool de host existente, abra uma janela do PowerShell e execute este cmdlet:
Get-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" | fl *
Você pode seguir as etapas para configurar o seu pool de host da Área de Trabalho Virtual do Azure usando os mesmos valores de SsoClientId, SsoClientSecretKeyVaultPath, SsoSecretType e SsoadfsAuthority.
Como remover o SSO
Para desabilitar o SSO no pool de host, execute o seguinte cmdlet:
Update-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" -SsoadfsAuthority ''
Se você também quiser desabilitar o SSO no seu servidor do AD FS, execute este cmdlet:
Install-Script UnConfigureWVDSSO
UnConfigureWVDSSO.ps1 -WvdWebAppAppIDUri "<WVD Web App URI>" -WvdClientAppApplicationID "a85cf173-4192-42f8-81fa-777a763e6e2c"
Observação
A propriedade WvdWebAppAppIDUri precisa corresponder à nuvem do Azure na qual você está implantando. Na Nuvem Comercial do Azure, essa propriedade é https://www.wvd.microsoft.com
. Ela será diferente em outras nuvens, como a nuvem do Azure Government.
Próximas etapas
Agora que você configurou o logon único, pode entrar em um cliente da Área de Trabalho Virtual do Azure com suporte para testá-lo como parte de uma sessão de usuário. Se você quiser saber como se conectar a uma sessão usando as suas novas credenciais, confira estes artigos: