Compartir a través de


Utilice el proxy de aplicación Microsoft Entra para proporcionar acceso seguro a una interfaz de programación de aplicaciones (API) alojada en una nube privada o local

La lógica de negocios a menudo reside en una interfaz de programación de aplicaciones (API) privada. La API se ejecuta de forma local o en una nube privada. Las aplicaciones nativas de Android, iOS, Mac o Windows necesitan interactuar con los puntos de conexión de la API para usar datos o proporcionar la interacción del usuario. Proxy de aplicación de Microsoft Entra y la Biblioteca de autenticación de Microsoft (MSAL) permiten que las aplicaciones nativas accedan de forma segura a las API de la nube privada. El proxy de aplicación de Microsoft Entra es una solución más rápida y segura que abrir puertos de firewall y controlar la autenticación y autorización en el nivel de aplicación.

Sugerencia

El entorno local es un término heredado que data del momento en que los servidores físicos se encontraban en las instalaciones de la oficina corporativa. Ahora, muchas cargas de trabajo autohospedada se ejecutan en una máquina virtual de un centro de datos. El término local y la nube privada se usan indistintamente.

En este artículo, se le guiará a lo largo de la configuración de una solución de proxy de aplicación de Microsoft Entra para hospedar un servicio de API web al que puedan acceder las aplicaciones nativas.

Información general

En el siguiente diagrama se muestra una forma tradicional de publicar API en el entorno local. Este enfoque requiere abrir los puertos de entrada 80 y 443.

Acceso a la API tradicional

En el diagrama siguiente se muestra cómo puede usar el proxy de aplicación de Microsoft Entra para publicar API de forma segura sin tener que abrir ningún puerto de entrada:

Acceso a la API de proxy de aplicación de Microsoft Entra

El proxy de aplicación de Microsoft Entra es la base de la solución, funciona como punto de conexión público para el acceso a API y proporciona autenticación y autorización. Puede acceder a las API desde una amplia variedad de plataformas mediante las bibliotecas de tipo Biblioteca de autenticación de Microsoft (MSAL).

Dado que la autenticación y autorización del proxy de la aplicación Microsoft Entra se basan en Microsoft Entra ID, puede usar el acceso condicional de Microsoft Entra para garantizar que solo los dispositivos confiables puedan acceder a las API publicadas a través del proxy de la aplicación. Use la unión a Microsoft Entra o la unión a Microsoft Entra híbrida para escritorios e Intune Managed para dispositivos. También puede aprovechar características de Microsoft Entra ID P1 o P2, como la autenticación multifactor de Microsoft Entra y la seguridad respaldada por el aprendizaje automático de Protección de id. de Microsoft Entra.

Requisitos previos

Para seguir este tutorial, necesita:

Publicar la API a través del proxy de aplicación

Para publicar una API fuera de su intranet a través del proxy de la aplicación, siga el mismo patrón que para publicar aplicaciones web. Para más información, vea Tutorial: Agregar una aplicación local para acceso remoto a través del proxy de aplicación en Microsoft Entra ID.

Para publicar la API web SecretAPI mediante el proxy de aplicación:

  1. Compile y publique el proyecto de ejemplo SecretAPI como aplicación web ASP.NET en el equipo local o la intranet. Asegúrese de que puede acceder a la aplicación web localmente.

  2. Inicie sesión en el Centro de administración de Microsoft Entra al menos como Administrador de aplicaciones.

  3. Vaya a Aplicaciones de identidad>Aplicaciones>Empresariales.

  4. En la parte superior de la página Aplicaciones empresariales - Todas las aplicaciones, seleccioneNueva aplicación.

  5. En la página Examinar la galería de Microsoft Entra, busque la sección Aplicaciones locales y seleccione Agregar una aplicación local. Se abre la página Agregar aplicación local propia.

  6. Si no tiene instalado un conector de red privado, se le pedirá que lo instale. Seleccione Descargar conector de red privada para descargar e instalar el conector.

  7. Agregue información en la página Añada su propia aplicación local.

    1. Junto a Nombre, escriba SecretAPI.

    2. Junto a Dirección URL interna, escriba la dirección URL que usa para acceder a la API desde la intranet.

    3. Asegúrese de que la autenticación previa está establecida en Id. de Microsoft Entra.

    4. Seleccione Crear, y espere a que se cree la aplicación.

    Agregar una aplicación de API

  8. En la página Aplicaciones empresariales - Todas las aplicaciones, seleccione la aplicación SecretAPI.

  9. En la página SecretAPI - Introducción, seleccione Propiedades en el panel de navegación izquierdo.

  10. No es recomendable que las API estén disponibles para los usuarios finales en el panel Mis aplicaciones, así que establezca ¿Es visible para los usuarios? en No en la parte inferior de la página Propiedades y, a continuación, seleccione Guardar.

    No visible para los usuarios

La API web ahora se publica a través del proxy de aplicación de Microsoft Entra. A continuación, agregue usuarios que puedan acceder a la aplicación.

  1. En la página SecretAPI - Introducción, seleccione Usuarios y grupos en el panel de navegación izquierdo.

  2. En la página Usuarios y grupos, seleccione Agregar usuario.

  3. Después, en la página Agregar asignación, seleccione Usuarios y grupos.

  4. En la página Usuarios y grupos, busque y seleccione los usuarios que pueden acceder a la aplicación, incluido, al menos, usted mismo. Después de seleccionar todos los usuarios, elija Seleccionar.

    Seleccionar y asignar el usuario

  5. En la página Agregar asignación, seleccione Asignar.

Nota:

Las API que usan la autenticación integrada de Windows pueden requerir pasos adicionales.

Registrar la aplicación nativa y conceder acceso a la API

Las aplicaciones nativas son programas desarrollados para usarlos en un dispositivo o plataforma concreta. Para que la aplicación nativa pueda conectarse y acceder a una API, debe registrarla en el Id. de Microsoft Entra. En los pasos siguientes se muestra cómo registrar una aplicación nativa y concederle acceso a la API web que publicó a través del proxy de aplicación.

Para registrar la aplicación nativa AppProxyNativeAppSample:

  1. Inicie sesión en el centro de administración de Microsoft Entra como Administrador de aplicaciones como mínimo.

  2. Vaya a Identidad>Aplicaciones>Aplicaciones empresariales>Registros de aplicaciones.

  3. Seleccione Nuevo registro.

  4. Escriba información en la página Registrar una aplicación.

    1. En Nombre, escriba AppProxyNativeAppSample.

    2. Para los Tipos de cuenta admitidos, seleccione Solo cuentas de este directorio organizativo (Solo Contoso: inquilino único).

    3. En URL de redireccionamiento, implemente y seleccione Cliente público/nativo (móvil y escritorio y, a continuación, escriba *https://login.microsoftonline.com/common/oauth2/nativeclient*.

    4. Seleccione Registrar y espere a que la aplicación se registre correctamente.

      Nuevo registro de aplicaciones

La aplicación AppProxyNativeAppSample ahora está registrada en Microsoft Entra ID. Proporcione a la aplicación nativa acceso a la API web de SecretAPI:

  1. En la página Registros de aplicaciones, seleccione la aplicación AppProxyNativeAppSample.

  2. En la página AppProxyNativeAppSample, seleccione Permisos de API en el panel de navegación izquierdo.

  3. En la página Permisos de API, seleccione Agregar un permiso.

  4. En la primera página Solicitud de permisos de API, seleccione la pestaña API usadas en mi organización y, a continuación, busque y seleccione SecretAPI.

  5. En la siguiente página Solicitud de permisos de API, seleccione la casilla situada junto a user_impersonation y, a continuación, seleccione Agregar permisos.

    Seleccione una A P I.

  6. En la página Permisos de API, puede seleccionar Conceder consentimiento de administrador para Contoso para impedir que otros usuarios tengan que consentir individualmente la aplicación.

Configurar el código de aplicación nativo

El último paso es configurar la aplicación nativa. El código debe agregarse al archivo Form1.cs en la aplicación de ejemplo de NativeClient. El código utiliza la Biblioteca MSAL para adquirir el token. El token solicita la llamada API y la adjunta al encabezado de la solicitud. El token se adjunta como un certificado de portador. Para más información sobre MSAL, vea Adición de MSAL al proyecto y Adición de la referencia a MSAL.

  1. En Form1.cs, agregue el espacio de nombres using Microsoft.Identity.Client; al código.

  2. Edite el código de la aplicación nativo en el contexto de autenticación de la biblioteca de autenticación de Microsoft (MSAL) para incluir este ejemplo de código personalizado.

Configure la aplicación nativa para conectarse a Microsoft Entra ID y llamar a la API mediante el proxy de aplicación. A continuación, actualice los valores de marcador de posición en el archivo App.config del NativeClient sample app con valores de Microsoft Entra ID.

  1. Pegue el Id. de directorio (inquilino) en el campo <add key="ida:Tenant" value="" />. Puede buscar y copiar este valor (GUID) en la página Introducción de cualquiera de sus aplicaciones.

  2. Pegue el Id. de aplicación (cliente) en el campo <add key="ida:ClientId" value="" />. Puede buscar y copiar este valor (un valor GUID) de la página Información general de AppProxyNativeAppSample, en la opción del panel de navegación izquierdo Administrar.

  3. Pegue el URI de redireccionamiento en el campo <add key="ida:RedirectUri" value="" />. Puede buscar y copiar este valor (un valor URI) de la página Autenticación de AppProxyNativeAppSample, la opción del panel de navegación izquierdo Administrar. Este paso es opcional, ya que MSAL usa el método PublicClientApplicationBuilder.WithDefaultRedirectUri() para insertar el identificador uniforme de recursos (URI) de respuesta recomendado.

  4. Pegue el URI de id. de aplicación de SecretAPI en el campo <add key="todo:TodoListResourceId" value="" />. El valor es el mismo que todo:TodoListBaseAddress. El valor de URI se encuentra en la página Exponer una API de la aplicación SecretAPI. Busque en el panel de navegación izquierdo en Administrar.

  5. Pegue la URL de página principal de SecretAPI en el campo <add key="todo:TodoListBaseAddress" value="" />. Puede buscar y copiar este valor (una dirección URL) de la página Personalización de marca y propiedades de SecretAPI, en la opción del panel de navegación izquierdo Administrar.

Nota:

Si la solución no se compila e informa del error archivo Resx no válido, en Explorador de soluciones, expanda Propiedades, haga clic con el botón derecho en Resources.resx y, a continuación, seleccione Ver código. Líneas de comentario 121 a 123.

Después de configurar los parámetros, compile y ejecute la aplicación nativa. Al seleccionar el botón Iniciar sesión, la aplicación permite iniciar sesión y, a continuación, muestra una pantalla para confirmar que se conectó correctamente a SecretAPI.

Captura de pantalla que muestra un mensaje de secreto de A P I correcto y el botón Aceptar.

Pasos siguientes