Citrix DaaS

Conexão com o Microsoft Azure

Observação:

Desde julho de 2023, a Microsoft renomeou o Azure Active Directory (Azure AD) para Microsoft Entra ID. Neste documento, qualquer referência ao Azure Active Directory, Azure AD ou AAD agora se refere à ID do Microsoft Entra.

Criar e gerenciar conexões e recursos Descreve os assistentes que criam uma conexão. As informações a seguir abrangem detalhes específicos dos ambientes de nuvem do Azure Resource Manager.

Observação:

Antes de criar uma conexão com o Microsoft Azure, você deve concluir a configuração de sua conta do Azure como um local de recurso. Ver Ambientes de virtualização do Microsoft Azure Resource Manager.

Criar entidades de serviço e conexões

Antes de criar conexões, você deve configurar as entidades de serviço que as conexões usam para acessar os recursos do Azure. Você pode criar uma conexão de duas maneiras:

  • Criar uma entidade de serviço e uma conexão juntas usando o Studio
  • Criar uma conexão usando uma entidade de serviço criada anteriormente

Esta seção mostra como concluir estas tarefas:

Considerações

Antes de começar, esteja ciente destas considerações:

  • A Citrix recomenda o uso de entidades de serviço com um Contribuinte papel. No entanto, consulte o Permissões mínimas para obter a lista de permissões mínimas.
  • Ao criar a primeira conexão, o Azure solicita que você conceda as permissões necessárias. Para conexões futuras, você ainda deve se autenticar, mas o Azure lembra seu consentimento anterior e não exibe o prompt novamente.
  • Depois de autenticar com o Azure pela primeira vez, um aplicativo multilocatário de propriedade da Citrix (ID: 08b70dc3-76c5-4611-ba7d-3312ba36cb2b) é convidado para o Azure Active Directory em nome da conta autenticada.
  • As contas usadas para autenticação devem ter permissões para atribuir funções na assinatura usando o RBAC do Azure. Exemplo, Proprietário, Administrador de Controle de Acesso Baseado em Função ou Administrador de Acesso do Usuário da assinatura.
  • A conta usada para autenticação deve ser membro do diretório da assinatura. Há dois tipos de contas a serem observadas: ‘Trabalho ou Escola’ e ‘conta pessoal da Microsoft’. Ver CTX219211 para obter detalhes.
  • Embora você possa usar uma conta da Microsoft existente adicionando-a como membro do diretório da assinatura, pode haver complicações se o usuário tiver recebido anteriormente acesso de convidado a um dos recursos do diretório. Nesse caso, eles podem ter uma entrada de espaço reservado no diretório que não concede as permissões necessárias e um erro é retornado.

    Corrija isso removendo os recursos do diretório e adicionando-os de volta explicitamente. No entanto, exerça essa opção com cuidado, pois ela tem efeitos não intencionais em outros recursos que essa conta pode acessar.

  • Há um problema conhecido em que determinadas contas são detectadas como convidados do diretório quando na verdade são membros. Configurações como essa geralmente ocorrem com contas de diretório estabelecidas mais antigas. Solução alternativa: adicione uma conta ao diretório, que usa o valor de associação adequado.
  • Os grupos de recursos são simplesmente contêineres para recursos e podem conter recursos de regiões diferentes de sua própria região. Isso pode ser potencialmente confuso se você espera que os recursos exibidos na região de um grupo de recursos estejam disponíveis.
  • Certifique-se de que sua rede e sub-rede sejam grandes o suficiente para hospedar o número de máquinas necessárias. Isso requer alguma previsão, mas a Microsoft ajuda você a especificar os valores corretos, com diretrizes sobre a capacidade do espaço de endereço.

Criar uma entidade de serviço e uma conexão usando o Studio

Importante:

Esse recurso ainda não está disponível para assinaturas do Azure China.

Com o Studio, você pode criar uma entidade de serviço e uma conexão em um único fluxo de trabalho. As entidades de serviço fornecem às conexões acesso aos recursos do Azure. Quando você se autentica no Azure para criar uma entidade de serviço, um aplicativo é registrado no Azure. Uma chave secreta (chamada segredo do cliente ou Segredo do aplicativo) é criado para o aplicativo registrado. O pedido registrado (um conexão nesse caso) usa o segredo do cliente para autenticar no Azure AD.

Antes de começar, verifique se você atendeu a estes pré-requisitos:

  • Você tem uma conta de usuário no locatário do Azure Active Directory da sua assinatura.
  • As contas usadas para autenticação devem ter permissões para atribuir funções na assinatura usando o RBAC do Azure. Exemplo, Proprietário, Administrador de Controle de Acesso Baseado em Função ou Administrador de Acesso do Usuário da assinatura.
  • Você tem permissões de administrador global, administrador de aplicativos ou desenvolvedor de aplicativos para autenticação. As permissões podem ser revogadas depois que você cria uma conexão de host. Para obter mais informações sobre funções, consulte Funções internas do Azure AD.

Use o Adicionar conexão e recursos assistente para criar uma entidade de serviço e uma conexão:

  1. No Conexão , selecione Criar uma nova conexãoo Microsoft Azure tipo de conexão e seu ambiente do Azure.

  2. Selecione quais ferramentas usar para criar as máquinas virtuais e, em seguida, selecione Próximo.

  3. No Detalhes da conexão , crie uma entidade de serviço e defina o nome da conexão da seguinte maneira:

    1. Insira sua ID de assinatura do Azure e um nome para a conexão. Depois de inserir a ID da assinatura, o Criar novo está ativado.

    Observação:

    O nome da conexão pode conter de 1 a 64 caracteres e não pode conter apenas espaços em branco ou os caracteres \/;:#.*?=<>|[]{}"'()'.

    1. Selecionar Criar novo e, em seguida, insira o nome de usuário e a senha da conta do Azure Active Directory.
    2. Selecionar Entrar.
    3. Selecionar Aceitar para dar ao Citrix DaaS as permissões listadas. O Azure cria uma entidade de serviço que permite que o Citrix DaaS gerencie recursos do Azure em nome do usuário especificado.
    > **Observação:**
    >
    > O Citrix DaaS requer as seguintes permissões para criar uma nova entidade de serviço:
    >
    > -  **Acesse o Gerenciamento de Serviços do Azure como você**
    > -  **Aplicativos de leitura e gravação**
    > -  **Faça login e leia seu perfil**
    > -  **Manter o acesso aos dados aos quais você concedeu acesso**
    
    1. Depois de selecionar Aceitar, você é levado de volta ao Detalhes da conexão página.

      Observação:

      Depois de autenticar com êxito no Azure, o Criar novo e Use os existentes botões desaparecem. O Conexão bem-sucedida aparece com uma marca de seleção verde, indicando a conexão bem-sucedida com sua assinatura do Azure.

    2. Para rotear solicitações de API para o Azure por meio do Citrix Cloud Connectors, selecione o Rotear o tráfego por meio do Citrix Cloud Connectors caixa de seleção.

      Como alternativa, você pode habilitar esse recurso usando o PowerShell. Para obter mais informações, consulte Criar um ambiente seguro para o tráfego gerenciado pelo Azure.

      Observação:

      Essa opção está disponível somente quando há Citrix Cloud Connectors ativos em sua implantação. Atualmente, esse recurso não é compatível com dispositivos de conector.

    3. Selecionar Próximo.

    Observação:

    Você não pode prosseguir para a próxima página até que seja autenticado com êxito no Azure e concorde em conceder as permissões necessárias.

  4. Configure os recursos para a conexão da seguinte maneira:

    • No Região , selecione uma região.
    • No Rede , faça o seguinte:
      • Digite um nome de recurso de 1 a 64 caracteres para ajudar a identificar a combinação de região e rede. Um nome de recurso não pode conter apenas espaços em branco ou os caracteres \/;:#.*?=<>|[]{}"'()'.
      • Selecione um par de rede virtual/grupo de recursos. (Se você tiver mais de uma rede virtual com o mesmo nome, o emparelhamento do nome da rede com o grupo de recursos fornecerá combinações exclusivas.) Se a região selecionada na página anterior não tiver redes virtuais, retorne a essa página e selecione uma região que tenha redes virtuais.
  5. No Resumo , visualize um resumo das configurações e selecione Acabar para concluir sua configuração.

Exibir a ID do aplicativo

Depois de criar uma conexão de gerenciamento de dispositivos ingressada no Azure AD cofEnable, você pode exibir a ID do aplicativo que a conexão usa para acessar os recursos do Azure.

No Adicionar conexão e recursos , selecione a conexão para exibir os detalhes. O Detalhes mostra a ID do aplicativo.

ID do aplicativo na página Adicionar conexão e recursos

Criar uma entidade de serviço usando o PowerShell

Para criar uma entidade de serviço usando o PowerShell, conecte-se à sua assinatura do Azure Resource Manager e use os cmdlets do PowerShell fornecidos nas seções a seguir.

Certifique-se de ter estes itens prontos:

  • ID da assinatura: Azure Resource Manager ID da assinatura para a assinatura em que você deseja provisionar VDAs.
  • ActiveDirectoryID: ID do locatário do aplicativo que você registrou no Azure AD.
  • Nome do aplicativo: Nome do aplicativo a ser criado no Azure AD.

As etapas detalhadas são as seguintes:

  1. Conecte-se à sua assinatura do Azure Resource Manager.

    Connect-AzAccount

  2. Selecione a assinatura do Azure Resource Manager em que você deseja criar a entidade de serviço.

    Get-AzSubscription -SubscriptionId $subscriptionId | Select-AzSubscription

  3. Crie o aplicativo em seu locatário do AD.

    $AzureADApplication = New-AzADApplication -DisplayName $ApplicationName

  4. Crie uma entidade de serviço.

    New-AzADServicePrincipal -ApplicationId $AzureADApplication.AppId

  5. Atribua uma função à entidade de serviço.

    New-AzRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $AzureADApplication.AppId –scope /subscriptions/$SubscriptionId

  6. Na janela de saída do console do PowerShell, observe o ApplicationId. Você fornece essa ID ao criar a conexão de host.

Obter o segredo do aplicativo no Azure

Para Criar uma conexão usando uma entidade de serviço existente, primeiro você deve obter a ID do aplicativo e o segredo da entidade de serviço no portal do Azure.

As etapas detalhadas são as seguintes:

  1. Obtenha o ID do aplicativo do Studio ou usando o PowerShell.
  2. Entre no portal do Azure.
  3. No Azure, selecione Azure Active Directory.
  4. De Registros de aplicativos no Azure AD, selecione seu aplicativo.
  5. Ir para Certificados & Segredos.
  6. Clique Segredos do cliente.

Segredo do aplicativo no portal do Azure

Criar uma conexão usando uma entidade de serviço existente

Se você já tiver uma entidade de serviço, poderá usá-la para criar uma conexão usando o Studio.

Certifique-se de ter estes itens prontos:

  • ID da assinatura
  • ActiveDirectoryID (ID do locatário)
  • ID do aplicativo
  • Segredo do aplicativo

    Para obter mais informações, consulte Obter o segredo do aplicativo.

  • Data de expiração do segredo

As etapas detalhadas são as seguintes:

No Adicionar conexão e recursos mago:

  1. No Conexão , selecione Criar uma nova conexãoo Microsoft Azure tipo de conexão e seu ambiente do Azure.

  2. Selecione quais ferramentas usar para criar as máquinas virtuais e, em seguida, selecione Próximo.

  3. No Detalhes da conexão , insira sua ID de assinatura do Azure e um nome para a conexão.

    Observação:

    O nome da conexão pode conter de 1 a 64 caracteres e não pode conter apenas espaços em branco ou os caracteres \/;:#.*?=<>|[]{}"'()'.

  4. Selecionar Use os existentes. No Detalhes da entidade de serviço existente , insira as configurações a seguir para a entidade de serviço existente. Depois de inserir os detalhes, o Salvar está ativado. Selecionar Salvar. Você não pode progredir além desta página até fornecer detalhes válidos.

    • ID da assinatura. Insira sua ID de assinatura do Azure. Para obter sua ID de assinatura, entre no portal do Azure e navegue até Assinaturas > Visão geral.
    • Active Directory ID (ID do locatário). Insira a ID do diretório (locatário) do aplicativo que você registrou no Azure AD.
    • ID do aplicativo. Insira a ID do aplicativo (cliente) do aplicativo que você registrou no Azure AD.
    • Segredo do aplicativo. Insira uma chave secreta (segredo do cliente). O aplicativo registrado usa a chave para autenticar no Azure AD. Recomendamos que você troque as chaves regularmente por motivos de segurança. Certifique-se de salvar a chave, pois você não pode recuperá-la posteriormente.
    • Data de expiração do segredo. Insira a data após a qual o segredo do aplicativo expira. Você recebe um alerta no console a partir de 14 dias antes da expiração da chave secreta. No entanto, se a chave secreta expirar, você receberá erros.

      Observação:

      Por motivos de segurança, o período de expiração não pode ser superior a dois anos.

    • URL de autenticação. Esse campo é preenchido automaticamente e não é editável.
    • URL de gerenciamento. Esse campo é preenchido automaticamente e não é editável.
    • Sufixo de armazenamento. Esse campo é preenchido automaticamente e não é editável.
    • Ponto de extremidade de armazenamento de blobs do Azure para carregar ou baixar discos ou instantâneos. Esse campo é preenchido automaticamente e não é editável.
    • Serviço Key Vault. Esse campo é preenchido automaticamente e não é editável.
    • Sufixo do barramento de serviço. Esse campo é preenchido automaticamente e não é editável.

      O acesso aos pontos de extremidade a seguir é necessário para criar um catálogo MCS no Azure. O acesso a esses pontos de extremidade otimiza a conectividade entre sua rede e o portal do Azure e seus serviços.

      • URL de autenticação: https://login.microsoftonline.com
      • URL de gerenciamento: https://management.azure.com. Essa é uma URL de solicitação para APIs de provedor do Azure Resource Manager. O ponto de extremidade para gerenciamento depende do ambiente. Por exemplo, para o Azure Global, é https://management.azure.come, para o Azure US Government, é https://management.usgovcloudapi.net.
      • Sufixo de armazenamento: https://*.core.windows.net (em inglês). Este (*) é um caractere curinga para o sufixo de armazenamento. Por exemplo https://demo.table.core.windows.net.
      • Ponto de extremidade de armazenamento de blobs do Azure para carregar ou baixar discos ou instantâneos: https://*.storage.azure.net (em inglês). Esse (*) é um caractere curinga para operações de importação e exportação do armazenamento de blobs. Por exemplo https://md-impexp-xxxxx.z[00-50].blob.storage.azure.net.
      • Serviço do cofre de chaves: https://*.vault.azure.net (em inglês). Esse (*) é um caractere curinga para o nome do cofre de chaves. Por exemplo https://<your-key-vault-name>.vault.azure.net.
      • Sufixo do barramento de serviço: https://*.servicebus.windows.net (em inglês). Esse (*) é um caractere curinga para namespaces criados na nuvem global do Azure. Por exemplo https://{serviceNamespace}.servicebus.windows.net/{path}.
  5. Depois de selecionar Salvar, você é levado de volta ao Detalhes da conexão página. Selecionar Próximo para prosseguir para a próxima página.

  6. Configure os recursos para a conexão da seguinte maneira:

    • No Região , selecione uma região.
    • No Rede , faça o seguinte:
      • Digite um nome de recurso de 1 a 64 caracteres para ajudar a identificar a combinação de região e rede. Um nome de recurso não pode conter apenas espaços em branco ou os caracteres \/;:#.*?=<>|[]{}"'()'.
      • Selecione um par de rede virtual/grupo de recursos. (Se você tiver mais de uma rede virtual com o mesmo nome, o emparelhamento do nome da rede com o grupo de recursos fornecerá combinações exclusivas.) Se a região selecionada na página anterior não tiver redes virtuais, retorne a essa página e selecione uma região que tenha redes virtuais.
  7. No Resumo , visualize um resumo das configurações e selecione Acabar para concluir sua configuração.

Criar uma conexão de host usando a Identidade Gerenciada do Azure

Você pode criar uma conexão de host com o Microsoft Azure Resource Manager usando a Identidade Gerenciada do Azure. As identidades gerenciadas do Azure oferecem uma maneira segura e escalonável de acessar os serviços do Azure sem a necessidade de gerenciar credenciais. Essa abordagem elimina os riscos associados ao armazenamento, rotação e gerenciamento de segredos.

Você pode criar essa conexão de host usando um novo CustomProperty Modo de autenticação. O Modo de autenticação tem três opções: AppClientSecret, SystemAssignedManagedIdentitye UserAssignedManagedIdentity.

A seguir está a descrição das opções:

  • AppClientSecret: Este é o valor padrão. Isso precisa de uma ID de aplicativo e segredo.
  • UserAssignedManagedIdentity: Isso precisa que um ID do cliente seja fornecido por meio de um UserName.
  • SystemAssignedManagedIdentity: Isso não precisa de nenhuma entrada. Mesmo que você forneça o ID do cliente, ele será ignorado.

Condição:

O parâmetro ProxyHypervisorTrafficThroughConnector deve ser true para usar a identidade gerenciada.

A seguir estão as etapas para criar a conexão de host usando a Identidade Gerenciada do Azure:

  1. Instale um Citrix Cloud Connector em uma VM do Azure.
  2. Habilite a Identidade Gerenciada do Azure nessa VM do Cloud Connector.

    • Para a identidade gerenciada atribuída pelo usuário:

      1. No portal do Azure, crie uma identidade gerenciada atribuída pelo usuário. Para obter informações, consulte Criar e atribuir uma Identidade Gerenciada Atribuída pelo Usuário.
      2. Atribua funções do Azure à identidade gerenciada. Consulte Permissões necessárias do Azure.
      3. Crie uma VM do Azure como um Cloud Connector e adicione a identidade atribuída pelo usuário a ela.
    • Para a identidade gerenciada atribuída pelo sistema:

      1. Abra o portal do Azure e vá para sua VM.
      2. Selecione a folha Identidade nas configurações da VM.
      3. Na guia Sistema atribuído, defina o status como Ativado.
      4. Clique em Salvar.
      5. Subvenção Permissões necessárias do Azure.

      Observação:

      Se você habilitar a identidade gerenciada atribuída pelo sistema em uma VM do Cloud Connector e usá-la para criar uma conexão de host, ainda poderá criar conexões de host com a identidade gerenciada atribuída pelo sistema, mesmo depois de desabilitá-la na VM do Cloud Connector. A criação de conexões de host pode ser bem-sucedida mesmo 24 horas após a identidade ter sido desabilitada. Isso acontece porque os tokens de identidade gerenciada são armazenados em cache pela infraestrutura subjacente do Azure. Para obter mais informações, consulte Os tokens de identidades gerenciadas são armazenados em cache?.

  3. Crie a conexão de host com esse novo tipo de autenticação usando os comandos do PowerShell:

    1. Abra uma janela do PowerShell.
    2. Execute asnp citrix* para carregar os módulos PowerShell específicos do Citrix.
    3. Crie conexões de host. Por exemplo:

      • Para a identidade gerenciada atribuída pelo usuário:

        $UserName = "should be the Client ID of the user-assigned managed identity" $Password = "It can be any string.Not used" $CustomProperties = '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' ` + '<Property xsi:type="StringProperty" Name="SubscriptionId" Value="' + $SubscriptionId + '" />'` + '<Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/" />'` + '<Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/" />'` + '<Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net" />'` + '<Property xsi:type="StringProperty" Name="TenantId" Value="' + $TenantId + '" />'` + '<Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" />'` + '<Property xsi:type="StringProperty" Name="AuthenticationMode" Value="UserAssignedManagedIdentity" />'` + '</CustomProperties>' New-Item -ConnectionType "Custom" ` -CustomProperties $CustomProperties ` -HypervisorAddress @($HypervisorAddress) ` -Path @("XDHyp:\Connections\$($ConnectionName)") ` -Metadata $Metadata ` -Persist ` -PluginId "AzureRmFactory" ` -Scope @() ` -Password $Password ` -UserName $UserName ` -ZoneUid $zoneUid
      • Para a identidade gerenciada atribuída pelo sistema:

        $UserName = "It can be any string. Not used" $Password = "It can be any string. Not used" $CustomProperties = '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' ` + '<Property xsi:type="StringProperty" Name="SubscriptionId" Value="' + $SubscriptionId + '" />'` + '<Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/" />'` + '<Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/" />'` + '<Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net" />'` + '<Property xsi:type="StringProperty" Name="TenantId" Value="' + $TenantId + '" />'` + '<Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" />'` + '<Property xsi:type="StringProperty" Name="AuthenticationMode" Value="SystemAssignedManagedIdentity" />'` + '</CustomProperties>' New-Item -ConnectionType "Custom" ` -CustomProperties $CustomProperties ` -HypervisorAddress @($HypervisorAddress) ` -Path @("XDHyp:\Connections\$($ConnectionName)") ` -Metadata $Metadata ` -Persist ` -PluginId "AzureRmFactory" ` -Scope @() ` -Password $Password ` -UserName $UserName ` -ZoneUid $zoneUid

Você também pode atualizar uma conexão de host existente para usar uma identidade atribuída pelo sistema ou uma identidade gerenciada atribuída pelo usuário. Por exemplo, execute os seguintes comandos do PowerShell:

  1. Abra uma janela do PowerShell.
  2. Execute asnp citrix* para carregar os módulos PowerShell específicos do Citrix.
  3. Execute os seguintes comandos:

    $connName = "ConnectionName" $conn = get-item XDHyp:\Connections\$connName $conn.CustomProperties
  4. Mudar ProxyHypervisorTrafficThroughConnector Para Verdadeiro e adicione a propriedade personalizada para Modo de autenticação definido como SystemAssignedManagedIdentity ou UserAssignedManagedIdentity. Por exemplo:

    $customProps = '<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation"><Property xsi:type="StringProperty" Name="SubscriptionId" Value="subscriptionId" /><Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/" /><Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/" /><Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net" /><Property xsi:type="StringProperty" Name="TenantId" Value="tenantId" /><Property xsi:type="StringProperty" Name="AzureAdDeviceManagement" Value="false" /><Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="true" /><Property xsi:type="StringProperty" Name="AuthenticationMode" Value="SystemAssignedManagedIdentity" /></CustomProperties>'
  5. Correr $cred = Obter credencial. Digite qualquer coisa aqui.
  6. Correr Set-Item -PSPath XDHyp:\Conexões\$connName -Propriedades Personalizadas $CustomProperties -nome de usuário $cred.username -Securepassword $cred.senha.

Gerenciar entidades de serviço e conexões

Esta seção detalha como você pode gerenciar entidades de serviço e conexões:

Definir as configurações de limitação do Azure

O Azure Resource Manager limita as solicitações de assinaturas e locatários, roteando o tráfego com base em limites definidos, adaptados às necessidades específicas do provedor. Ver Limitação de solicitações do Resource Manager no site da Microsoft para obter mais informações. Existem limites para assinaturas e locatários, em que o gerenciamento de muitos computadores pode se tornar problemático. Por exemplo, uma assinatura contendo muitos computadores pode ter problemas de desempenho relacionados a operações de energia.

Dica:

Para obter mais informações, consulte Melhorando o desempenho do Azure com os Serviços de Criação de Máquinas.

Para ajudar a mitigar esses problemas, o Citrix DaaS permite que você remova a limitação interna do MCS para usar mais da cota de solicitação disponível do Azure.

Recomendamos as seguintes configurações ideais ao ligar ou desligar VMs em assinaturas grandes, por exemplo, aquelas que contêm 1.000 VMs:

  • Operações simultâneas absolutas: 500
  • Máximo de novas operações por minuto: 2000
  • Simultaneidade máxima de operações: 500

Use o Studio para configurar as operações do Azure para uma determinada conexão de host:

  1. No Studio, selecione Hospedagem no painel esquerdo.
  2. Selecione uma conexão relacionada ao Azure para editá-la.
  3. No Editar conexão assistente, selecione Avançado.
  4. No Avançado , use as opções de configuração para especificar o número de ações simultâneas e o máximo de novas ações por minuto e quaisquer opções de conexão adicionais.

Limitação do Azure

O MCS oferece suporte a 500 operações simultâneas no máximo por padrão. Como alternativa, você pode usar o SDK do PowerShell Remoto para definir o número máximo de operações simultâneas.

Use o PowerShell propriedade MaximumConcurrentProvisioningOperations, para especificar o número máximo de operações simultâneas de provisionamento do Azure. Ao usar essa propriedade, considere:

  • O valor padrão de MaximumConcurrentProvisioningOperations é 500.
  • Configure o MaximumConcurrentProvisioningOperations usando o comando do PowerShell Definir item.

Gerenciar entidade de serviço de uma conexão de hospedagem existente

Depois de criar uma conexão de hospedagem usando uma entidade de serviço, você pode optar por editar a conexão de hospedagem para ter:

  • Nova entidade de serviço
  • Usar outra entidade de serviço existente
  1. No Studio, selecione Hospedagem no painel esquerdo.
  2. Selecione a conexão e, em seguida, selecione Editar conexão na barra de ação.
  3. Selecionar Propriedades de conexão no painel esquerdo.
  4. No Propriedades de conexão exibida, clique em Editar configurações. Agora você pode optar por criar uma nova entidade de serviço ou usar outra entidade de serviço existente.

    Editar configurações

    • Clique Criar entidade de serviço para criar uma nova entidade de serviço. Siga o prompt para fazer logon em sua conta de usuário do Azure AD. A Citrix usa o ID do aplicativo multilocatário 08b70dc3-76c5-4611-ba7d-3312ba36cb2b para criar uma nova entidade de serviço para a conexão de host existente e conceder permissões adequadas.
    • Clique Use os existentes para usar outra entidade de serviço existente para essa conexão de hospedagem.

Habilitar o compartilhamento de imagens no Azure

Ao criar ou atualizar catálogos de máquinas, você pode selecionar imagens compartilhadas de diferentes locatários e assinaturas do Azure (compartilhadas por meio da Galeria de Computação do Azure). Para habilitar o compartilhamento de imagens dentro ou entre locatários, você deve fazer as configurações necessárias no Azure:

Compartilhar imagens em um locatário (entre assinaturas)

Para selecionar uma imagem na Galeria de Computação do Azure que pertença a uma assinatura diferente, a imagem deve ser compartilhada com a SPN (entidade de serviço) dessa assinatura.

Por exemplo, se houver uma entidade de serviço (SPN 1), que é configurada no Studio como:

Entidade de serviço: SPN 1

Assinatura: assinatura 1

Locatário: locatário 1

A imagem está em uma assinatura diferente, que é configurada no Studio como:

Assinatura: assinatura 2

Locatário: locatário 1

Se você quiser compartilhar a imagem na assinatura 2 com a assinatura 1 (SPN 1), vá para a assinatura 2 e compartilhe o grupo de recursos com o SPN1.

A imagem deve ser compartilhada com outro SPN usando o RBAC (controle de acesso baseado em função) do Azure. O RBAC do Azure é o sistema de autorização usado para gerenciar o acesso aos recursos do Azure. Para obter mais informações sobre o RBAC do Azure, consulte o documento da Microsoft O que é o RBAC (controle de acesso baseado em função) do Azure. Para conceder acesso, atribua funções às entidades de serviço no escopo do grupo de recursos com a função Colaborador. Para atribuir funções do Azure, você deve ter Microsoft.Authorization/roleAssignments/write permissão, como Administrador ou Proprietário de Acesso do Usuário. Para obter mais informações sobre como compartilhar imagens com outro SPN, consulte o documento da Microsoft Atribuir funções do Azure usando o portal do Azure.

Compartilhar imagens entre locatários

Para compartilhar imagens entre locatários com a Galeria de Computação do Azure, crie ou atualize o registro do aplicativo e use esse aplicativo para criar uma conexão de hospedagem.

Por exemplo, se houver dois locatários (Locatário 1 e Locatário 2) e você quiser compartilhar sua galeria de imagens com o Locatário 1, então:

  1. Crie um registro de aplicativo para o Locatário 1. Para obter mais informações, consulte Criar o registro do aplicativo.

  2. Conceda ao Locatário 2 acesso ao aplicativo solicitando uma entrada usando um navegador. Substituir ID do locatário2 com a ID do locatário do Locatário 1. Substituir ID do aplicativo (cliente) com a ID do aplicativo do registro do aplicativo que você criou. Quando terminar de fazer as substituições, cole a URL em um navegador e siga as instruções de entrada para entrar no Locatário 2. Por exemplo:

    https://login.microsoftonline.com/<Tenant 2 ID>/oauth2/authorize?client_id=<Application (client) ID>&response_type=code&redirect_uri=https%3A%2F%2Fwww.microsoft.com%2F

    Para obter mais informações, consulte Conceder acesso ao Locatário 2.

  3. Conceda ao aplicativo acesso ao grupo de recursos Locatário 2. Entre como Locatário 2 e conceda ao aplicativo acesso de registro ao grupo de recursos que tem a imagem da galeria. Para obter mais informações, consulte Autenticar solicitações entre locatários.

Adicionar locatários compartilhados a uma conexão usando o Studio

Ao criar ou atualizar catálogos de máquinas no Studio, você pode selecionar imagens compartilhadas de diferentes locatários e assinaturas do Azure (compartilhadas por meio da Galeria de Computação do Azure). O recurso requer que você forneça informações compartilhadas de locatário e assinatura para conexões de host associadas.

Observação:

Verifique se você definiu as configurações necessárias no Azure para habilitar o compartilhamento de imagens entre locatários. Para obter mais informações, consulte Compartilhar imagens entre locatários.

Conclua as seguintes etapas para uma conexão:

  1. No Studio, selecione Hospedagem no painel esquerdo.
  2. Selecione a conexão e, em seguida, selecione Editar conexão na barra de ação.

    Locatários compartilhados

  3. Em Locatários compartilhados, faça o seguinte:
    1. Forneça a ID do aplicativo e o segredo do aplicativo associados à assinatura da conexão. O DaaS usa essas informações para autenticar no Azure AD.
    2. Adicione locatários e assinaturas que compartilham a Galeria de Computação do Azure com a assinatura da conexão. Você pode adicionar até oito locatários compartilhados e oito assinaturas para cada locatário.
  4. Quando terminar, selecione Aplicar para aplicar as alterações feitas e manter a janela aberta ou selecione OKEY para aplicar as alterações e fechar a janela.

Implementar o compartilhamento de imagens usando o PowerShell

Esta seção orienta você pelos processos de compartilhamento de imagens usando o PowerShell:

Selecionar uma imagem de uma assinatura diferente

Você pode selecionar uma imagem na Galeria de Computação do Azure que pertença a uma assinatura compartilhada diferente no mesmo locatário do Azure para criar e atualizar catálogos do MCS usando comandos do PowerShell.

  1. Na pasta raiz da unidade de hospedagem, a Citrix cria uma nova pasta de assinatura compartilhada chamada compartilhadoAssinatura.
  2. Liste todas as assinaturas compartilhadas em um locatário.

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\sharedsubscription.folder"
  3. Selecione uma assinatura compartilhada e liste todos os grupos de recursos compartilhados dessa assinatura compartilhada.

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription"
  4. Selecione um grupo de recursos e liste todas as galerias desse grupo de recursos.

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup"
  5. Selecione uma galeria e, em seguida, liste todas as definições de imagem dessa galeria.

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\testgallery.gallery"
  6. Selecione uma definição de imagem e, em seguida, liste todas as versões dessa definição de imagem.

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\sigtestdef.imagedefinition"
  7. Crie e atualize um catálogo do MCS usando os seguintes elementos:

    • Grupo de recursos
    • Galeria
    • Definição de imagem da galeria
    • Versão da imagem da galeria

Atualizar propriedades personalizadas de conexão de hospedagem com IDs de locatário compartilhadas

Usar Definir item para atualizar as propriedades personalizadas da conexão de hospedagem com IDs de locatário e IDs de assinatura compartilhadas. Adicionar uma propriedade Inquilinos compartilhados em Propriedades Personalizadas. O formato de Locatários compartilhados É:

[{"Tenant":"94367291-119e-457c-bc10-25337231f7bd","Subscriptions":["7bb42f40-8d7f-4230-a920-be2781f6d5d9"]},{"Tenant":"50e83564-c4e5-4209-b43d-815c45659564","Subscriptions":["06ab8944-6a88-47ee-a975-43dd491a37d0"]}]

Por exemplo:

Set-Item -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"> <Property xsi:type=`"StringProperty`" Name=`"SubscriptionId`" Value=`"123`" /> <Property xsi:type=`"StringProperty`" Name=`"ManagementEndpoint`" Value=`"https://management.azure.com/`" /> <Property xsi:type=`"StringProperty`" Name=`"AuthenticationAuthority`" Value=`"https://login.microsoftonline.com/`" /> <Property xsi:type=`"StringProperty`" Name=`"StorageSuffix`" Value=`"core.windows.net`" /> <Property xsi:type=`"StringProperty`" Name=`"TenantId`" Value=`"123abc`" /> <Property xsi:type=`"StringProperty`" Name=`"SharedTenants`" Value=`"`[ { 'Tenant':'123abc', 'Subscriptions':['345', '567'] } ]`"` /> </CustomProperties>" -LiteralPath @("XDHyp:\Connections\aazure") -PassThru -UserName "advc345" -SecurePassword $psd

Observação:

Você pode adicionar mais de um locatário. Cada locatário pode ter mais de uma assinatura.

Selecionar uma imagem de um locatário diferente

Você pode selecionar uma imagem na Galeria de Computação do Azure que pertença a um locatário diferente do Azure para criar e atualizar catálogos do MCS usando comandos do PowerShell.

  1. Na pasta raiz da unidade de hospedagem, a Citrix cria uma nova pasta de assinatura compartilhada chamada compartilhadoAssinatura.
  2. Liste todas as assinaturas compartilhadas.

    Get-ChildItem XDHyp:\HostingUnits\azres\sharedsubscription.folder
  3. Selecione uma assinatura compartilhada e liste todos os grupos de recursos compartilhados dessa assinatura compartilhada.

    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription
  4. Selecione um grupo de recursos e liste todas as galerias desse grupo de recursos.

    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup
  5. Selecione uma galeria e, em seguida, liste todas as definições de imagem dessa galeria.

    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery
  6. Selecione uma definição de imagem e, em seguida, liste todas as versões dessa definição de imagem.

    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery\hij.imagedefinition
  7. Crie e atualize um catálogo do MCS usando os seguintes elementos:

    • Grupo de recursos
    • Galeria
    • Definição de imagem da galeria
    • Versão da imagem da galeria

Criar um ambiente seguro para o tráfego gerenciado pelo Azure

O MCS permite que o tráfego de rede (chamadas de API do Citrix Cloud para o hipervisor do Azure) seja roteado por meio de Cloud Connectors em seu ambiente. Essa implementação ajuda você a bloquear sua assinatura do Azure para permitir o tráfego de rede de endereços IP específicos. Para fazer isso, adicione ProxyHypervisorTrafficThroughConnector em Propriedades Personalizadas. Depois de definir as propriedades personalizadas, você pode configurar as políticas do Azure para ter acesso de disco privado aos discos gerenciados do Azure.

Se você configurar a política do Azure para criar acessos ao disco automaticamente para cada novo disco para usar pontos de extremidade privados, não poderá carregar ou baixar mais de cinco discos ou instantâneos ao mesmo tempo com o mesmo objeto de acesso ao disco imposto pelo Azure. Esse limite é para cada catálogo de máquinas se você configurar a política do Azure no nível do grupo de recursos e para todos os catálogos de máquinas se você configurar a política do Azure no nível da assinatura. Se você não configurar a política do Azure para criar acessos ao disco automaticamente para cada novo disco para usar pontos de extremidade privados, o limite de cinco operações simultâneas não será imposto.

Observação:

Atualmente, esse recurso não é compatível com o Connector Appliance. Para obter as limitações do Azure relacionadas a esse recurso, consulte Restringir o acesso de importação/exportação para discos gerenciados usando o Link Privado do Azure.

Habilitar o proxy

Para ativar o proxy, defina as propriedades personalizadas da seguinte forma na conexão do host:

  1. Abra uma janela do PowerShell usando o SDK do PowerShell remoto. Para obter mais informações, consulte https://docs.citrix.com/en-us/citrix-daas/sdk-api.html#citrix-virtual-apps-and-desktops-remote-powershell-sdk/.
  2. Execute os seguintes comandos:

    Add-PSSnapin citrix*. cd XDHyp:\Connections\ dir
  3. Copie o Propriedades Personalizadas da conexão com um bloco de notas e anexar configuração de propriedade <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" /> para o Propriedades Personalizadas para habilitar o proxy. Por exemplo:

    <CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation"> <Property xsi:type="StringProperty" Name="SubscriptionId" Value="4991xxxx-2xxx-4xxx-8xxx-ff59a830xxxx" /> <Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/" /> <Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/" /> <Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net" /> <Property xsi:type="StringProperty" Name="TenantId" Value="5cxxxxx-9xxx-4xxx-8xxx-dffe3efdxxxx" /> <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" /> </CustomProperties>
  4. Na janela do PowerShell, atribua uma variável às propriedades personalizadas modificadas. Por exemplo:

    $customProperty = '<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation"> <Property xsi:type="StringProperty" Name="SubscriptionId" Value="4991xxxx-2xxx-4xxx-8xxx-ff59a830xxxx" /> <Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/" /> <Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/" /> <Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net" /> <Property xsi:type="StringProperty" Name="TenantId" Value="5cxxxxx-9xxx-4xxx-8xxx-dffe3efdxxxx" /> <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" /> </CustomProperties>'
  5. Correr $cred = Obter credencial. Se solicitado, forneça as credenciais de conexão. As credenciais são ID e segredo do aplicativo do Azure.
  6. Correr Set-Item -PSPath XDHyp:\Conexões\&#060; Connection_Name&#062; -Propriedades Personalizadas $customProperty -nome de usuário $cred.username -Securepassword $cred.senha.

    Importante:

    Se você receber uma mensagem informando ID da assinatura está ausente e, em seguida, substitua todas as aspas duplas (“) por acentos graves seguidos por aspas duplas (‘”) na propriedade personalizada. Por exemplo:

    <CustomProperties xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`" xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`"> <Property xsi:type=`"StringProperty`" Name=`"SubscriptionId`" Value=`"4991xxxx-2xxx-4xxx-8xxx-ff59a830xxxx`" /> <Property xsi:type=`"StringProperty`" Name=`"ManagementEndpoint`" Value=`"https://management.azure.com/`" /> <Property xsi:type=`"StringProperty`" Name=`"AuthenticationAuthority`" Value=`"https://login.microsoftonline.com/`" /> <Property xsi:type=`"StringProperty`" Name=`"StorageSuffix`" Value=`"core.windows.net`" /> <Property xsi:type=`"StringProperty`" Name=`"TenantId`" Value=`"5cxxxxx-9xxx-4xxx-8xxx-dffe3efdxxxx`" /> <Property xsi:type=`"StringProperty`" Name=`"ProxyHypervisorTrafficThroughConnector`" Value=`"True`" /> </CustomProperties>
  7. Correr Dir para verificar o Propriedades Personalizadas Configurações.

Gerenciar o segredo do aplicativo e a data de expiração do segredo

Certifique-se de alterar o segredo do aplicativo para uma conexão antes que o segredo expire. Você recebe um alerta no Studio antes que a chave secreta expire.

Criar um segredo do aplicativo no Azure

Você pode criar um segredo do aplicativo para uma conexão por meio do portal do Azure.

  1. Selecionar Azure Active Directory.
  2. De Registros de aplicativos no Azure AD, selecione seu aplicativo.
  3. Ir para Certificados & Segredos.
  4. Clique Segredos do cliente > Novo segredo do cliente.

    Criar segredo do aplicativo

  5. Forneça uma descrição do segredo e especifique uma duração. Quando terminar, selecione Adicionar.

    Observação:

    Certifique-se de salvar o segredo do cliente porque você não pode recuperá-lo mais tarde.

  6. Copie o valor do segredo do cliente e a data de expiração.
  7. No Studio, edite a conexão correspondente e substitua o conteúdo no Segredo do aplicativo e Data de expiração do segredo com os valores que você copiou.

Alterar a data de expiração do segredo

Você pode usar o Studio para adicionar ou modificar a data de expiração do segredo do aplicativo em uso.

  1. No Adicionar conexão e recursos assistente, clique com o botão direito do mouse em uma conexão e clique em Editar conexão.
  2. No Propriedades de conexão , clique em Data de expiração do segredo para adicionar ou modificar a data de expiração do segredo do aplicativo em uso.

Alterar data de expiração do segredo

Usar um grupo de segurança de rede pré-criado

Crie um grupo de segurança de rede Deny-All para preparação de imagem em vez de solicitar que a Citrix crie e modifique o NSG. Edite as propriedades personalizadas da unidade de hospedagem usando um comando do PowerShell Set-Item para incluir o parâmetro NsgForPreparation para fornecer o grupo de segurança de rede Deny-All.

Pré-requisitos

Configure as seguintes permissões necessárias para uma entidade de serviço:

  • Microsoft.Network/networkSecurityGroups/join/action: Associar um grupo de segurança de rede a uma sub-rede ou interface de rede
  • Microsoft.Network/networkSecurityGroups/read: Obtém o grupo de segurança de rede
  • Microsoft.Network/networkSecurityGroups/securityRules/read: Obtém a regra

Adicionar o grupo de segurança de rede Deny-All pré-criado

Para adicionar o grupo de segurança de rede Deny-All pré-criado, defina as propriedades personalizadas da seguinte maneira na unidade de hospedagem:

  1. Abra uma janela do PowerShell usando o SDK do PowerShell remoto.
  2. Execute os seguintes comandos:

    Add-PSSnapin citrix*. cd XDHyp:\HostingUnits\ Dir
  3. Selecione uma unidade de hospedagem para recuperar os detalhes:

    Get-Item "XDHyp:\HostingUnits\<hostingunitname>"
  4. Copiar as CustomProperties para um bloco de notas e anexar a configuração da propriedade <Property xsi:type="StringProperty” Name="NsgForPreparation” Value="{ResourceGroupName}/{NetworkSecurityGroupName}"/>. Por exemplo:

    <CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"NsgForPreparation`" Value=`{ResourceGroupName}/{NetworkSecurityGroupName}`"/></CustomProperties>
  5. Na janela do PowerShell, atribua uma variável às propriedades personalizadas modificadas. Por exemplo:

    $customProperty = "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"NsgForPreparation`" Value=`"{ResourceGroupName}/{NetworkSecurityGroupName}`"/></CustomProperties>"
  6. Correr $cred = Obter credencial. Se solicitado, forneça as credenciais de conexão. As credenciais são ID e segredo do aplicativo do Azure.
  7. Execute o comando a seguir.

    Set-Item -PSPath XDHyp:\HostingUnits\<hostingunitname> -CustomProperties $customProperty -username $cred.username -Securepassword $cred.password

    Importante:

    Se você receber uma mensagem informando que SubscriptionId está ausente, substitua todas as aspas duplas (“) por acento grave seguido por aspas duplas (‘”) na propriedade customizada.

  8. Correr Dir para verificar o Propriedades Personalizadas Configurações.

Observação:

Leva mais de um minuto para que as atualizações sejam refletidas.

Recuperar detalhes do grupo de segurança de rede

Para recuperar os detalhes do grupo de segurança de rede, primeiro recupere os grupos de recursos que contêm o grupo de segurança de rede e, em seguida, recupere o grupo de segurança de rede com base no nome do grupo de recursos.

  1. Recupere os grupos de recursos que contêm o grupo de segurança de rede. Por exemplo:

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["networksecuritygroup"]}'
  2. Recupere o grupo de segurança de rede com base no nome do grupo de recursos. Por exemplo:

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType securitygroup -MaxRecords 5 -AdditionalDataFilter '{"location": ["eastus", "westus"], "resourcegroup":["resourcegroupname"]}'

Filtrar grupos de recursos vazios

Usar o comando do PowerShell Get-HypInventoryItem para filtrar grupos de recursos vazios ao selecionar uma imagem mestre, perfil de máquina ou imagem preparada durante a criação do catálogo de máquinas.

Exemplos:

  • Recupere o máximo de registros em uma página:

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5
  • Recupere o máximo de registros em uma página e filtre para localizar contêineres de recursos que tenham recursos específicos.

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}'
  • Recupere com skip para indicar diretamente a página e filtre para localizar contêineres de recursos que tenham recursos específicos.

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -skip 20 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}'
  • Use um token para recuperar a próxima página e filtre para localizar contêineres de recursos que tenham recursos específicos.

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}' -ContinuationToken 'ew0KICAiJGlkIjogIjEiLA0KICAiTWF4Um93cyI6IDUsDQogICJSb3dzVG9Ta2lwIjogMjUsDQogICJLdXN0b0NsdXN0ZXJVcmwiOiAiaHR0cHM6Ly9hcmctbmV1LTEzLXNmLmFyZy5jb3JlLndpbmRvd3MubmV0Ig0KfQ=='
  • Recupere todos os grupos de recursos com a tag interna da tag Citrix e limite o máximo de registros com MaxRecords.

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5
  • Filtre o perfil da máquina (imagem mestre) com a tag interna da Citrix e limite o máximo de registros com MaxRecords.

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "templatespecversion"]}'
  • Filtre por Imagem preparada com tag Citrix internal tag e limite máximo de registros com MaxRecords.

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion"]}'
  • Filtre o perfil da máquina (imagem preparada) com tag interna Citrix tag e limite máximo de registros com MaxRecords.

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "templatespecversion"]}'
  • Filtre por Imagem com tag Citrix internal tag e limite o máximo de registros com MaxRecords e localização.

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion", "storageaccount"], "location": ["eastus", "westus"]}'
  • Recuperar todos os grupos de recursos sem considerar as tags CitrixResource.

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 50 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion", "storageaccount"]}' -Force $true

Permissões necessárias do Azure

Esta seção detalha o Permissões mínimas e Permissões gerais necessário para o Azure.

Permissões mínimas

As permissões mínimas proporcionam melhor controle de segurança. No entanto, novos recursos que exigem permissões adicionais falham se apenas permissões mínimas forem fornecidas. Esta seção lista as permissões mínimas por ação.

Criando uma conexão de host

Adicione uma conexão de host usando as informações obtidas do Azure.

"Microsoft.Network/virtualNetworks/read", "Microsoft.Compute/virtualMachines/read", "Microsoft.Compute/disks/read", "Microsoft.Resources/providers/read", "Microsoft.Resources/subscriptions/locations/read", "Microsoft.Resources/tenants/read", "Microsoft.Network/networkSecurityGroups/join/action", "Microsoft.Network/networkSecurityGroups/read", "Microsoft.Network/networkSecurityGroups/securityRules/read"

Gerenciamento de energia de VMs

Ligue ou desligue as instâncias da máquina.

"Microsoft.Compute/virtualMachines/read", "Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Compute/virtualMachines/deallocate/action", "Microsoft.Compute/virtualMachines/start/action", "Microsoft.Compute/virtualMachines/restart/action", "Microsoft.Insights/diagnosticsettings/delete", "Microsoft.Insights/diagnosticsettings/read", "Microsoft.Insights/diagnosticsettings/write",

Criando, atualizando ou excluindo VMs

Crie um catálogo de máquinas e, em seguida, adicione, exclua, atualize máquinas e exclua o catálogo de máquinas.

Veja a seguir a lista de permissões mínimas necessárias quando as imagens mestras são discos gerenciados ou instantâneos que estão na mesma região que a conexão de hospedagem.

"Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Resources/deployments/validate/action", "Microsoft.Resources/tags/read", "Microsoft.Resources/tags/write", "Microsoft.Compute/virtualMachines/read", "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/delete", "Microsoft.Compute/virtualMachines/deallocate/action", "Microsoft.Compute/snapshots/read", "Microsoft.Compute/snapshots/write", "Microsoft.Compute/snapshots/delete", "Microsoft.Compute/snapshots/beginGetAccess/action", "Microsoft.Compute/snapshots/endGetAccess/action", "Microsoft.Compute/disks/read", "Microsoft.Compute/disks/write", "Microsoft.Compute/disks/delete", "Microsoft.Compute/disks/beginGetAccess/action", "Microsoft.Compute/disks/endGetAccess/action", "Microsoft.Compute/locations/publishers/artifacttypes/types/versions/read", "Microsoft.Compute/skus/read", "Microsoft.Compute/virtualMachines/extensions/read", "Microsoft.Compute/virtualMachines/extensions/write", "Microsoft.Features/providers/features/read", "Microsoft.Network/virtualNetworks/read", "Microsoft.Network/virtualNetworks/subnets/join/action", "Microsoft.Network/virtualNetworks/subnets/read", "Microsoft.Network/networkSecurityGroups/read", "Microsoft.Network/networkSecurityGroups/write", "Microsoft.Network/networkSecurityGroups/delete", "Microsoft.Network/networkSecurityGroups/join/action", "Microsoft.Network/networkInterfaces/read", "Microsoft.Network/networkInterfaces/write", "Microsoft.Network/networkInterfaces/delete", "Microsoft.Network/networkInterfaces/join/action", "Microsoft.Network/locations/usages/read", "Microsoft.Compute/capacityReservationGroups/capacityReservations/read", "Microsoft.Compute/capacityReservationGroups/deploy/action"

Você precisa das seguintes permissões extras com base em permissões mínimas para os seguintes recursos:

  • Se a imagem mestra for um VHD em uma conta de armazenamento na mesma região que a conexão de hospedagem:

    "Microsoft.Storage/storageAccounts/read", "Microsoft.Storage/storageAccounts/listKeys/action",
  • Se a imagem mestra for uma ImageVersion da Galeria de Computação do Azure (anteriormente Galeria de Imagens Compartilhadas):

    "Microsoft.Compute/galleries/read", "Microsoft.Compute/galleries/images/read", "Microsoft.Compute/galleries/images/versions/read",
  • Se a imagem mestra for um disco gerenciado, o instantâneo ou VHD estiver em uma região diferente da região da conexão de hospedagem:

    "Microsoft.Storage/storageAccounts/read", "Microsoft.Storage/storageAccounts/listKeys/action", "Microsoft.Storage/storageAccounts/write", "Microsoft.Storage/storageAccounts/delete", "Microsoft.Storage/checknameavailability/read", "Microsoft.Storage/locations/usages/read", "Microsoft.Storage/skus/read",
  • Se você usar o grupo de recursos gerenciado pela Citrix:

    "Microsoft.Resources/subscriptions/resourceGroups/write", "Microsoft.Resources/subscriptions/resourceGroups/delete",
  • Se você colocar a imagem mestra na Galeria de Computação do Azure (anteriormente Galeria de Imagens Compartilhadas) em um locatário ou assinatura compartilhada:

    "Microsoft.Compute/galleries/write", "Microsoft.Compute/galleries/images/write", "Microsoft.Compute/galleries/images/versions/write", "Microsoft.Compute/galleries/read", "Microsoft.Compute/galleries/images/read", "Microsoft.Compute/galleries/images/versions/read", "Microsoft.Compute/galleries/delete", "Microsoft.Compute/galleries/images/delete", "Microsoft.Compute/galleries/images/versions/delete", "Microsoft.Resources/subscriptions/read",
  • Se você usar o suporte de host dedicado do Azure:

    "Microsoft.Compute/hostGroups/read", "Microsoft.Compute/hostGroups/write", "Microsoft.Compute/hostGroups/hosts/read",
  • Se você usar a SSE (Criptografia do Lado do Servidor) com CMK (Chaves Gerenciadas pelo Cliente):

    "Microsoft.Compute/diskEncryptionSets/read",
  • Se você implantar VMs usando modelos do ARM (perfil de computador):

    "Microsoft.Resources/deployments/write", "Microsoft.Resources/deployments/operationstatuses/read", "Microsoft.Resources/deployments/read", "Microsoft.Resources/deployments/delete", "Microsoft.Insights/DataCollectionRuleAssociations/Read", "Microsoft.Insights/dataCollectionRules/read",
  • Se você usar a especificação de modelo do Azure como um perfil de computador:

    "Microsoft.Resources/templateSpecs/read", "Microsoft.Resources/templateSpecs/versions/read",

Criando, atualizando e excluindo computadores com disco não gerenciado

Veja a seguir a lista de permissões mínimas necessárias quando a imagem mestra é VHD e usa o grupo de recursos conforme fornecido pelo administrador:

"Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Resources/tags/read", "Microsoft.Resources/tags/write", "Microsoft.Storage/storageAccounts/delete", "Microsoft.Storage/storageAccounts/listKeys/action", "Microsoft.Storage/storageAccounts/read", "Microsoft.Storage/storageAccounts/write", "Microsoft.Storage/checknameavailability/read", "Microsoft.Storage/locations/usages/read", "Microsoft.Storage/skus/read", "Microsoft.Compute/virtualMachines/deallocate/action", "Microsoft.Compute/virtualMachines/delete", "Microsoft.Compute/virtualMachines/read", "Microsoft.Compute/virtualMachines/write", "Microsoft.Resources/deployments/validate/action", "Microsoft.Network/networkInterfaces/delete", "Microsoft.Network/networkInterfaces/join/action", "Microsoft.Network/networkInterfaces/read", "Microsoft.Network/networkInterfaces/write", "Microsoft.Network/networkSecurityGroups/delete", "Microsoft.Network/networkSecurityGroups/join/action", "Microsoft.Network/networkSecurityGroups/read", "Microsoft.Network/networkSecurityGroups/write", "Microsoft.Network/virtualNetworks/subnets/read", "Microsoft.Network/virtualNetworks/read", "Microsoft.Network/virtualNetworks/subnets/join/action", "Microsoft.Network/locations/usages/read",

Gestão de Custos

Veja a seguir a permissão mínima necessária para recuperar os preços da VM:

"Microsoft.Consumption/pricesheets/read"

Permissões gerais

A função de colaborador tem acesso total para gerenciar todos os recursos. Esse conjunto de permissões não impede que você obtenha novos recursos.

O conjunto de permissões a seguir fornece a melhor compatibilidade no futuro, embora inclua mais permissões do que o necessário com o conjunto de recursos atual:

"Microsoft.Compute/diskEncryptionSets/read", "Microsoft.Compute/disks/beginGetAccess/action", "Microsoft.Compute/disks/delete", "Microsoft.Compute/disks/endGetAccess/action", "Microsoft.Compute/disks/read", "Microsoft.Compute/disks/write", "Microsoft.Compute/galleries/delete", "Microsoft.Compute/galleries/images/delete", "Microsoft.Compute/galleries/images/read", "Microsoft.Compute/galleries/images/versions/delete", "Microsoft.Compute/galleries/images/versions/read", "Microsoft.Compute/galleries/images/versions/write", "Microsoft.Compute/galleries/images/write", "Microsoft.Compute/galleries/read", "Microsoft.Compute/galleries/write", "Microsoft.Compute/hostGroups/hosts/read", "Microsoft.Compute/hostGroups/read", "Microsoft.Compute/hostGroups/write", "Microsoft.Compute/snapshots/beginGetAccess/action", "Microsoft.Compute/snapshots/delete", "Microsoft.Compute/snapshots/endGetAccess/action", "Microsoft.Compute/snapshots/read", "Microsoft.Compute/snapshots/write", "Microsoft.Compute/virtualMachines/deallocate/action", "Microsoft.Compute/virtualMachines/delete", "Microsoft.Compute/virtualMachines/read", "Microsoft.Compute/virtualMachines/restart/action", "Microsoft.Compute/virtualMachines/start/action", "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/locations/publishers/artifacttypes/types/versions/read", "Microsoft.Compute/skus/read", "Microsoft.Compute/virtualMachines/extensions/read", "Microsoft.Compute/virtualMachines/extensions/write", "Microsoft.Network/networkInterfaces/delete", "Microsoft.Network/networkInterfaces/join/action", "Microsoft.Network/networkInterfaces/read", "Microsoft.Network/networkInterfaces/write", "Microsoft.Network/networkSecurityGroups/delete", "Microsoft.Network/networkSecurityGroups/join/action", "Microsoft.Network/networkSecurityGroups/read", "Microsoft.Network/networkSecurityGroups/write", "Microsoft.Network/virtualNetworks/subnets/read", "Microsoft.Network/virtualNetworks/read", "Microsoft.Network/virtualNetworks/subnets/join/action", "Microsoft.Network/locations/usages/read", "Microsoft.Resources/deployments/operationstatuses/read", "Microsoft.Resources/deployments/read", "Microsoft.Resources/deployments/validate/action", "Microsoft.Resources/deployments/write", "Microsoft.Resources/deployments/delete", "Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Resources/subscriptions/resourceGroups/write", "Microsoft.Resources/subscriptions/resourceGroups/delete", "Microsoft.Resources/providers/read", "Microsoft.Resources/subscriptions/locations/read", "Microsoft.Resources/subscriptions/read", "Microsoft.Resources/tags/read", "Microsoft.Resources/tags/write", "Microsoft.Resources/tenants/read", "Microsoft.Resources/templateSpecs/read", "Microsoft.Resources/templateSpecs/versions/read", "Microsoft.Storage/storageAccounts/delete", "Microsoft.Storage/storageAccounts/listKeys/action", "Microsoft.Storage/storageAccounts/read", "Microsoft.Storage/storageAccounts/write", "Microsoft.Storage/checknameavailability/read", "Microsoft.Storage/locations/usages/read", "Microsoft.Storage/skus/read", "Microsoft.Features/providers/features/read", "Microsoft.Insights/DataCollectionRuleAssociations/Read", "Microsoft.Insights/dataCollectionRules/read", "Microsoft.Insights/diagnosticsettings/delete", "Microsoft.Insights/diagnosticsettings/read", "Microsoft.Insights/diagnosticsettings/write", "Microsoft.Compute/capacityReservationGroups/capacityReservations/read", "Microsoft.Consumption/pricesheets/read", "Microsoft.Network/networkSecurityGroups/join/action", "Microsoft.Network/networkSecurityGroups/read", "Microsoft.Network/networkSecurityGroups/securityRules/read", "Microsoft.Compute/capacityReservationGroups/deploy/action"

Configurar as permissões de conexão de host do Azure necessárias

Você pode configurar facilmente todas as permissões mínimas necessárias para uma entidade de serviço ou conta de usuário no Azure vinculada a uma conexão de host para executar todas as operações do MCS usando um modelo do ARM. Este modelo do ARM automatiza o seguinte:

  • Criação de uma função do Azure com permissões mínimas necessárias para operações.
  • Atribuição dessa função a uma entidade de serviço do Azure existente no nível da assinatura.

Você pode implantar esse modelo do ARM usando os comandos do Portal do Azure ou do PowerShell. Para obter mais informações, consulte Modelo do ARM para operações de aplicativos e desktops virtuais da Citrix.

Validar permissões na conexão do host

Você pode validar permissões em uma conexão de host para realizar tarefas relacionadas à criação e ao gerenciamento de catálogos de máquinas do MCS. Essa implementação ajuda você a descobrir as permissões ausentes necessárias para diferentes cenários, como criar, excluir e atualizar VMs, gerenciamento de energia de VMs, com antecedência para que você possa evitar ser bloqueado em momentos críticos.

Você pode validar as permissões em uma conexão de host usando o comando do PowerShell Conexão Test-HypHypervisor. O resultado do comando é capturado como uma lista em que cada item da lista é dividido em três seções.

  • Categoria: a ação ou tarefa que um usuário pode executar para criar e gerenciar um catálogo de máquinas do MCS.
  • Ação corretiva: a etapa que um administrador deve executar para resolver a discrepância de permissões ausentes de um usuário.
  • Permissão ausente: a lista de permissões ausentes para uma categoria.

Para validar as permissões, faça o seguinte:

  1. Crie uma conexão de host com o Azure.
  2. Abra uma janela do PowerShell no host do Delivery Controller.
  3. Execute asnp citrix* para carregar os módulos PowerShell específicos do Citrix.
  4. Execute o comando a seguir para verificar se você tem as permissões necessárias para testar uma conexão.

    Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AzureCon"

    Permissão de nível de função necessária para o SPN:

    • Microsoft.Authorization/roleDefinitions/read (no nível da assinatura ou no nível do grupo de recursos, se o grupo de recursos for fornecido)
    • Microsoft.Authorization/roleAssignments/read (no nível da assinatura ou no nível do grupo de recursos, se o grupo de recursos for fornecido)

    Permissões de nível de API necessárias para o SPN:

    Microsoft.Graph:

    • Aplicativo.Read.All
    • Diretório.Read.All
    • ServicePrincipalEndpoint.Read.All
  5. Depois de adicionar as permissões ausentes necessárias para pesquisar suas permissões, execute o comando a seguir para verificar se você tem permissões nas várias categorias.

    Exemplo:

    Para testar uma conexão no nível de assinatura com um nível mais alto de autorização necessário:

    Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\ AzureCon -SecurePassword $password -UserName 922e65d5-38ae-4cf5-xxxx-xxxxxxxxx

    Exemplo:

    Para testar uma conexão no nível do grupo de recursos sem um alto nível de autorização:

    Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\testles -CustomProperties $customProperties | Format-List

    Observação:

    O Propriedades Personalizadas é usado para fornecer o nível do grupo de recursos porque o grupo de recursos é uma informação específica da conexão.

    Exemplo:

    Para testar uma conexão com o nível mais alto de autorização no nível do grupo de recursos:

    Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\testles -SecurePassword $password -UserName 922e65d5-38ae-4cf5-832b-54122196b7dd -CustomProperties $customProperties

Para obter informações sobre permissões, consulte Permissões necessárias do Azure.

Para onde ir a seguir

Mais informações