Citrix DaaS

Criar catálogos ingressados no Azure Active Directory

Este artigo descreve como criar catálogos ingressados do Azure Active Directory (AD) usando o Citrix DaaS.

Para obter informações sobre requisitos, limitações e considerações, consulte Ingressado no Azure Active Directory.

Antes de criar o catálogo de máquinas, você precisa do seguinte:

  1. Novo local de recursos
    • Navegue até a interface de usuário do administrador do Citrix Cloud > menu de hambúrguer superior esquerdo > Resource Locations.
    • Clique em + Resource Location.
    • Insira um nome para o novo local do recurso e clique em Save.
  2. Criar uma conexão de hospedagem. Consulte a seção Criar e gerenciar conexões para obter detalhes. Ao implantar máquinas no Azure, consulte Conexão com o Azure Resource Manager.
  3. Para excluir consistentemente dispositivos obsoletos do Azure AD e permitir que novos dispositivos ingressem no Azure AD, você pode atribuir a função Cloud Device Administrator à entidade de serviço de provisionamento. Se você não excluir os dispositivos AD obsoletos do Azure, a VM não persistente correspondente permanecerá no estado de inicialização até que você a remova manualmente do portal do Azure AD. Para fazer isso, habilite o gerenciamento de dispositivos ingressados no Azure AD de conexões de host usando a interface Full Configuration ou execute as seguintes etapas:

    1. Entre no portal do Azure e navegue até Azure Active Directory > Roles and administrators.
    2. Procure a função interna Cloud Device Administrator e clique em Add assignments para atribuir a função à entidade de serviço do aplicativo usado pela conexão de hospedagem.
    3. Use o Citrix Remote PowerShell SDK para executar os seguintes comandos para obter o CustomProperties existente da conexão de hospedagem. O ${HostingConnectionName} se refere ao nome da conexão de hospedagem.

      1. Abra uma janela do PowerShell.
      2. Execute o comando asnp citrix* para carregar os módulos do PowerShell específicos da Citrix.
      3. Execute o comando a seguir para obter as propriedades personalizadas existentes da conexão de hospedagem.

        (Get-Item -LiteralPath XDHyp:\Connections${HostingConnectionName}).CustomProperties
        <!--NeedCopy-->
        
      4. Copie CustomProperties da conexão para um bloco de notas e anexe a configuração da propriedade <Property xsi:type="StringProperty" Name="AzureAdDeviceManagement" Value="true" />.
      5. Na janela do PowerShell, atribua uma variável às propriedades personalizadas modificadas. Por exemplo, $UpdatedCustomProperties=’<CustomProperties …</CustomProperties>’.
      6. Defina a propriedade personalizada de volta para a conexão de hospedagem:

        Set-Item -LiteralPath XDHyp:\Connections${HostingConnectionName} -CustomProperties ${UpdatedCustomProperties} -ZoneUid ${ZoneUid}
        <!--NeedCopy-->
        
      7. Execute o comando (Get-Item -LiteralPath XDHyp:\Connections\${HostingConnectionName}).CustomProperties para verificar as configurações atualizadas da propriedade personalizada.

Você pode criar catálogos ingressados no Azure AD usando a interface Full Configuration ou o PowerShell.

Usar a interface Full Configuration

As informações a seguir são um complemento às orientações em Criar catálogos de máquinas. Para criar catálogos ingressados no Azure AD, siga as orientações gerais nesse artigo, considerando os detalhes específicos dos catálogos ingressados no Azure AD.

No assistente de criação de catálogo:

  1. Na página Master Image:
    • Selecione 2106 (ou posterior) como o nível funcional.
    • Selecione Use a machine profile e selecione a máquina apropriada na lista.
  2. Na página Machine Identities, selecione Azure Active Directory joined. As máquinas criadas pertencem a uma organização e estão conectadas a uma conta do Azure AD que pertence a essa organização. Elas existem apenas na nuvem.

    Nota:

    • O tipo de identidade Azure Active Directory joined requer a versão 2106 ou posterior como o nível funcional mínimo para o catálogo.
    • As máquinas são ingressadas no Azure AD associado com o locatário ao qual a conexão de hospedagem está vinculada.
  3. Os usuários devem receber acesso explícito no Azure para fazer login nas máquinas usando suas credenciais AAD. Consulte a seção Azure Active Directory ingressado para obter mais detalhes.

Usar o PowerShell

A seguir estão as etapas do PowerShell equivalentes às operações em Full Configuration. Para obter informações sobre como criar um catálogo usando o Remote PowerShell SDK, consulte https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/.

A diferença entre os catálogos ingressados no AD local e os ingressados no Azure AD está na criação do pool de identidades e do esquema de provisionamento.

Para criar um pool de identidades para catálogos ingressados no Azure AD:

New-AcctIdentityPool -AllowUnicode -IdentityType="AzureAD" -WorkgroupMachine -IdentityPoolName "AzureADJoinedCatalog" -NamingScheme "AzureAD-VM-##" -NamingSchemeType "Numeric" -Scope @() -ZoneUid "81291221-d2f2-49d2-ab12-bae5bbd0df05"
<!--NeedCopy-->

Para criar um esquema de provisionamento para catálogos ingressados no Azure AD, o parâmetro MachineProfile é necessário em New-ProvScheme:

New-ProvScheme -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"UseManagedDisks`" Value=`"true`" /><Property xsi:type=`"StringProperty`" Name=`"StorageType`" Value=`"StandardSSD_LRS`" /><Property xsi:type=`"StringProperty`" Name=`"LicenseType`" Value=`"Windows_Server`" /></CustomProperties>" -HostingUnitName "AzureResource" -IdentityPoolName "AzureADJoinedCatalog" -InitialBatchSizeHint 1 -MachineProfile "XDHyp:\HostingUnits\AzureResource\image.folder\azuread-rg.resourcegroup\MasterVDA.vm" -MasterImageVM "XDHyp:\HostingUnits\AzureResource\image.folder\azuread-rg.resourcegroup\azuread-small_OsDisk_1_5fb42fadf7ff460bb301ee0d56ea30da.manageddisk" -NetworkMapping @{"0"="XDHyp:\HostingUnits\AzureResource\virtualprivatecloud.folder\East US.region\virtualprivatecloud.folder\azuread-rg.resourcegroup\azuread-vnet.virtualprivatecloud\Test_VNET.network"} -ProvisioningSchemeName "AzureADJoinedCatalog" -RunAsynchronously -Scope @() -SecurityGroup @() -ServiceOffering "XDHyp:\HostingUnits\AzureResource\serviceoffering.folder\Standard_DS1_v2.serviceoffering"
<!--NeedCopy-->

Todos os outros comandos usados para criar catálogos ingressados no Azure AD são os mesmos dos tradicionais catálogos ingressados no AD local.

Exibir o status do processo de ingresso no Azure AD

Na interface Full Configuration, o status do processo de ingresso do Azure AD é visível quando as máquinas ingressadas no Azure AD em um grupo de entrega estão em um estado ligado. Para exibir o status, use Search para identificar as máquinas e depois a guia Details, no painel inferior, para cada Machine Identity. As informações a seguir podem aparecer em Machine Identity:

  • Ingressado no Azure AD
  • Not yet joined to Azure AD

Nota:

Se as máquinas não estiverem no estado ingressado no Azure AD, elas não serão registradas no Delivery Controller. O status de registro delas aparece como Initialization.

Além disso, usando a interface Full Configuration, você pode descobrir por que as máquinas não estão disponíveis. Para isso, clique em uma máquina no nó Search, selecione Registration na guia Details no painel inferior e leia a dica de ferramenta para obter informações adicionais.

Grupo de entrega

Consulte a seção Criar grupos de entrega para obter detalhes.

Habilitar Rendezvous

Depois que o grupo de entrega for criado, você pode habilitar o Rendezvous. Consulte Rendezvous V2 para obter detalhes.

Solucionar problemas

Se as máquinas não conseguirem ingressar no Azure AD, faça o seguinte:

  • Verifique se a identidade gerenciada atribuída ao sistema está habilitada para as máquinas. As máquinas provisionadas pelo MCS devem ter essa opção ativada automaticamente. O processo de ingresso do Azure AD falha sem a identidade gerenciada atribuída ao sistema. Se a identidade gerenciada atribuída ao sistema não estiver ativada para as máquinas provisionadas pelo MCS, o motivo pode ser:

    • IdentityType do pool de identidades associado ao esquema de provisionamento não está definido como AzureAD. Você pode verificar isso executando Get-AcctIdentityPool.
  • Verifique o status de provisionamento da extensão AADLoginForWindows das máquinas. O MCS depende dessa extensão para ingressar uma máquina virtual no Azure AD. Se a extensão AADLoginForWindows não existir, os motivos podem ser:

    • IdentityType do pool de identidades associado ao esquema de provisionamento não está definido como AzureAD. Você pode verificar isso executando Get-AcctIdentityPool.

    • A instalação da extensão AADLoginForWindows está bloqueada pela política do Azure.

  • Para solucionar falhas de provisionamento de extensões AADLoginForWindows, você pode verificar os logs em C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.ActiveDirectory.AADLoginForWindows na máquina provisionada pelo MCS.

  • Verifique o status de ingresso e os logs de depuração do Azure AD executando o comando dsregcmd /status /debug na máquina provisionada pelo MCS.

  • Verifique os logs de eventos do Windows em Logs de Aplicativos e Serviços > Microsoft > Windows > Registro de dispositivo de usuário.
  • Verifique se o gerenciamento de dispositivo do Azure AD está configurado corretamente executando Get-Item -LiteralPath XDHyp:\Connections\${HostingConnectionName}.

    Certifique-se de que o valor de:

    • propriedade AzureAdDeviceManagement em CustomProperties é true
    • propriedade Citrix_MCS_AzureAdDeviceManagement_PermissionGranted em metadado é true

    Se Citrix_MCS_AzureAdDeviceManagement_PermissionGranted for false, isso indica que o ServicePrincipal do aplicativo usado pela conexão de hospedagem não tem permissões suficientes para realizar o gerenciamento de dispositivo do Azure AD. Para resolver isso, atribua o ServicePrincipal com a função Cloud Device Administrator.

Grupo de segurança dinâmico do Azure Active Directory

As regras do grupo dinâmico colocam as VMs no catálogo em um grupo de segurança dinâmico com base no esquema de nomenclatura do catálogo de máquinas.

Se o esquema de nomenclatura do catálogo de máquinas for Test### (onde # significa número), a Citrix cria a regra de associação dinâmica ^Test[0-9]{3}$ no grupo de segurança dinâmico. Agora, se o nome da VM criada pela Citrix for algo que varia de Test001 a Test999, a VM será incluída no grupo de segurança dinâmico.

Nota:

Se o nome da VM criada por você manualmente for algo que varia de Test001 a Test999, a VM também será incluída no grupo de segurança dinâmico. Essa é uma das limitações do grupo de segurança dinâmico.

O recurso de grupo de segurança dinâmico é útil quando você deseja gerenciar as VMs pelo Azure Active Directory (Azure AD). Ele também é útil quando você deseja aplicar políticas de acesso condicional ou distribuir aplicativos do Intune filtrando as VMs com o grupo de segurança dinâmico do Azure AD.

Você pode usar os comandos do PowerShell para:

  • Criar um catálogo de máquinas com o grupo de segurança dinâmico do Azure AD
  • Habilitar o recurso de grupo de segurança para um catálogo do Azure AD
  • Excluir um catálogo de máquinas com o grupo de segurança do dispositivo ingressado no Azure AD

Importante:

  • Para criar um catálogo de máquinas com o grupo de segurança dinâmico do Azure AD, adicionar máquinas ao catálogo e excluir o catálogo de máquinas, você deve ter o token de acesso do Azure AD. Para obter informações sobre como obter o token de acesso do Azure AD, consulte https://docs.microsoft.com/en-us/graph/graph-explorer/graph-explorer-features#consent-to-permissions/.
  • Para solicitar um token de acesso no Azure AD, a Citrix solicita a permissão Group.ReadWrite.All para a API do Microsoft Graph. Um usuário do Azure AD que tenha permissão de consentimento de administrador de todos os locatários pode conceder permissão Group.ReadWrite.All para a API do Microsoft Graph. Para obter informações sobre como conceder consentimento de administrador de todos os locatários a um aplicativo no Azure Active Directory (Azure AD), consulte o documento da Microsoft https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/grant-admin-consent/.

Criar um catálogo de máquinas com o grupo de segurança dinâmico do Azure AD

  1. Na interface de usuário de configuração do catálogo de máquinas do console baseado na web, na página Machine Identities, selecione Azure Active Directory joined.
  2. Faça login no Azure AD.
  3. Obtenha o token de acesso para a API do MS Graph. Use esse token de acesso como um valor de parâmetro $AzureADAccessToken ao executar os comandos do PowerShell.
  4. Execute o comando a seguir para verificar se o nome do grupo de segurança dinâmico existe no locatário.

    Get-AcctAzureADSecurityGroup
    –AccessToken  $AzureADAccessToken
    –Name "SecurityGroupName"
    <!--NeedCopy-->
    
  5. Crie um catálogo de máquinas usando o ID do locatário, o token de acesso e o grupo de segurança dinâmico. Execute o comando a seguir para criar um IdentityPool com IdentityType=AzureAD e criar um grupo de segurança dinâmico no Azure.

    New-AcctIdentityPool
    -AllowUnicode
    -IdentityPoolName "SecurityGroupCatalog"
    -NamingScheme "SG-VM-###"
    -NamingSchemeType "Numeric" -Scope @()
    -ZoneUid "81291221-d2f2-49d2-ab12-bae5bbd0df05"
    -WorkgroupMachine
    -IdentityType "AzureAD"
    -DeviceManagementType "None"
    -AzureADTenantId  620387bb-9167-4bdd-8435-e3dccc58369e
    -AzureADSecurityGroupName "SecurityGroupName"
    -AzureADAccessToken $AzureADAccessToken
    <!--NeedCopy-->
    

Habilitar o recurso de grupo de segurança para um catálogo do Azure AD

Você pode ativar o recurso de segurança dinâmico para um catálogo do Azure AD que foi criado sem o recurso de grupo de segurança dinâmico ativado. Para isso:

  1. Crie manualmente um novo grupo de segurança dinâmico. Você também pode reutilizar um grupo de segurança dinâmico existente.
  2. Faça login no Azure AD e obtenha o token de acesso para a API do MS Graph. Use esse token de acesso como um valor de parâmetro $AzureADAccessToken ao executar os comandos do PowerShell.

    Nota:

    Para obter informações sobre as permissões exigidas pelo usuário do Azure AD, consulte https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/grant-admin-consent#prerequisites/.

  3. Execute o comando a seguir para conectar o pool de identidades ao grupo de segurança dinâmico do Azure AD criado.

    Set-AcctIdentityPool
    -IdentityPoolName "SecurityGroupCatalog"
    -AzureADTenantId 620387bb-9167-4bdd-8435-e3dccc58369e
    -AzureADSecurityGroupNam "ExistingSecurityGroupName"
    -AzureADAccessToken $AzureADAccessToken
    <!--NeedCopy-->
    

Se você atualizar o esquema de nomenclatura, a Citrix atualizará o esquema de nomenclatura para uma nova regra de associação. Se você excluir o catálogo, a regra de associação será excluída, não o grupo de segurança.

Excluir um catálogo de máquinas com o grupo de segurança do dispositivo ingressado no Azure AD

Quando você exclui um catálogo de máquinas, o grupo de segurança do dispositivo ingressado no Azure AD também é excluído.

Para excluir o grupo de segurança dinâmico do Azure AD, faça o seguinte:

  1. Faça login no Azure AD.
  2. Obtenha o token de acesso para a API do MS Graph. Use esse token de acesso como valor do parâmetro $AzureADAccessToken ao executar os comandos do PowerShell.
  3. Execute o seguinte comando:

    Remove-AcctIdentityPool
    -IdentityPoolName "SecurityGroupCatalog"
    -AzureADAccessToken $AzureADAccessToken
    <!--NeedCopy-->
    

Criar um grupo de segurança dinâmico do Azure AD em um grupo de segurança existente atribuído ao Azure AD

Você pode criar um grupo de segurança dinâmico do Azure AD em um grupo de segurança existente atribuído ao Azure AD. Você pode fazer o seguinte:

  • Obter informações do grupo de segurança.
  • Obter todos os grupos de segurança atribuídos ao Azure AD que são sincronizados a partir do servidor AD local ou dos grupos de segurança atribuídos aos quais as funções do Azure AD podem ser atribuídas.
  • Obter todos os grupos de segurança dinâmicos do Azure AD.
  • Adicionar o grupo de segurança dinâmico do Azure AD como um membro do grupo atribuído do Azure AD.
  • Remover a associação entre o grupo de segurança dinâmico do Azure AD e o grupo de segurança atribuído ao Azure AD quando o grupo de segurança dinâmico do Azure AD for excluído juntamente com o catálogo da máquina.

Você também pode ver mensagens de erro explícitas quando alguma das operações falhar.

Requisito:

Você deve ter o token de acesso à API do MS Graph quando executar os comandos do PowerShell.

Para obter o token de acesso:

  1. Abra o Microsoft Graph Explorer e faça login no Azure AD.
  2. Certifique-se de ter consentimento para as permissões Group.ReadWrite.All e GroupMember.ReadWrite.All.
  3. Obtenha o token de acesso do Microsoft Graph Explorer. Use esse token de acesso ao executar os comandos do PowerShell.

Para obter informações do grupo de segurança por ID de grupo:

  1. Obtenha o token de acesso.
  2. Encontre a ID do objeto do grupo no portal do Azure.
  3. Execute o seguinte comando do PowerShell no console do PowerShell:

    Get-AcctAzureADSecurityGroup
    -AccessToken <token> -GroupId <GroupUid>
    <!--NeedCopy-->
    

Para obter grupos de segurança por nome de exibição do grupo:

  1. Obtenha o token de acesso.
  2. Execute o seguinte comando do PowerShell no console do PowerShell:

    Get-AcctAzureADSecurityGroup
    -AccessToken <token>
    -Name <TargetGroupDisplayName>
    <!--NeedCopy-->
    

Para obter os grupos de segurança cujo nome de exibição contém uma sub-sequência de caracteres:

  1. Obtenha o token de acesso.
  2. Execute o seguinte comando do PowerShell no console do PowerShell:

    Get-AcctAzureADSecurityGroup
    -AccessToken <token>
    -SearchString <displayNameSubString>
    <!--NeedCopy-->
    

Para obter todos os grupos de segurança atribuídos ao Azure AD que são sincronizados a partir do servidor AD local ou dos grupos de segurança atribuídos aos quais as funções do Azure AD podem ser atribuídas:

  1. Obtenha o token de acesso.
  2. Execute o seguinte comando do PowerShell no console do PowerShell:

    Get-AcctAzureADSecurityGroup
    -AccessToken <token>
    -Assigned true
    <!--NeedCopy-->
    

Para obter todos os grupos de segurança dinâmicos do Azure AD:

  1. Obtenha o token de acesso.
  2. Execute o seguinte comando do PowerShell no console do PowerShell:

    Get-AcctAzureADSecurityGroup
    -AccessToken <token>
    -Dynamic true
    <!--NeedCopy-->
    

Para obter os grupos de segurança atribuídos ao Azure AD com o número máximo de registros:

  1. Obtenha o token de acesso.
  2. Execute o seguinte comando do PowerShell no console do PowerShell:

    Get-AcctAzureADSecurityGroup
    -AccessToken <token>
    -Assigned true
    -MaxRecordCount 10
    <!--NeedCopy-->
    

Para adicionar o grupo de segurança dinâmico do Azure AD como um membro do grupo de segurança atribuído do Azure AD:

  1. Obtenha o token de acesso.
  2. Execute o seguinte comando do PowerShell no console do PowerShell:

    Add-AcctAzureADSecurityGroupMember
    -AccessToken <token>
    -GroupId <ASG-Id>
    -RefGroupId <DSG-Id>
    <!--NeedCopy-->
    

Para obter os membros do grupo de segurança atribuídos do Azure AD:

  1. Obtenha o token de acesso.
  2. Execute o seguinte comando do PowerShell no console do PowerShell:

    Get-AcctAzureADSecurityGroupMember
    -AccessToken <token>
    -GroupId <ASG-Id>
    <!--NeedCopy-->
    

    Nota:

    Get-AcctAzureADSecurityGroupMember fornece somente os membros diretos do tipo de grupo de segurança sob o grupo de segurança atribuído do Azure AD.

Para remover a associação entre o grupo de segurança dinâmico do Azure AD e o grupo de segurança atribuído ao Azure AD quando o grupo de segurança dinâmico do Azure AD for excluído juntamente com o catálogo da máquina:

  1. Obtenha o token de acesso.
  2. Execute o seguinte comando do PowerShell no console do PowerShell:

    Remove-AcctIdentityPool
    -IdentityPoolName "SecurityGroupCatalog"
    -AzureADAccessToken $AzureADAccessToken
    <!--NeedCopy-->
    

Modificar o nome do grupo de segurança dinâmico do Azure AD

Você pode modificar o nome do grupo de segurança dinâmico do Azure AD associado a um catálogo de máquinas. Essa modificação faz com que as informações do grupo de segurança armazenadas no objeto do pool de identidades do Azure AD sejam consistentes com as informações armazenadas no portal do Azure.

Nota:

Os grupos de segurança dinâmicos do Azure AD não incluem grupos de segurança sincronizados do AD local e outros tipos de grupo, como o grupo do Office 365.

Você pode modificar o nome do grupo de segurança dinâmico do Azure AD usando a interface Full Configuration e os comandos do PowerShell.

Para modificar o nome do grupo de segurança dinâmico do Azure AD usando o PowerShell:

  1. Abra uma janela do PowerShell.
  2. Execute o comando asnp citrix* para carregar os módulos do PowerShell específicos da Citrix.
  3. Execute o comando Set-AcctIdentityPool -AzureAdSeurityGroupName [DSG-Name].

Você receberá mensagens de erro apropriadas se o nome do grupo de segurança dinâmico do Azure AD não puder ser modificado.