Conexão com o Microsoft Azure
Nota:
Desde julho de 2023, a Microsoft renomeou o Azure Active Directory (Azure AD) para Microsoft Entra ID. Neste documento, qualquer referência a Azure Active Directory, Azure AD ou AAD agora se refere ao Microsoft Entra ID.
Criar e gerenciar conexões e recursos descreve os assistentes que criam uma conexão. As informações a seguir abrangem detalhes específicos para ambientes de nuvem do Azure Resource Manager.
Nota:
Antes de criar uma conexão com o Microsoft Azure, você deve concluir a configuração da sua conta do Azure como um local de recurso. Consulte Ambientes de nuvem do Microsoft Azure Resource Manager.
Criar entidades de serviço e conexões
Antes de criar conexões, você deve configurar entidades de serviço que as conexões usam para acessar recursos do Azure. Você pode criar uma conexão de duas maneiras:
- Crie uma entidade de serviço e uma conexão juntas usando o Web Studio
- Crie uma conexão usando uma entidade de serviço criada anteriormente
Esta seção mostra como concluir estas tarefas:
- Criar uma entidade de serviço e conexão usando o Web Studio
- Criar uma entidade de serviço usando o PowerShell
- Obter o segredo do aplicativo no Azure
- Criar uma conexão usando uma entidade de serviço existente
Considerações
- A Citrix® recomenda usar a Entidade de Serviço com a função de Colaborador. No entanto, consulte a seçã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 futuras conexões, você ainda precisará se autenticar, mas o Azure se lembrará do seu consentimento anterior e não exibirá o prompt novamente.
- As contas usadas para autenticação devem ter permissões para atribuir funções na assinatura usando o Azure RBAC. Por exemplo, Proprietário, Administrador de Controle de Acesso Baseado em Função ou Administrador de Acesso de Usuário da assinatura.
- A conta usada para autenticação deve ser membro do diretório da assinatura. Existem dois tipos de contas a serem consideradas: ‘Corporativa ou de Estudante’ e ‘conta pessoal da Microsoft’. Consulte CTX219211 para obter detalhes.
-
Embora você possa usar uma conta Microsoft existente adicionando-a como membro do diretório da assinatura, podem ocorrer complicações se o usuário tiver recebido anteriormente acesso de convidado a um dos recursos do diretório. Nesse caso, ele pode 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 novamente explicitamente. No entanto, use esta opção com cuidado, pois ela tem efeitos não intencionais para outros recursos que a conta pode acessar.
- Existe um problema conhecido em que certas 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 mais antigas e estabelecidas. Solução alternativa: adicione uma conta ao diretório, que assume o valor de associação adequado.
- Grupos de recursos são simplesmente contêineres para recursos, e eles podem conter recursos de regiões diferentes da 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 que você precisa. Isso requer alguma previsão, mas a Microsoft ajuda você a especificar os valores corretos, com orientação sobre a capacidade do espaço de endereço.
Criar uma entidade de serviço e conexão usando o Web Studio
Importante:
Este recurso ainda não está disponível para assinaturas do Azure China.
Com o Web Studio, você pode criar uma entidade de serviço e uma conexão em um único fluxo de trabalho. As entidades de serviço concedem à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 de segredo do cliente ou segredo do aplicativo) é criada para o aplicativo registrado. O aplicativo registrado (uma conexão neste caso) usa o segredo do cliente para autenticar no Azure AD.
Antes de começar, certifique-se de ter cumprido 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 Azure RBAC. Por exemplo, Proprietário, Administrador de Controle de Acesso Baseado em Função ou Administrador de Acesso de Usuário da assinatura.
- Você tem permissões de administrador global, administrador de aplicativo ou desenvolvedor de aplicativo para autenticação. Essas permissões podem ser revogadas após a criação da conexão do host. Para obter mais informações sobre funções, consulte Funções internas do Azure AD.
Use o assistente “Adicionar Conexão e Recursos” para criar uma entidade de serviço e uma conexão juntas:
- Na página “Conexão”, selecione “Criar uma nova conexão”, o tipo de conexão “Microsoft Azure” e seu ambiente Azure.
- Selecione quais ferramentas usar para criar as máquinas virtuais e, em seguida, selecione “Avançar”.
-
Na página “Detalhes da Conexão”, insira seu ID de assinatura do Azure e um nome para a conexão. Depois de inserir o ID da assinatura, o botão “Criar novo” é habilitado.
Nota:
O nome da conexão pode conter de 1 a 64 caracteres e não pode conter apenas espaços em branco nem os caracteres
\/;:#.*?=<>|[]{}"'()'. - Selecione “Criar novo” e, em seguida, insira o nome de usuário e a senha da conta do Azure Active Directory.
- Selecione “Entrar”.
- Selecione “Aceitar” para conceder ao Citrix Virtual Apps and Desktops™ as permissões listadas. O Citrix Virtual Apps and Desktops cria uma entidade de serviço que permite gerenciar recursos do Azure em nome do usuário especificado.
-
Depois de selecionar “Aceitar”, você retorna à página “Conexão” no assistente.
Nota:
Depois de se autenticar com sucesso no Azure, os botões “Criar novo” e “Usar existente” desaparecem. O texto “Conexão bem-sucedida” aparece, com uma marca de seleção verde, indicando a conexão bem-sucedida com sua assinatura do Azure.
-
Na página “Detalhes da Conexão”, selecione “Avançar”.
Nota:
Você não pode prosseguir para a próxima página até que se autentique com sucesso no Azure e consinta em conceder as permissões necessárias.
-
Configure os recursos para a conexão. Os recursos compreendem a região e a rede.
- Na página “Região”, selecione uma região.
- Na página “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 nem 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 fornece combinações exclusivas.) Se a região selecionada na página anterior não tiver nenhuma rede virtual, retorne a essa página e selecione uma região que tenha redes virtuais.
- 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 nem os caracteres
- Na página “Resumo”, visualize um resumo das configurações e selecione “Concluir” para finalizar sua configuração.
Visualizar o ID do aplicativo
Depois de criar uma conexão, você pode visualizar o ID do aplicativo que a conexão usa para acessar os recursos do Azure.
Na lista “Adicionar Conexão e Recursos”, selecione a conexão para visualizar os detalhes. A guia “Detalhes” mostra o ID do Aplicativo.
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:
-
SubscriptionId:
SubscriptionIDdo Azure Resource Manager para a assinatura onde você deseja provisionar VDAs. - ActiveDirectoryID: ID do locatário do aplicativo que você registrou no Azure AD.
- ApplicationName: Nome para o aplicativo a ser criado no Azure AD.
As etapas detalhadas são as seguintes:
Conecte-se à sua assinatura do Azure Resource Manager.
`Connect-AzAccount`
-
Selecione a assinatura do Azure Resource Manager onde você deseja criar a entidade de serviço.
Get-AzSubscription -SubscriptionId $subscriptionId | Select-AzSubscription -
Crie o aplicativo em seu locatário AD.
$AzureADApplication = New-AzADApplication -DisplayName $ApplicationName -
Crie uma entidade de serviço.
New-AzADServicePrincipal -ApplicationId $AzureADApplication.AppId -
Atribua uma função à entidade de serviço.
New-AzRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $AzureADApplication.AppId –scope /subscriptions/$SubscriptionId -
Na janela de saída do console do PowerShell, anote o ApplicationId. Você fornecerá esse ID ao criar a conexão do host.
Obter o segredo do aplicativo no Azure
Para criar uma conexão usando uma entidade de serviço existente, você deve primeiro obter o ID do aplicativo e o segredo da entidade de serviço no portal do Azure.
As etapas detalhadas são as seguintes:
- Obtenha o “ID do Aplicativo” do Web Studio ou usando o PowerShell.
- Entre no portal do Azure.
- No Azure, selecione “Azure Active Directory”.
- Em “Registros de aplicativo” no Azure AD, selecione seu aplicativo.
- Vá para “Certificados e segredos”.
- Clique em “Segredos do cliente”.
Criar uma conexão usando uma entidade de serviço existente
Se você já tem uma entidade de serviço, pode usá-la para criar uma conexão usando o Web Studio.
Certifique-se de ter estes itens prontos:
- SubscriptionId
- ActiveDirectoryID (ID do locatário)
- Application ID
-
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 assistente “Adicionar Conexão e Recursos”:
-
Na página “Conexão”, selecione “Criar uma nova conexão”, o tipo de conexão “Microsoft Azure” e seu ambiente Azure.
-
Selecione quais ferramentas usar para criar as máquinas virtuais e, em seguida, selecione “Avançar”.
-
Na página “Detalhes da Conexão”, insira seu ID de assinatura do Azure e um nome para a conexão.
Nota:
O nome da conexão pode conter de 1 a 64 caracteres e não pode conter apenas espaços em branco nem os caracteres
\/;:#.*?=<>|[]{}"'()'. -
Selecione Usar existente. Na janela Detalhes do Principal de Serviço Existente, insira as seguintes configurações para o principal de serviço existente. Depois de inserir os detalhes, o botão Salvar é ativado. Selecione Salvar. Você não pode prosseguir além desta página até fornecer detalhes válidos.
- ID da Assinatura. Insira seu ID de assinatura do Azure. Para obter seu ID de assinatura, faça login no portal do Azure e navegue até Assinaturas > Visão geral.
- ID do Active Directory (ID do locatário). Insira o ID do Diretório (locatário) do aplicativo que você registrou no Azure AD.
- ID do Aplicativo. Insira o ID do Aplicativo (cliente) do aplicativo que você registrou no Azure AD.
- Segredo do aplicativo. Crie uma chave secreta (segredo do cliente). O aplicativo registrado usa a chave para autenticar no Azure AD. Recomendamos que você altere as chaves regularmente para fins de segurança. Certifique-se de salvar a chave, pois você não poderá recuperá-la mais tarde.
-
Data de expiração do segredo. Insira a data após a qual o segredo do aplicativo expira. Você verá um ícone de aviso na conexão de host específica no nó de Hospedagem a partir de 14 dias antes da expiração da chave secreta. No entanto, se a chave secreta expirar, você receberá erros.
Nota:
Para fins de segurança, o período de expiração não pode ser superior a dois anos a partir de agora.
- URL de Autenticação. Este campo é preenchido automaticamente e não é editável.
- URL de Gerenciamento. Este campo é preenchido automaticamente e não é editável.
- Sufixo de armazenamento. Este campo é preenchido automaticamente e não é editável.
- Ponto de extremidade de armazenamento de blob do Azure para carregar ou baixar discos ou instantâneos. Este campo é preenchido automaticamente e não é editável.
- Serviço Key Vault. Este campo é preenchido automaticamente e não é editável.
-
Sufixo do barramento de serviço. Este campo é preenchido automaticamente e não é editável.
O acesso aos seguintes pontos de extremidade é 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. Esta é 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.com, e para o Azure US Government, éhttps://management.usgovcloudapi.net. - Sufixo de armazenamento:
https://*.core.windows.net. Este (*) é um caractere curinga para sufixo de armazenamento. Por exemplo,https://demo.table.core.windows.net. - Ponto de extremidade de armazenamento de blob do Azure para carregar ou baixar discos ou instantâneos:
https://*.storage.azure.net. Este (*) é um caractere curinga para operações de importação e exportação de armazenamento de blob. Por exemplo,https://md-impexp-xxxxx.z[00-50].blob.storage.azure.net. - Serviço Key Vault:
https://*.vault.azure.net. Este (*) é 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. Este (*) é um caractere curinga para namespaces criados na nuvem global do Azure. Por exemplo,https://{serviceNamespace}.servicebus.windows.net/{path}.
- URL de Autenticação:
- Após selecionar Salvar, você retorna à página Detalhes da Conexão. Selecione Avançar para continuar para a próxima página.
-
Configure os recursos para a conexão. Os recursos compreendem a região e a rede.
- Na página Região, selecione uma região.
- Na página 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 nem 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 fornece combinações exclusivas.) Se a região selecionada na página anterior não tiver nenhuma rede virtual, retorne a essa página e selecione uma região que tenha redes virtuais.
- 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 nem os caracteres
- Na página Resumo, visualize um resumo das configurações e selecione Concluir para finalizar sua configuração.
Gerenciar principais de serviço e conexões
Esta seção detalha como você pode gerenciar principais de serviço e conexões:
- Configurar as configurações de limitação do Azure
- Habilitar o compartilhamento de imagens no Azure
- Adicionar locatários compartilhados a uma conexão usando o Web Studio
- Implementar o compartilhamento de imagens usando o PowerShell
- Gerenciar o segredo do aplicativo e a data de expiração do segredo
Configurar as configurações de limitação do Azure
O Azure Resource Manager limita as solicitações para assinaturas e locatários, roteando o tráfego com base em limites definidos, adaptados às necessidades específicas do provedor. Consulte Limitação de solicitações do Resource Manager no site da Microsoft para obter mais informações. Existem limites para assinaturas e locatários, onde o gerenciamento de muitas máquinas pode se tornar problemático. Por exemplo, uma assinatura contendo muitas máquinas pode apresentar 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, você pode remover 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 grandes assinaturas, por exemplo, aquelas que contêm 1.000 VMs:
- Operações simultâneas absolutas: 500
- Máximo de novas operações por minuto: 2000
- Concorrência máxima de operações: 500
Use o Web Studio para configurar operações do Azure para uma determinada conexão do Azure:
- No Web Studio, selecione Hospedagem no painel esquerdo.
- Selecione a conexão.
- No assistente Editar Conexão, selecione Avançado.
- Na página 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.

O MCS suporta 500 operações simultâneas máximas por padrão. Alternativamente, você pode usar o SDK do PowerShell Remoto para definir o número máximo de operações simultâneas.
Use a propriedade PowerShell, MaximumConcurrentProvisioningOperations, para especificar o número máximo de operações de provisionamento simultâneas do Azure. Ao usar esta propriedade, considere:
- O valor padrão de
MaximumConcurrentProvisioningOperationsé 500. - Configure o parâmetro
MaximumConcurrentProvisioningOperationsusando o comando PowerShellSet-item.
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 através 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 dentro de um locatário (entre assinaturas)
- Compartilhar imagens entre locatários
Compartilhar imagens dentro de um locatário (entre assinaturas)
Para selecionar uma imagem na Galeria de Computação do Azure que pertence a uma assinatura diferente, a imagem deve ser compartilhada com o principal de serviço (SPN) dessa assinatura.
Por exemplo, se houver um principal de serviço (SPN 1), que está configurado no Studio como:
Principal de serviço: SPN 1
Assinatura: assinatura 1
Locatário: locatário 1
A imagem está em uma assinatura diferente, que está 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 controle de acesso baseado em função do Azure (RBAC). O Azure RBAC é o sistema de autorização usado para gerenciar o acesso aos recursos do Azure. Para obter mais informações sobre o Azure RBAC, consulte o documento da Microsoft O que é o controle de acesso baseado em função do Azure (Azure RBAC). Para conceder acesso, você atribui funções a principais de serviço no escopo do grupo de recursos com a função de Colaborador. Para atribuir funções do Azure, você deve ter a permissão Microsoft.Authorization/roleAssignments/write, como Administrador de Acesso do Usuário ou Proprietá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.
Para obter informações sobre como selecionar uma imagem de uma assinatura diferente usando comandos PowerShell, consulte Selecionar uma imagem de uma assinatura diferente.
Compartilhar imagens entre locatários
Para compartilhar imagens entre locatários com a Galeria de Computação do Azure, crie um registro de aplicativo.
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:
-
Crie um registro de aplicativo para o Locatário 1. Para obter mais informações, consulte Criar o registro do aplicativo.
-
Conceda acesso ao Locatário 2 ao aplicativo solicitando um login usando um navegador. Substitua
Tenant2 IDpelo ID do locatário do Locatário 1. SubstituaApplication (client) IDpelo ID do aplicativo do registro de aplicativo que você criou. Ao concluir as substituições, cole a URL em um navegador e siga os prompts de login para fazer login 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 <!--NeedCopy-->Para obter mais informações, consulte Conceder acesso ao Locatário 2.
-
Conceda acesso ao aplicativo ao grupo de recursos do Locatário 2. Faça login como Locatário 2 e conceda acesso ao registro do aplicativo ao grupo de recursos que contém a imagem da galeria. Para obter mais informações, consulte Autenticar solicitações entre locatários.
Para criar um catálogo usando uma imagem de um locatário diferente usando comandos PowerShell:
- Atualizar propriedades personalizadas da conexão de hospedagem com IDs de locatário compartilhados
- Selecionar uma imagem de um locatário diferente
Adicionar locatários compartilhados a uma conexão usando o Web Studio
Ao criar ou atualizar catálogos de máquinas no Web Studio, você pode selecionar imagens compartilhadas de diferentes locatários e assinaturas do Azure (compartilhadas através da Galeria de Computação do Azure). O recurso exige que você forneça informações de locatário e assinatura compartilhados para as conexões de host associadas.
Nota:
Certifique-se de ter configurado 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:
- No Web Studio, selecione Hospedagem no painel esquerdo.
-
Selecione a conexão e, em seguida, selecione Editar Conexão na barra de ações.

-
Em Locatários Compartilhados, faça o seguinte:
- Forneça o ID do aplicativo e o segredo do aplicativo associados à assinatura da conexão. O Citrix Virtual Apps and Desktops usa essas informações para autenticar no Azure AD.
- Adicione locatários e assinaturas que compartilham a Galeria de Computação do Azure com a assinatura da conexão. Você pode adicionar até 8 locatários compartilhados e 8 assinaturas para cada locatário.
- Ao terminar, selecione Aplicar para aplicar as alterações feitas e manter a janela aberta, ou selecione OK para aplicar as alterações e fechar a janela.
Implementar o compartilhamento de imagens usando o PowerShell
Esta seção o guia pelos processos de compartilhamento de imagens usando o PowerShell:
- Selecionar uma imagem de uma assinatura diferente
- Atualizar propriedades personalizadas da conexão de hospedagem com IDs de locatário compartilhados
- Selecionar uma imagem de um locatário diferente
Selecionar uma imagem de uma assinatura diferente
Você pode selecionar uma imagem na Galeria de Computação do Azure que pertence a uma assinatura compartilhada diferente no mesmo locatário do Azure para criar e atualizar catálogos MCS usando comandos PowerShell.
- Na pasta raiz da unidade de hospedagem, o Citrix cria uma nova pasta de assinatura compartilhada chamada
sharedsubscription. -
Liste todas as assinaturas compartilhadas em um locatário.
Get-ChildItem -Path "XDhyp:\HostingUnits\azres\sharedsubscription.folder" <!--NeedCopy--> -
Selecione uma assinatura compartilhada e, em seguida, liste todos os grupos de recursos compartilhados dessa assinatura compartilhada.
Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription" <!--NeedCopy--> -
Selecione um grupo de recursos e, em seguida, liste todas as galerias desse grupo de recursos.
Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup" <!--NeedCopy--> -
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" <!--NeedCopy--> -
Selecione uma definição de imagem e, em seguida, liste todas as versões de imagem dessa definição de imagem.
Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\sigtestdef.imagedefinition" <!--NeedCopy--> -
Crie e atualize um catálogo MCS usando os seguintes elementos:
- Grupo de recursos
- Galeria
- Definição de imagem da galeria
- Versão de imagem da galeria
Para obter informações sobre como criar um catálogo usando o SDK do PowerShell Remoto, consulte https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/.
Atualizar propriedades personalizadas de conexão de hospedagem com IDs de locatário compartilhados
Use Set-Item para atualizar as propriedades personalizadas da conexão de hospedagem com IDs de locatário e IDs de assinatura compartilhados. Adicione uma propriedade SharedTenants em CustomProperties. O formato de Shared Tenants é:
[{"Tenant":"94367291-119e-457c-bc10-25337231f7bd","Subscriptions":["7bb42f40-8d7f-4230-a920-be2781f6d5d9"]},{"Tenant":"50e83564-c4e5-4209-b43d-815c45659564","Subscriptions":["06ab8944-6a88-47ee-a975-43dd491a37d0"]}]
<!--NeedCopy-->
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
<!--NeedCopy-->
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 pertence a um locatário diferente do Azure para criar e atualizar catálogos MCS usando comandos do PowerShell.
- Na pasta raiz da unidade de hospedagem, o Citrix cria uma nova pasta de assinatura compartilhada chamada
sharedsubscription. -
Liste todas as assinaturas compartilhadas.
Get-ChildItem XDHyp:\HostingUnits\azres\sharedsubscription.folder <!--NeedCopy--> -
Selecione uma assinatura compartilhada e, em seguida, liste todos os grupos de recursos compartilhados dessa assinatura compartilhada.
Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription <!--NeedCopy--> -
Selecione um grupo de recursos e, em seguida, liste todas as galerias desse grupo de recursos.
Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup <!--NeedCopy--> -
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 <!--NeedCopy--> -
Selecione uma definição de imagem e, em seguida, liste todas as versões de imagem dessa definição de imagem.
Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery\hij.imagedefinition <!--NeedCopy--> -
Crie e atualize um catálogo MCS usando os seguintes elementos:
- Grupo de recursos
- Galeria
- Definição de imagem da galeria
- Versão de imagem da galeria
Para obter informações sobre como criar um catálogo usando o SDK do PowerShell Remoto, consulte https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/.
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ê verá um ícone de aviso na conexão de host específica no nó Hospedagem a partir de 14 dias antes da expiração da chave secreta. No entanto, se a chave secreta expirar, você receberá erros.
Criar um segredo de aplicativo no Azure
Você pode criar um segredo de aplicativo para uma conexão por meio do portal do Azure.
- Selecione Azure Active Directory.
- Em Registros de aplicativo no Azure AD, selecione seu aplicativo.
- Vá para Certificados e segredos.
- Clique em Segredos do cliente > Novo segredo do cliente.
-
Forneça uma descrição do segredo e especifique uma duração. Ao terminar, selecione Adicionar.
Observação:
Certifique-se de salvar o segredo do cliente, pois você não poderá recuperá-lo mais tarde.
- Copie o valor do segredo do cliente e a data de expiração.
- No Web Studio, edite a conexão correspondente e substitua o conteúdo nos campos Segredo do aplicativo e Data de expiração do segredo pelos valores que você copiou.
Alterar a data de expiração do segredo
Você pode usar o Web Studio para adicionar ou modificar a data de expiração do segredo do aplicativo em uso.
Observação:
Você verá um ícone de aviso na conexão de host específica no nó Hospedagem a partir de 14 dias antes da expiração da chave secreta. No entanto, se a chave secreta expirar, você receberá erros.
- No assistente Adicionar Conexão e Recursos, clique com o botão direito do mouse em uma conexão e clique em Editar Conexão.
- Na página Propriedades da 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.
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 o 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: Associe 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 forma na unidade de hospedagem:
- Abra uma janela do PowerShell usando o SDK do PowerShell Remoto.
-
Execute os seguintes comandos:
Add-PSSnapin citrix*. cd XDHyp:\HostingUnits\ Dir <!--NeedCopy--> -
Selecione uma unidade de hospedagem para recuperar os detalhes:
Get-Item "XDHyp:\HostingUnits\<hostingunitname>" <!--NeedCopy--> -
Copie as CustomProperties para um bloco de notas e anexe 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> <!--NeedCopy--> -
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>" <!--NeedCopy--> - Execute
$cred = Get-Credential. Se solicitado, forneça as credenciais de conexão. As credenciais são ID do Aplicativo Azure e segredo. -
Execute o seguinte comando.
Set-Item -PSPath XDHyp:\HostingUnits\<hostingunitname> -CustomProperties $customProperty -username $cred.username -Securepassword $cred.password <!--NeedCopy-->
Importante:
Se você receber uma mensagem informando que
SubscriptionIdestá ausente, substitua todas as aspas duplas (“) por uma crase seguida de aspas duplas (`”) na propriedade personalizada.
- Execute
dirpara verificar as configurações atualizadas deCustomProperties.
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.
-
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"]}' <!--NeedCopy--> -
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"]}' <!--NeedCopy-->
Filtrar grupos de recursos vazios
Use o comando 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:
-
Recuperar o número máximo de registros em uma página:
Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 <!--NeedCopy--> -
Recuperar o número máximo de registros em uma página e filtrar para encontrar 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"]}' <!--NeedCopy--> -
Recuperar com
skippara indicar diretamente a página e filtrar para encontrar 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"]}' <!--NeedCopy--> -
Use um token para recuperar a próxima página e filtrar para encontrar 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==' <!--NeedCopy--> -
Recuperar todos os grupos de recursos com a tag interna Citrix e limitar o número máximo de registros com
MaxRecords.Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 <!--NeedCopy--> -
Filtrar por perfil de máquina (imagem mestre) com a tag interna Citrix e limitar o número máximo de registros com
MaxRecords.Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "templatespecversion"]}' <!--NeedCopy--> -
Filtrar por imagem preparada com a tag interna Citrix e limitar o número máximo de registros com
MaxRecords.Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion"]}' <!--NeedCopy--> -
Filtrar por perfil de máquina (imagem preparada) com a tag interna Citrix e limitar o número máximo de registros com
MaxRecords.Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "templatespecversion"]}' <!--NeedCopy--> -
Filtrar por imagem com a tag interna Citrix e limitar o número máximo de registros com
MaxRecordse localização.Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion", "storageaccount"], "location": ["eastus", "westus"]}' <!--NeedCopy--> -
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 <!--NeedCopy-->
Conectar-se ao ambiente de nuvem Azure Sovereign Airgap
O ambiente de nuvem Azure Sovereign Airgap é adequado para cargas de trabalho ultrassecretas que devem estar em domínios de rede segregados. Você pode se conectar ao ambiente de nuvem Azure Sovereign Airgap usando uma propriedade personalizada DisableInstanceDiscovery ao criar uma conexão de host.
<Property xsi:type="StringProperty" Name="DisableInstanceDiscovery" Value="true" />
<!--NeedCopy-->
Consulte Create-HostingConnection.ps1 para obter mais informações sobre como criar uma conexão de host do Azure.
Permissões do Azure necessárias
Esta seção contém as permissões mínimas e gerais necessárias para o Azure.
Permissões mínimas
As permissões mínimas oferecem melhor controle de segurança. No entanto, novos recursos que exigem permissões adicionais falham devido ao uso apenas de permissões mínimas.
Criar uma conexão de host
Adicione uma nova 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"
<!--NeedCopy-->
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",
<!--NeedCopy-->
Criar, atualizar ou excluir VMs
Crie um catálogo de máquinas, adicione, exclua, atualize máquinas e exclua o catálogo de máquinas.
A seguir está a lista de permissões mínimas necessárias quando a imagem mestre é um disco gerenciado ou os instantâneos estão localizados na mesma região da conexão de host.
"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"
<!--NeedCopy-->
Você precisa das seguintes permissões extras com base nas permissões mínimas para os seguintes recursos:
-
Se a imagem mestre for um VHD em uma conta de armazenamento localizada na mesma região da conexão de host:
"Microsoft.Storage/storageAccounts/read", "Microsoft.Storage/storageAccounts/listKeys/action", <!--NeedCopy--> -
Se a imagem mestre for uma
ImageVersionda Galeria de Imagens Compartilhadas:"Microsoft.Compute/galleries/read", "Microsoft.Compute/galleries/images/read", "Microsoft.Compute/galleries/images/versions/read", <!--NeedCopy--> -
Se a imagem mestre for um disco gerenciado, os instantâneos ou o VHD estarão em uma região diferente da região da conexão de host:
"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", <!--NeedCopy--> -
Se você usar um grupo de recursos gerenciado pelo Citrix:
"Microsoft.Resources/subscriptions/resourceGroups/write", "Microsoft.Resources/subscriptions/resourceGroups/delete", <!--NeedCopy--> -
Se você colocar a imagem mestre na Azure Compute Gallery (anteriormente Shared Image Gallery) 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", <!--NeedCopy--> -
Se você usa o suporte de host dedicado do Azure:
"Microsoft.Compute/hostGroups/read", "Microsoft.Compute/hostGroups/write", "Microsoft.Compute/hostGroups/hosts/read", <!--NeedCopy--> -
Se você usa Criptografia do Lado do Servidor (SSE) com Chaves Gerenciadas pelo Cliente (CMK):
"Microsoft.Compute/diskEncryptionSets/read", <!--NeedCopy--> -
Se você implanta VMs usando modelos ARM (perfil de máquina):
"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", <!--NeedCopy--> -
Se você usa a especificação de modelo do Azure como um perfil de máquina:
"Microsoft.Resources/templateSpecs/read", "Microsoft.Resources/templateSpecs/versions/read", <!--NeedCopy-->
Criar, atualizar e excluir máquinas com disco não gerenciado
A seguir, está a lista de permissões mínimas necessárias quando a imagem mestre é 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",
<!--NeedCopy-->
Permissão geral
A função de Colaborador tem acesso total para gerenciar todos os recursos. Este conjunto de permissões não impede que você obtenha novos recursos.
O conjunto de permissões a seguir oferece a melhor compatibilidade daqui para frente, 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.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/securityRules/read",
"Microsoft.Compute/capacityReservationGroups/capacityReservations/read"
<!--NeedCopy-->
Validar conexão de host em ambiente não secreto do Azure
Você pode validar as permissões em uma conexão de host para realizar tarefas relacionadas à criação e gerenciamento de catálogos de máquinas 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 bloqueios em momentos críticos.
Você pode validar as permissões em uma conexão de host usando o comando PowerShell Test-HypHypervisorConnection. O resultado do comando é capturado como uma lista, onde cada item da lista é dividido em três seções.
- Categoria: A ação ou tarefa que um usuário pode fazer para criar e gerenciar um catálogo de máquinas MCS.
- Ação Corretiva: A etapa que um administrador deve fazer para resolver uma discrepância de permissões ausentes dos usuários.
- Permissão ausente: A lista de permissões ausentes para uma categoria.
Para validar as permissões, faça o seguinte:
- Crie uma conexão de host para o Azure.
- Abra uma janela do PowerShell a partir do host do Delivery Controller™.
- Execute
asnp citrix*para carregar os módulos PowerShell específicos da Citrix. -
Execute o seguinte comando para verificar se você tem as permissões necessárias para testar uma conexão.
Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AzureCon" <!--NeedCopy-->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:
- Application.Read.All
- Directory.Read.All
- ServicePrincipalEndpoint.Read.All
-
Depois de adicionar as permissões ausentes necessárias para pesquisar suas permissões, execute o seguinte comando para verificar se você tem permissões nas várias categorias.
Exemplo:
Para testar uma conexão no nível da 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 <!--NeedCopy-->Exemplo:
Para testar uma conexão no nível do grupo de recursos sem alto nível de autorização:
Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\testles -CustomProperties $customProperties | Format-List <!--NeedCopy-->Observação:
O parâmetro
CustomPropertiesé 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 <!--NeedCopy-->
Para obter informações sobre permissões, consulte Permissões do Azure necessárias.
Validar conexão de host em ambiente secreto do Azure
Você pode validar se uma conexão de host tem as permissões necessárias em um ambiente secreto do Azure usando um comando PowerShell Test-HypHypervisorConnection.
No entanto, para obter o resultado da validação com sucesso, crie ou atualize uma conexão de host existente para ter uma propriedade personalizada AuthenticationObjectId. Esta propriedade armazena o ID do Objeto do principal de serviço vinculado à conexão de hospedagem.
Observação:
Obtenha o ID do Objeto do Principal de Serviço no portal do Azure. Não use o ID do Aplicativo.
Criar ou atualizar uma conexão de host para incluir AuthenticationObjectId
Use New-Item para criar uma conexão de host e adicione AuthenticationObjectId como uma propriedade personalizada. Exemplo:
New-Item -ConnectionType 'Azure' -HypervisorAddress @('http://hypervisorhost1.example.com','http://hypervisorhost2.example.com')`
-LoggingId $loggingId -Path @('XDHyp:\\Connections\\Example') -Persist -Scope @() `
-Password 'Password' -UserName 'root' -CustomProperties <Property xsi:type="StringProperty" Name="AuthenticationObjectId" Value="Object ID of the service principal"/>
<!--NeedCopy-->
Use Set-Item para atualizar uma conexão de host existente para adicionar AuthenticationObjectId como uma propriedade personalizada. As etapas para fazer isso são:
- Abra uma janela do PowerShell usando o SDK do PowerShell Remoto.
-
Execute os seguintes comandos:
Add-PSSnapin citrix*. cd XDHyp:\Connections\ dir <!--NeedCopy--> - Copie as
CustomPropertiesda conexão para um bloco de notas e anexe a configuração da propriedade<Property xsi:type="StringProperty" Name="AuthenticationObjectId" Value="Object ID of the service principal"/>àsCustomProperties. - Na janela do PowerShell, atribua uma variável às propriedades personalizadas modificadas.
- Execute
$cred = Get-Credential. Se solicitado, forneça as credenciais de conexão. As credenciais são o ID do Aplicativo Azure e o segredo. - Execute
Set-Item -PSPath XDHyp:\Connections\<Connection_Name> -CustomProperties $customProperty -username $cred.username -Securepassword $cred.password. -
Execute
dirpara verificar as configurações deCustomPropertiesatualizadas.Set-Item -PSPath XDHyp:\Connections\$connName -CustomProperties <Property xsi:type="StringProperty" Name="AuthenticationObjectId" Value="Object ID of the service principal"/> -username $cred.username -Securepassword $cred.password <!--NeedCopy-->
Validar a conexão de host para as permissões
Para validar as conexões de host para as funções e permissões necessárias, execute os seguintes comandos:
-
Se você tiver funções e permissões atribuídas no nível da assinatura:
Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\<Your-HostingConnection> <!--NeedCopy--> -
Se você tiver funções e permissões atribuídas no nível do grupo de recursos:
Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\<Your-HostingConnection> -CustomProperties $CustomProperties $CustomProperties = '<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">'` + '<Property xsi:type="StringProperty" Name="ResourceGroups" Value="ExampleResourceGroup" />'` + '</CustomProperties>' <!--NeedCopy-->
Onde ir em seguida
- Se você estiver no processo de implantação inicial, consulte Criar catálogos de máquinas
- Para informações específicas do Azure, consulte Criar um catálogo do Microsoft Azure
Mais informações
Neste artigo
- Criar entidades de serviço e conexões
- Gerenciar principais de serviço e conexões
- Usar um grupo de segurança de rede pré-criado
- Filtrar grupos de recursos vazios
- Conectar-se ao ambiente de nuvem Azure Sovereign Airgap
- Permissões do Azure necessárias
- Validar conexão de host em ambiente não secreto do Azure
- Validar conexão de host em ambiente secreto do Azure
- Onde ir em seguida
- Mais informações