Compartilhar via


Autenticar e autorizar um aplicativo com a ID do Microsoft Entra para acessar entidades do Azure Relay

A Retransmissão do Azure dá suporte ao uso da ID do Microsoft Entra para autorizar solicitações a entidades de Retransmissão do Azure (Conexões Híbridas, Retransmissões WCF). Com o Microsoft Entra ID, você pode usar o RBAC (controle de acesso baseado em função) para conceder permissões a uma entidade de segurança, que pode ser um usuário, um grupo ou uma entidade de serviço de aplicativo. Para saber mais sobre as funções e atribuições de função, confira Noções básicas sobre funções diferentes.

Observação

Esse recurso está disponível em todas as regiões, exceto no 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. Aplicativos nativos e aplicativos Web que fazem solicitações ao Relay também podem autorizar 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.

Autenticar-se por meio de um aplicativo

Uma das principais vantagens de usar a ID do Microsoft Entra com a Retransmissão do Azure é que suas credenciais não precisam mais ser armazenadas em seu código. Em vez disso, é possível solicitar um token de acesso OAuth 2.0 da plataforma de identidade da Microsoft. O Microsoft Entra autentica a entidade de segurança (um usuário, um grupo ou entidade de serviço) que executa o aplicativo. Se a autenticação for bem-sucedida, a ID do Microsoft Entra retornará o token de acesso ao aplicativo e o aplicativo poderá usar o token de acesso para autorizar solicitações à Retransmissão do Azure.

As seções a seguir mostram como configurar seu aplicativo de console para autenticação com a plataforma de identidade da Microsoft 2.0. Para obter mais informações, consulte Visão geral da plataforma de identidade da Microsoft (v2.0).

Para ter uma visão geral do fluxo de concessão de código do OAuth 2.0, confira Autorizar o acesso aos aplicativos Web do Microsoft Entra usando o fluxo de concessão de código do OAuth 2.0.

Registrar seu aplicativo em um locatário do Microsoft Entra

A primeira etapa no uso da ID do Microsoft Entra para autorizar entidades do Azure Relay é registrar seu aplicativo cliente com um locatário do Microsoft Entra no portal do Azure. Ao registrar o aplicativo cliente, você fornece informações sobre ele ao AD. Em seguida, o Microsoft Entra ID fornecerá uma ID do cliente (também chamada de ID do aplicativo) que você poderá usar para associar seu aplicativo ao runtime do Microsoft Entra.

Para obter instruções passo a passo para registrar seu aplicativo com o Microsoft Entra ID, consulte Guia de início rápido: registrar um aplicativo com o Microsoft Entra ID.

Importante

Anote a ID do Diretório (locatário) e a ID do Aplicativo (cliente). Você precisará desses valores para executar o aplicativo de exemplo.

Criar um segredo do cliente

O aplicativo precisa de um segredo do cliente para provar sua identidade ao solicitar um token. No mesmo artigo vinculado anteriormente, consulte a seção Adicionar um segredo do cliente para criar um segredo do cliente.

Importante

Anote o Segredo do Cliente. Você precisará dele para executar o aplicativo de exemplo.

Atribuir funções do Azure usando o portal do Azure

Atribua uma das funções da Retransmissão do Azure à entidade de serviço do aplicativo 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.

Execute o exemplo

  1. Baixe o exemplo de aplicativo de console do GitHub.

  2. Execute o aplicativo localmente no computador de acordo com as instruções descritas no artigo LEIAME.

    Observação

    Siga as mesmas etapas para executar o aplicativo de console de exemplo para WCF Relay.

Código realçado do exemplo

Aqui está o código do exemplo que mostra como usar a autenticação do Microsoft Entra para se conectar ao serviço de Retransmissão do Azure.

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

    Se você ainda não tiver criado um registro de aplicativo, consulte a seção Registrar seu aplicativo com o Microsoft Entra ID para criá-lo e, em seguida, crie um segredo do cliente, conforme mencionado na seção Criar um segredo do cliente.

    Caso deseje usar um registro de aplicativo existente, siga estas instruções para obter a ID do Aplicativo (cliente) e a ID do Diretório (locatário).

    1. Entre no portal do Azure.
    2. Procure e selecione Microsoft Entra ID usando a barra de pesquisa na parte superior.
    3. Na página ID do Microsoft Entra , selecione Registros de aplicativos na seção Gerenciar no menu esquerdo.
    4. Selecione o registro do seu aplicativo.
    5. Na página do registro do aplicativo, você verá os valores de ID do aplicativo (cliente) e ID do diretório (locatário).

    Para obter o segredo do cliente, siga estas etapas:

    1. Na página do registro do aplicativo, selecione Certificados e segredos no menu à esquerda.
    2. Use o botão Copiar na coluna Valor do segredo na seção Segredos do cliente.
    static TokenProvider GetAadTokenProvider(string clientId, string tenantId, string clientSecret)
    {
        return TokenProvider.CreateAzureActiveDirectoryTokenProvider(
            async (audience, authority, state) =>
            {
                IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId)
                    .WithAuthority(authority)
                    .WithClientSecret(clientSecret)
                    .Build();
    
                var authResult = await app.AcquireTokenForClient(new [] { $"{audience}/.default" }).ExecuteAsync();
                return authResult.AccessToken;
            },
            $"https://login.microsoftonline.com/{tenantId}");
    }
    
  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, consulte os tópicos a seguir.