Configurar o logon único para a Área de Trabalho Virtual do Azure usando o AD FS
Este artigo irá guiá-lo pelo processo de configuração do logon único (SSO) do Serviço de Federação do Ative Directory (AD FS) para a Área de Trabalho Virtual do Azure.
Pré-requisitos
Antes de configurar o logon único do AD FS, você deve ter a seguinte configuração em execução em seu ambiente:
Anfitriões de sessão com uma versão suportada do Windows 10 ou Windows 11.
Você deve implantar a função CA (Serviços de Certificados) do Ative Directory. Todos os servidores que executam a função devem ser associados ao domínio, ter as atualizações mais recentes do Windows instaladas e ser configurados como autoridades de certificação corporativas.
Você deve implantar a função Serviços de Federação do Ative Directory (AD FS). Todos os servidores que executam essa função devem estar associados a um domínio, ter as atualizações mais recentes do Windows instaladas e estar executando o Windows Server 2016 ou posterior. Consulte o nosso tutorial de federação para começar a configurar esta função.
Recomendamos configurar a função Proxy de Aplicativo Web para proteger a conexão do seu ambiente com os servidores AD FS. Todos os servidores que executam essa função devem ter as atualizações mais recentes do Windows instaladas e estar executando o Windows Server 2016 ou posterior. Consulte este guia de Proxy de Aplicativo Web para começar a configurar essa função.
Você deve implantar o Microsoft Entra Connect para sincronizar os usuários com o Microsoft Entra ID. O Microsoft Entra Connect deve ser configurado no modo de federação.
Configure seu ambiente do PowerShell para a Área de Trabalho Virtual do Azure no servidor AD FS.
Nota
Esta solução não é suportada com os Serviços de Domínio Microsoft Entra. Você deve usar um controlador de domínio dos Serviços de Domínio Ative Directory.
Clientes suportados
Os seguintes clientes de Ambiente de Trabalho Virtual do Azure suportam esta funcionalidade:
Configurar a autoridade de certificação para emitir certificados
Você deve 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 de logon do Smartcard, que o AD FS usará para criar o certificado de entrada.
Depois de criar esses modelos de certificado, você precisará habilitá-los na autoridade de certificação para que o AD FS possa solicitá-los.
Nota
Esta solução gera novos certificados de curto prazo sempre que um utilizador inicia sessão, o que pode preencher a base de dados da Autoridade de Certificação se tiver muitos utilizadores. Você pode evitar sobrecarregar seu banco de dados configurando uma autoridade de certificação para processamento de certificado não persistente. Se você fizer isso, no modelo de certificado de logon de cartão inteligente duplicado, certifique-se de habilitar apenas Não armazenar certificados e solicitações no banco de dados da autoridade de certificação. Não habilite Não inclua informações de revogação em certificados emitidos ou a configuração não funcionará.
Criar o modelo de certificado do agente de inscrição
Dependendo do seu ambiente, talvez você já tenha configurado um modelo de certificado de agente de registro para outras finalidades, como Windows Hello for Business, certificados de logon ou certificados VPN. Em caso afirmativo, você precisará modificá-lo para oferecer suporte ao SSO. Caso contrário, você pode criar um novo modelo.
Para determinar se você já está usando um modelo de certificado de agente de registro, execute o seguinte comando do PowerShell no servidor AD FS e veja se um valor é retornado. Se estiver vazio, crie um novo modelo de certificado de agente de inscrição. Caso contrário, lembre-se do nome e atualize o modelo de certificado de agente de registro existente.
Import-Module adfs
(Get-AdfsCertificateAuthority).EnrollmentAgentCertificateTemplateName
Para criar um novo modelo de certificado de agente de inscrição:
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>Adicione >>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 Modelo Duplicado.
Selecione a guia Geral e digite "Agente de registro do ADFS" no campo Nome para exibição do modelo. Isso definirá automaticamente o nome do modelo como "ADFSEnrollmentAgent".
Selecione o separador Segurança e, em seguida, selecione 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 isolada do AD FS, 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 Nomes de grupo ou 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 inscrição 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>Adicione >>OK para exibir a lista de modelos de certificado.
- Expanda os Modelos de Certificado, clique duas vezes no modelo que corresponde ao configurado no servidor AD FS. Na guia Geral, o nome do modelo deve corresponder ao nome encontrado acima.
- Selecione o separador Segurança e, em seguida, selecione 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 isolada do AD FS, 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 Nomes de grupo ou 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 do Smartcard
Para criar o modelo de certificado de logon Smartcard:
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>Adicione>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 Modelo duplicado.
Selecione a guia Geral e digite "ADFS SSO" no campo Nome para exibição do modelo. Isso definirá automaticamente o nome do modelo como "ADFSSSO".
Nota
Uma vez que este certificado é solicitado a pedido, recomendamos reduzir o período de validade para 8 horas e o período de renovação para 1 hora.
Selecione a guia Nome do assunto e, em seguida, selecione Fornecer na solicitação. Quando 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 Política de aplicativo, selecione Agente de solicitação de certificado.
Selecione o separador Segurança e, em seguida, selecione Adicionar....
Selecione Tipos de objeto..., Contas de serviço e OK.
Introduza o nome da conta de serviço para o AD FS tal como fez na secção Criar o modelo de certificado do agente de registo.
- Em uma configuração isolada do AD FS, 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 Nomes de grupo ou 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 visualizar 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 rato no painel central que mostra a lista de modelos de certificado, selecione Novo e, em seguida, selecione Modelo de Certificado a Emitir.
Selecione Agente de Registro do ADFS e SSO do ADFS e, em seguida, selecione OK. Você deve ver ambos os modelos no painel central.
Nota
Se você já tiver um modelo de certificado de agente de registro configurado, só precisará adicionar o modelo SSO do ADFS.
Configurar os Servidores AD FS
Você deve configurar os servidores dos Serviços de Federação do Ative Directory (AD FS) para usar os novos modelos de certificado e definir a confiança da parte dependente para dar suporte ao SSO.
A confiança da parte responsável entre o servidor 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 seu ambiente de domínio.
Ao configurar o logon único do AD FS, você deve escolher chave compartilhada ou certificado:
- Se você tiver um único servidor AD FS, poderá escolher chave compartilhada ou certificado.
- Se você tiver vários servidores AD FS, é necessário escolher o certificado.
A chave compartilhada ou o certificado usado para gerar o token para entrar no Windows deve ser armazenado com segurança no Cofre de Chaves do Azure. Você pode armazenar o segredo em um Cofre de Chaves existente ou implantar um novo. Em ambos os casos, você deve definir a política de acesso correta 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 sobre o nome da entidade ou o nome alternativo da entidade (SAN). Embora não seja obrigatório, é recomendável criar um certificado emitido por uma Autoridade de Certificação válida. Esse certificado pode ser criado diretamente no Cofre da Chave do Azure e precisa ter uma chave privada exportável. A chave pública pode ser exportada e usada para configurar o servidor AD FS usando o script abaixo. Observe que esse certificado é diferente do certificado SSL AD FS que deve ter um nome de assunto adequado e uma Autoridade de Certificação válida.
O script do PowerShell ConfigureWVDSSO.ps1 disponível na Galeria do PowerShell configurará seu servidor AD FS para a confiança da parte dependente e instalará o certificado, se necessário.
Este script tem apenas um parâmetro necessário, ADFSAuthority, que é o URL que resolve para o AD FS e usa "/adfs" como 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
Nota
Se você já tiver um EnrollmentAgentCertificateTemplate configurado, certifique-se de usar o nome do modelo existente em vez de ADFSEnrollmentAgent.
Execute o script ConfigureWVDSSO.ps1.
Nota
Você precisa dos
$config
valores das variáveis para concluir a próxima parte das instruções, portanto, não feche a janela do PowerShell usada para concluir as instruções anteriores. Você pode continuar usando a mesma janela do PowerShell ou deixá-la aberta ao iniciar uma nova sessão do PowerShell.Se você estiver usando uma chave compartilhada no Cofre da Chave, execute o seguinte cmdlet do PowerShell no servidor AD FS com ADFSServiceUrl substituído pela URL completa para acessar seu serviço AD FS:
Install-Script ConfigureWVDSSO $config = ConfigureWVDSSO.ps1 -ADFSAuthority "<ADFSServiceUrl>" [-WvdWebAppAppIDUri "<WVD Web App URI>"] [-RdWebURL "<RDWeb URL>"]
Nota
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 Cofre da Chave, execute o seguinte cmdlet do PowerShell no servidor AD FS com ADFSServiceUrl substituído pela URL completa para acessar seu serviço 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>"]
Nota
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 Cofre da Chave do Azure 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 Cofre de Chaves do Azure com uma Tag contendo uma lista separada por coma de IDs de assinatura permitidas para usar o segredo.
Se você estiver usando uma chave compartilhada no Cofre da Chave, execute o seguinte cmdlet do PowerShell para armazenar a chave compartilhada e definir a tag:
$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 Cofre da Chave, execute o seguinte cmdlet do PowerShell para definir a tag:
$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 Cofre da Chave e definir a tag:
$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)
Nota
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 8 horas em dispositivos não registrados.
Configurar o pool de hosts da Área de Trabalho Virtual do Azure
É hora de configurar os parâmetros AD FS SSO em seu pool de hosts da Área de Trabalho Virtual do Azure. Para fazer isso, configure seu ambiente do PowerShell para a Área de Trabalho Virtual do Azure, se ainda não o fez, e conecte-se à sua conta.
Depois disso, atualize as informações de SSO para seu pool de hosts executando um dos dois cmdlets a seguir na mesma janela do PowerShell na VM do AD FS:
Se você estiver usando uma chave compartilhada no Cofre da Chave, 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
Nota
Você precisa definir a propriedade SsoClientId para corresponder à 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 Cofre da Chave, 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
Nota
Você precisa definir a propriedade SsoClientId para corresponder à 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 hosts adicionais
Quando precisar configurar pools de hosts adicionais, você poderá recuperar as configurações usadas para configurar um pool de hosts existente para configurar o novo.
Para recuperar as configurações do pool de hosts 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 seu pool de hosts da Área de Trabalho Virtual do Azure usando os mesmos valores SsoClientId, SsoClientSecretKeyVaultPath, SsoSecretType e SsoadfsAuthority .
Removendo o SSO
Para desabilitar o SSO no pool de hosts, 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 servidor AD FS, execute este cmdlet:
Install-Script UnConfigureWVDSSO
UnConfigureWVDSSO.ps1 -WvdWebAppAppIDUri "<WVD Web App URI>" -WvdClientAppApplicationID "a85cf173-4192-42f8-81fa-777a763e6e2c"
Nota
A propriedade WvdWebAppIDUri precisa corresponder à nuvem do Azure na qual você está implantando. Na Nuvem Comercial do Azure, esta propriedade é https://www.wvd.microsoft.com
. Será diferente para outras nuvens, como a nuvem do Azure Government.
Próximos passos
Agora que configurou o início de sessão único, pode iniciar sessão num cliente de Ambiente de Trabalho Virtual do Azure suportado para testá-lo como parte de uma sessão de utilizador. Se você quiser saber como se conectar a uma sessão usando suas novas credenciais, confira estes artigos: