Autenticar uma identidade gerenciada no Microsoft Entra ID para acessar os recursos da Retransmissão do Azure

Identidades gerenciadas para recursos do Azure é um recurso do Azure que permite criar uma identidade segura associada à implantação na qual o código do aplicativo é executado. Em seguida, você pode associar essa identidade a funções de controle de acesso que concedem permissões personalizadas para acessar os recursos do Azure específicos que seu aplicativo precisa.

Com identidades gerenciadas, a plataforma do Azure gerencia essa identidade de runtime. Você não precisa armazenar nem proteger as chaves de acesso no código ou na configuração do aplicativo, seja para a própria identidade ou para os recursos que você precisa acessar. Um aplicativo cliente da Retransmissão em execução em um aplicativo do Serviço de Aplicativo do Azure ou em uma máquina virtual com as entidades gerenciadas habilitadas para suporte de recursos do Azure não precisa lidar com regras e chaves SAS nem com nenhum outro token de acesso. O aplicativo cliente só precisa do endereço do ponto de extremidade do namespace da Retransmissão. Quando o aplicativo se conecta, a Retransmissão associa o contexto de entidade gerenciada ao cliente em uma operação que será mostrada em um exemplo mais adiante neste artigo. Depois que ele é associado com uma identidade gerenciada, o cliente da Retransmissão pode realizar todas as operações autorizadas. A autorização é concedida pela associação de uma entidade gerenciada às funções da Retransmissão.

Observação

Esse recurso está em disponibilidade geral em todas as regiões, incluindo o Microsoft Azure operado pela 21Vianet.

Visão geral

Quando uma entidade de segurança (um usuário, grupo ou aplicativo) tenta acessar a entidade de Retransmissão, a solicitação deve ser autorizada. Com o Microsoft Entra ID, o acesso a um recurso é um processo de duas etapas.

  1. Primeiro, a identidade da entidade de segurança é autenticada e um token OAuth 2.0 é retornado. O nome do recurso para solicitar um token é https://relay.azure.net. Se um aplicativo estiver em execução em uma entidade do Azure, como uma VM do Azure, um conjunto de dimensionamento de máquinas virtuais ou um aplicativo do Azure Functions, ele poderá usar uma identidade gerenciada para acessar os recursos.
  2. Em seguida, o token é passado como parte de uma solicitação para o serviço de Retransmissão para autorizar o acesso ao recurso especificado (conexões híbridas, retransmissões de WCF). O Microsoft Entra autoriza os direitos de acesso aos recursos protegidos por meio do RBAC do Azure (controle de acesso baseado em função). A Retransmissão do Azure define um conjunto de funções internas do Azure que abrangem conjuntos comuns de permissões usados para acessar entidades de Retransmissão. Você também pode definir funções personalizadas para acessar os dados. Para obter uma lista de funções internas com suporte na Retransmissão do Azure, consulte Funções internas do Azure para Retransmissão do Azure. Os aplicativos nativos e os aplicativos Web que fazem as solicitações à Retransmissão também podem fazer a autorização com o Microsoft Entra ID.

Funções internas do Azure para Retransmissão do Azure

Para a Retransmissão do Azure, o gerenciamento de namespaces e de todos os recursos relacionados por meio do portal do Azure e da API de gerenciamento de recursos do Azure já está protegido pelo modelo Azure RBAC. O Azure fornece as funções internas do Azure abaixo para autorizar o acesso a um namespace de Retransmissão:

Função Descrição
Proprietário de Retransmissão do Azure Use essa função para conceder acesso completo aos recursos de Retransmissão do Azure.
Ouvinte de Retransmissão do Azure Use essa função para conceder acesso de escuta e leitura de entidade aos recursos de Retransmissão do Azure.
Remetente de Retransmissão do Azure Use essa função para conceder acesso de envio e leitura de entidade aos recursos de Retransmissão do Azure.

Escopo do recurso

Antes de atribuir uma função do Azure a uma entidade de segurança, determine o escopo do acesso que essa entidade de segurança deve ter. De acordo com as melhores práticas, sempre é melhor conceder o escopo mais estreito possível.

A seguinte lista descreve os níveis de escopo de acesso que você pode definir para os recursos de Retransmissão do Azure, começando pelo escopo mais estreito:

  • Entidades de retransmissão: a atribuição de função se aplica a uma entidade de Retransmissão específica, como uma conexão híbrida ou uma retransmissão de WCF.
  • Namespace de retransmissão: a atribuição de função se aplica a todas as entidades de Retransmissão no namespace.
  • Grupo de recursos: a atribuição de função se aplica a todos os recursos de Retransmissão no grupo de recursos.
  • Assinatura: a atribuição de função se aplica a todos os recursos de Retransmissão em todos os grupos de recursos na assinatura.

Observação

Lembre-se de que as atribuições de função do Azure podem levar até cinco minutos para se propagar. Para obter mais informações sobre como as funções internas são definidas, confira Compreender as definições de função. Para obter informações sobre como criar funções personalizadas do Azure, confira Funções personalizadas do Azure.

Habilitar a identidade gerenciada

Primeiro, habilite a identidade gerenciada para o recurso do Azure que precisa acessar as entidades da Retransmissão do Azure (conexões híbridas ou retransmissões do WCF). Por exemplo, se o aplicativo cliente da Retransmissão estiver em execução em uma VM do Azure, habilite a identidade gerenciada para a VM seguindo as instruções descritas no artigo Configurar a identidade gerenciada para uma VM do Azure. Depois que você habilitar essa configuração, uma nova identidade de serviço gerenciado será criada no Microsoft Entra ID.

Para obter uma lista de serviços do Azure que dão suporte a identidades gerenciadas, veja Serviços que dão suporte a identidades gerenciadas para recursos do Azure.

Atribuir uma função da Retransmissão do Azure à identidade gerenciada

Depois de habilitar a identidade gerenciada, atribua uma das funções da Retransmissão do Azure (Proprietário, Ouvinte ou Remetente da Retransmissão do Azure) à identidade no escopo apropriado. Quando a função do Azure é atribuída a uma identidade gerenciada, a identidade gerenciada recebe acesso às entidades da Retransmissão no escopo apropriado.

A seção a seguir usa um aplicativo simples que é executado em uma identidade gerenciada em uma instância de VM do Azure e acessa os recursos da Retransmissão.

Aplicativo de exemplo em uma VM acessando as entidades da Retransmissão

  1. Baixe o aplicativo de console de exemplo de Conexões Híbridas no computador do GitHub.

  2. Crie uma VM do Azure. Para este exemplo, use uma imagem do Windows 10.

  3. Habilite uma identidade atribuída pelo sistema ou uma identidade atribuída pelo usuário para a VM do Azure. Para obter instruções, confira Habilitar uma identidade para uma VM.

  4. Atribua uma das funções da Retransmissão à identidade de serviço gerenciado no escopo desejado (entidade, namespace, grupo de recursos ou assinatura da Retransmissão). Para ver as etapas detalhadas, confira Atribuir funções do Azure usando o portal do Azure.

  5. Compile o aplicativo de console localmente no computador local de acordo com as instruções descritas no documento LEIAME.

  6. Copie o executável na pasta <seu caminho local>\RoleBasedAccessControl\bin\Debug para a VM. Use o RDP para se conectar à VM do Azure. Para obter mais informações, confira Como conectar-se e entrar em uma máquina virtual do Azure que executa o Windows.

  7. Execute RoleBasedAccessControl.exe na VM do Azure de acordo com as instruções descritas no documento LEIAME.

    Observação

    Siga as mesmas etapas para executar o aplicativo de console para as Retransmissões do WCF.

Código realçado do exemplo

Este é o código da amostra que mostra como usar a autenticação do Microsoft Entra para se conectar ao serviço Retransmissão do Azure.

  1. Crie um objeto TokenProvider usando o método TokenProvider.CreateManagedIdentityTokenProvider.

    • Se você estiver usando uma identidade gerenciada atribuída pelo sistema:
      TokenProvider.CreateManagedIdentityTokenProvider();
      
    • Se você estiver usando uma identidade gerenciada atribuída pelo usuário, obtenha a ID do cliente para a identidade atribuída pelo usuário na página identidade gerenciada do portal do Azure. Para obter instruções, confira Listar as identidades gerenciadas atribuídas pelo usuário.
      var managedCredential = new ManagedIdentityCredential(clientId);
      tokenProvider = TokenProvider.CreateManagedIdentityTokenProvider(managedCredential);    
      
  2. Crie um objeto HybridConnectionListener ou HybridConnectionClient transmitindo o URI de conexão híbrida e o provedor de token criado na etapa anterior.

    Ouvinte:

    var listener = new HybridConnectionListener(hybridConnectionUri, tokenProvider);    
    

    Remetente:

    var sender = new HybridConnectionClient(hybridConnectionUri, tokenProvider);    
    

Exemplos

Próximas etapas

Para saber mais sobre a Retransmissão do Azure, confira os artigos a seguir.