Compartilhar via


Usar o proxy de aplicativo do Microsoft Entra para fornecer acesso seguro a uma API (Interface de Programação de Aplicativo) hospedada em uma nuvem privada ou local

Visão geral

A lógica de negócios geralmente reside em uma API (Interface de Programação de Aplicativo) privada. A API é executada no local ou em uma nuvem privada. Seus aplicativos Android, iOS, Mac ou Windows nativos precisam interagir com os pontos de extremidade da API para usar dados ou fornecer interação do usuário. O proxy de aplicativo do Microsoft Entra e a MSAL (Biblioteca de Autenticação da Microsoft) permitem que seus aplicativos nativos acessem com segurança suas APIs de nuvem privada. O proxy de aplicativo do Microsoft Entra é uma solução mais rápida e segura do que abrir portas de firewall e controlar a autenticação e a autorização na camada de aplicativo.

Dica

O termo "local" é um termo herdado que remonta à época em que os servidores físicos estavam localizados nas instalações do escritório corporativo. Hoje, muitas cargas de trabalho auto-hospedadas são executadas em uma máquina virtual em um datacenter. Os termos na nuvem local e privada são usados de forma intercambiável.

Este artigo explica como configurar uma solução de proxy de aplicativo do Microsoft Entra para hospedar um serviço de API Web que os aplicativos nativos podem acessar.

O diagrama a seguir mostra uma maneira tradicional de publicar APIs locais. Essa abordagem requer a abertura das portas de entrada 80 e 443.

Diagrama mostrando a arquitetura de publicação de API tradicional com as portas de entrada 80 e 443 abertas para a Internet.

O diagrama a seguir mostra como você pode usar o proxy de aplicativo do Microsoft Entra para publicar APIs com segurança sem abrir portas de entrada:

Diagrama mostrando a arquitetura de proxy de aplicativo do Microsoft Entra para publicação segura de API sem a necessidade de portas de entrada.

O proxy de aplicativo do Microsoft Entra forma o backbone da solução, funcionando como um ponto de extremidade público para acesso à API e fornecendo autenticação e autorização. Você pode acessar suas APIs de uma ampla variedade de plataformas usando as bibliotecas da MSAL (Biblioteca de Autenticação da Microsoft ).

Como a autenticação e a autorização de proxy de aplicativo do Microsoft Entra são criadas com base na ID do Microsoft Entra, você pode usar o Acesso Condicional do Microsoft Entra para garantir que apenas dispositivos confiáveis possam acessar APIs publicadas por meio do proxy de aplicativo. Utilize o Ingresso no Microsoft Entra ou Ingresso Híbrido no Microsoft Entra para desktops, e Intune Managed para dispositivos. Você também pode aproveitar os recursos do Microsoft Entra ID P1 ou P2, como a autenticação multifator do Microsoft Entra e a segurança com suporte de machine learning do Microsoft Entra ID Protection.

Pré-requisitos

Para concluir esta explicação passo a passo, será necessário:

Publicar a API por meio do proxy de aplicativo

Para publicar uma API fora da sua intranet por meio do proxy de aplicativo, você segue o mesmo padrão para publicar aplicativos Web. Para obter mais informações, consulte Tutorial: Adicionar um aplicativo local para acesso remoto por meio do proxy de aplicativo na ID do Microsoft Entra.

Para publicar a API Web do SecretAPI por meio do proxy de aplicativo:

  1. Crie e publique um projeto SecretAPI de exemplo como um aplicativo Web ASP.NET no computador local ou na intranet. Verifique se você pode acessar o aplicativo Web localmente.

  2. Entre no Centro de administração do Microsoft Entra como pelo menos um Administrador de Aplicativos.

  3. Navegue até Entra ID>aplicativos corporativos.

  4. Na parte superior dos aplicativos Empresariais – página Todos os aplicativos , selecione Novo aplicativo.

  5. Na página Procurar galeria do Microsoft Entra , localize a seção Aplicativos locais e selecione Adicionar um aplicativo local. A página Adicionar seu próprio aplicativo local é exibida.

  6. Se você não tiver um conector de rede privada instalado, será solicitado que você o instale. Selecione Baixar conector de rede privada para baixar e instalar o conector.

  7. Adicione informações na página Adicionar seu próprio aplicativo local .

    1. Ao lado de Nome, insira SecretAPI.

    2. Ao lado da URL Interna, insira a URL que você usa para acessar a API de dentro da intranet.

    3. Verifique se a pré-autenticação está definida como a ID do Microsoft Entra.

    4. Selecione Criar e aguarde a criação do aplicativo.

    Caixa de diálogo de criação de aplicativo empresarial para o aplicativo SecretAPI.

  8. Na página Aplicativos Empresariais – Todos os aplicativos , selecione o aplicativo SecretAPI .

  9. Na página SecretAPI – Visão geral , selecione Propriedades na navegação à esquerda.

  10. Você não deseja que as APIs estejam disponíveis para os usuários finais no painel MyApps, portanto, defina Visível para usuários como Não na parte inferior da página Propriedades e, em seguida, selecione Salvar.

    Captura de tela da página de propriedades no Centro de administração do Microsoft Entra mostrando o alternar 'Visível para os usuários'.

A API Web agora é publicada por meio do proxy de aplicativo do Microsoft Entra. Depois, adicione usuários que podem acessar o aplicativo.

  1. Na página SecretAPI – Visão geral , selecione Usuários e grupos na navegação à esquerda.

  2. Na página Usuários e grupos , selecione Adicionar usuário/grupo.

  3. Na página Adicionar atribuição , selecione Usuários e grupos.

  4. Na página Usuários e grupos , pesquise e selecione usuários que podem acessar o aplicativo, incluindo pelo menos você mesmo. Depois de selecionar todos os usuários, selecione Selecionar.

    Captura de tela da página usuários e grupos no Centro de administração do Microsoft Entra mostrando usuários atribuídos.

  5. Na página Adicionar Atribuição , selecione Atribuir.

Observação

As APIs que usam autenticação do Windows integrada podem exigir a configuração de Delegação Restrita de Kerberos.

Registrar o aplicativo nativo e conceder acesso à API

Aplicativos nativos são programas desenvolvidos para usar em uma plataforma ou dispositivo específico. Antes que seu aplicativo nativo possa se conectar e acessar uma API, você deve registrá-la no Microsoft Entra ID. As etapas a seguir mostram como registrar um aplicativo nativo e dar a ele acesso à API Web que você publicou por meio do proxy de aplicativo.

Para registrar o aplicativo nativo AppProxyNativeAppSample:

  1. Entre no Centro de administração do Microsoft Entra como pelo menos um Administrador de Aplicativos.

  2. Navegue para Entra ID>registros do aplicativo.

  3. Selecione Novo registro.

  4. Insira informações na página Registrar um aplicativo .

    1. Em Nome, insira AppProxyNativeAppSample.

    2. Em Tipos de Conta com Suporte, selecione Contas somente neste diretório organizacional (somente Contoso – locatário único).

    3. Em URL de Redirecionamento, solte e selecione Cliente público/nativo (móvel &área de trabalho) e, em seguida, insira https://login.microsoftonline.com/common/oauth2/nativeclient.

    4. Selecione Registrar e aguarde até que o aplicativo seja registrado com êxito.

      Formulário de registro do aplicativo mostrando a configuração do AppProxyNativeAppSample.

O aplicativo AppProxyNativeAppSample agora está registrado com o Microsoft Entra ID. Para dar ao aplicativo nativo acesso à API Web SecretAPI:

  1. Na página Registros de aplicativo, selecione o aplicativo AppProxyNativeAppSample .

  2. Na página AppProxyNativeAppSample , selecione permissões de API na navegação à esquerda.

  3. Na página de permissões de API , selecione Adicionar uma permissão.

  4. Na primeira página Solicitar permissões de API, selecione a guia APIs que minha organização usa e, em seguida, pesquise e selecione SecretAPI.

  5. Na próxima página Solicitar permissões de API , marque a caixa de seleção ao lado de user_impersonation e, em seguida, selecione Adicionar permissões.

  6. De volta à página de permissões de API , você pode selecionar Conceder consentimento do administrador para a Contoso para impedir que outros usuários tenham que consentir individualmente com o aplicativo.

Configurar o código do aplicativo nativo

A última etapa é configurar o aplicativo nativo. O código deve ser adicionado ao arquivo Form1.cs no aplicativo de exemplo NativeClient. O código usa a biblioteca MSAL para adquirir o token. O token solicita a chamada à API e a anexa ao cabeçalho na solicitação. O token é anexado como um certificado de portador. Para obter mais informações sobre a MSAL, consulte Adicionar MSAL ao seu projeto e adicionar a referência à MSAL.

  1. Em Form1.cs, adicione o namespace using Microsoft.Identity.Client; ao código.

  2. Edite o código do aplicativo nativo no contexto de autenticação da MSAL (Biblioteca de Autenticação da Microsoft) para incluir este exemplo de código personalizado.

Configure o aplicativo nativo para se conectar ao Microsoft Entra ID e chamar a API usando o proxy de aplicativo. Em seguida, atualize os valores de espaço reservado no arquivo App.config do NativeClient sample app com valores do Microsoft Entra ID.

  1. Cole o ID do Diretório (locatário) no campo <add key="ida:Tenant" value="" />. Você pode encontrar e copiar esse valor (um GUID) na página Visão geral de qualquer um dos seus aplicativos.

  2. Cole o ID do Aplicativo (cliente) AppProxyNativeAppSample no <add key="ida:ClientId" value="" /> campo. Você pode encontrar e copiar esse valor (um GUID) na página Visão geral do AppProxyNativeAppSample, na navegação à esquerda em Gerenciar.

  3. Cole o URI de Redirecionamento do AppProxyNativeAppSample no campo <add key="ida:RedirectUri" value="" />. Você pode encontrar e copiar esse valor (um URI) na página Autenticação do AppProxyNativeAppSample, na navegação à esquerda em Gerenciar. Esta etapa é opcional, pois a MSAL usa o método PublicClientApplicationBuilder.WithDefaultRedirectUri() para inserir o URI (Uniform Resource Identifier) de resposta recomendado.

  4. Cole o URI da ID do Aplicativo SecretAPI no <add key="todo:TodoListResourceId" value="" /> campo. O valor é o mesmo que todo:TodoListBaseAddress. O valor do URI está localizado na página Expor uma API do SecretAPI aplicativo. Examine a navegação à esquerda em Gerenciar.

  5. Cole a URL da Home Page do SecretAPI no <add key="todo:TodoListBaseAddress" value="" /> campo. Você pode encontrar e copiar esse valor (uma URL) na página Identidade Visual & Propriedades da SecretAPI, na navegação do lado esquerdo em Gerenciar.

Observação

Se a solução não compilar e relatar o erro invalid Resx file, no Gerenciador de Soluções, expanda Propriedades, clique com o botão direito do mouse em Resources.resx e selecione Exibir Código. Comente as linhas 121 a 123.

Depois de configurar os parâmetros, compile e execute o aplicativo nativo. Quando você seleciona o botão Entrar , o aplicativo permite que você entre e, em seguida, exibe uma tela de sucesso para confirmar que ele se conectou com êxito ao SecretAPI.

Mensagem de sucesso mostrando a API Secreta bem-sucedida com o botão OK.

Próximas etapas