Autenticar e autorizar um aplicativo com o Microsoft Entra ID para acessar entidades da Retransmissão do Azure
A Retransmissão do Azure dá suporte ao uso do Microsoft Entra ID para autorizar solicitações para entidades da Retransmissão do Azure (Conexões Híbridas, Retransmissões do 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á em disponibilidade geral em todas as regiões, exceto 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.
- 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. - 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.
Autenticar-se por meio de um aplicativo
Uma das principais vantagens de utilizar o Microsoft Entra ID com a Retransmissão do Azure é que as credenciais não precisam ser mais armazenadas no 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 tiver sucesso, o Microsoft Entra ID retornará o token de acesso ao aplicativo e o aplicativo poderá usá-lo 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, confira a 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 para usar o Microsoft Entra ID e autorizar as entidades da Retransmissão do Azure é registrar o 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 sobre como registrar seu aplicativo no Microsoft Entra ID, consulte o Início Rápido: Registrar um aplicativo no 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, confira 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
Baixe o exemplo de aplicativo de console do GitHub.
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 exemplo de aplicativo de console para a Retransmissão 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.
Crie um objeto TokenProvider usando o método
TokenProvider.CreateAzureActiveDirectoryTokenProvider
.Se você ainda não tiver criado um registro de aplicativo, confira a seção Registrar seu aplicativo no Microsoft Entra ID para criá-lo e criar 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).
- Entre no portal do Azure.
- Pesquise e selecione Microsoft Entra ID usando a barra de pesquisa na parte superior.
- Na página do Microsoft Entra ID, escolha Registros de aplicativo na seção Gerenciar no menu à esquerda.
- Selecione o registro do seu aplicativo.
- Na página do registro do aplicativo, você verá os valores da ID do Aplicativo (cliente) e da ID do Diretório (locatário).
Para obter o segredo do cliente, siga estas etapas:
- Na página do registro do aplicativo, selecione Certificados e segredos no menu à esquerda.
- 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}"); }
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
- Conexões híbridas: .NET, Java, JavaScript
- Retransmissão do WCF: .NET
Próximas etapas
- Para saber mais sobre o Azure RBAC, confira O que é o Azure RBAC (controle de acesso baseado em função do Azure)?
- Para saber como atribuir e gerenciar atribuições de função do Azure com Azure PowerShell, CLI do Azure ou API REST, confira estes artigos:
- Adicionar ou remover atribuições de função do Azure usando o Azure PowerShell
- Adicionar ou remover atribuições de função do Azure usando a CLI do Azure
- Adicionar ou remover atribuições de função do Azure usando a API REST
- Adicionar ou remover atribuições de função do Azure usando Modelos do Azure Resource Manager
Para saber mais sobre a Retransmissão do Azure, confira os artigos a seguir.