Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Información general
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. El 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 término "local" es un término heredado que data del momento en que los servidores físicos se encontraban en el entorno local de la oficina corporativa. En la actualidad, muchas cargas de trabajo autohospedada se ejecutan en una máquina virtual en un centro de datos. Los términos locales 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.
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.
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:
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 gama de plataformas mediante las bibliotecas de la Biblioteca de autenticación de Microsoft (MSAL ).
Dado que la autenticación y autorización del proxy de aplicación de Microsoft Entra se basan en el identificador de Microsoft Entra, puede usar el acceso condicional de Microsoft Entra para asegurarse de que solo los dispositivos de confianza pueden acceder a las API publicadas a través del proxy de 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 las 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 Microsoft Entra ID Protection.
Requisitos previos
Para seguir este tutorial, necesita:
- Acceso de administrador a un directorio de Azure con una cuenta que pueda crear y registrar aplicaciones
- La API web de ejemplo y las aplicaciones cliente nativas de la Biblioteca de autenticación de Microsoft (MSAL)
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 obtener más información, consulte Tutorial: Adición de una aplicación local para el 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:
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.
Inicie sesión en el Centro de administración de Microsoft Entra como al menos un administrador de aplicaciones.
Vaya a Entra ID>Aplicaciones empresariales.
En la parte superior de la página Aplicaciones empresariales- Todas las aplicaciones , seleccione Nueva aplicación.
En la página Examinar galería de Microsoft Entra , busque la sección Aplicaciones locales y seleccione Agregar una aplicación local. Aparecerá la página Agregar su propia aplicación local .
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.
Agregue información en la página Agregar su propia aplicación local .
Junto a Nombre, escriba SecretAPI.
Junto a Dirección URL interna, escriba la dirección URL que usa para acceder a la API desde la intranet.
Asegúrese de que la autenticación previa está establecida en Id. de Entra de Microsoft.
Seleccione Crear y espere a que se cree la aplicación.
En la página Aplicaciones empresariales : todas las aplicaciones , seleccione la aplicación SecretAPI .
En la página SecretAPI - Información general , seleccione Propiedades en el panel de navegación izquierdo.
No quiere que las API estén disponibles para los usuarios finales en el panel MyApps , por lo que establezca Visible para los usuarios en No en la parte inferior de la página Propiedades y, a continuación, seleccione Guardar.
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.
En la página SecretAPI - Información general , seleccione Usuarios y grupos en el panel de navegación izquierdo.
En la página Usuarios y grupos , seleccione Agregar usuario o grupo.
En la página Agregar asignación , seleccione Usuarios y grupos.
En la página Usuarios y grupos , busque y seleccione usuarios que puedan acceder a la aplicación, incluido al menos usted mismo. Después de seleccionar todos los usuarios, seleccione Seleccionar.
En la página Agregar asignación , seleccione Asignar.
Nota
Las API que usan la autenticación integrada de Windows pueden requerir la configuración de delegación restringida de Kerberos.
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:
Inicie sesión en el Centro de administración de Microsoft Entra como al menos un administrador de aplicaciones.
Vaya a Entra ID>Registros de aplicaciones.
Seleccione Nuevo registro.
Escriba información en la página Registrar una aplicación .
En Nombre, escriba AppProxyNativeAppSample.
En Tipos de cuenta admitidos, seleccione Solo cuentas en este directorio organizativo (Solo Contoso - Inquilino único).
En Url de redirección, desplegable y seleccione Cliente público o nativo (móvil y escritorio) y, a continuación, escriba
https://login.microsoftonline.com/common/oauth2/nativeclient.Seleccione Registrar y espere a que la aplicación se registre correctamente.
La aplicación AppProxyNativeAppSample ahora está registrada en Microsoft Entra ID. Proporcione a la aplicación nativa acceso a la API web de SecretAPI:
En la página Registros de aplicaciones, seleccione la aplicación AppProxyNativeAppSample .
En la página AppProxyNativeAppSample , seleccione Permisos de API en el panel de navegación izquierdo.
En la página Permisos de API , seleccione Agregar un permiso.
En la primera página Solicitar permisos de API , seleccione la pestaña API que usa mi organización y, a continuación, busque y seleccione SecretAPI.
En la siguiente página Solicitar permisos de API , active la casilla situada junto a user_impersonation y, a continuación, seleccione Agregar permisos.
De nuevo en la página permisos de API , puede seleccionar Conceder consentimiento del administrador para Contoso para evitar que otros usuarios tengan que dar su consentimiento individual a 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 usa 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 obtener más información sobre MSAL, vea Agregar MSAL al proyecto y Agregar la referencia a MSAL.
En Form1.cs, agregue el espacio de nombres
using Microsoft.Identity.Client;al código.Edite el código de 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 del marcador de posición en el archivo App.config del NativeClient sample app con valores de Microsoft Entra ID.
Pegue el ID de Directorio (inquilino) en el campo
<add key="ida:Tenant" value="" />. Puede encontrar y copiar este valor (un GUID) en la página Información general de cualquiera de las aplicaciones.Pegue el Id. de aplicación (cliente) AppProxyNativeAppSample en el campo
<add key="ida:ClientId" value="" />. Puede encontrar y copiar este valor (un GUID) desde la página Información general de AppProxyNativeAppSample, en el panel de navegación izquierdo de Administrar.Pegue el URI de redirección de AppProxyNativeAppSample en el
<add key="ida:RedirectUri" value="" />campo . Puede encontrar y copiar este valor (un URI) desde la página Autenticación de AppProxyNativeAppSample, en el panel de navegación izquierdo de Administrar. Este paso es opcional, ya que MSAL usa el métodoPublicClientApplicationBuilder.WithDefaultRedirectUri()para insertar el identificador uniforme de recursos (URI) de respuesta recomendado.Pegue el URI de id. de aplicación de SecretAPI en el campo
<add key="todo:TodoListResourceId" value="" />. El valor es el mismo quetodo:TodoListBaseAddress. El valor de URI se encuentra en la página Exponer una API de laSecretAPIaplicación. Busque en la sección de navegación izquierda bajo Administrar.Pegue la dirección URL de la página principal de SecretAPI en el
<add key="todo:TodoListBaseAddress" value="" />campo . Puede encontrar y copiar este valor (una dirección URL) desde la página SecretAPI Branding &properties , en el panel de navegación izquierdo en Administrar.
Nota
Si la solución no se compila y aparece el error invalid Resx file, en el Explorador de soluciones, haga clic en Propiedades, haga clic con el botón derecho en Resources.resx y luego 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 le permite iniciar sesión y, a continuación, muestra una pantalla correcta para confirmar que se ha conectado correctamente a SecretAPI.