Habilitación de las aplicaciones cliente nativas para interactuar con el proxy de aplicacionesHow to enable native client applications to interact with proxy applications

Puede usar Azure Active Directory (Azure AD) Application Proxy para publicar aplicaciones web, pero también se puede utilizar para publicar las aplicaciones cliente nativas que se configuran con la Biblioteca de autenticación de Microsoft (MSAL).You can use Azure Active Directory (Azure AD) Application Proxy to publish web apps, but it also can be used to publish native client applications that are configured with the Microsoft Authentication Library (MSAL). Las aplicaciones cliente nativas son distintas de las aplicaciones web porque se instalan en un dispositivo, mientras a las aplicaciones web se accede mediante un explorador.Native client applications differ from web apps because they're installed on a device, while web apps are accessed through a browser.

Para admitir aplicaciones cliente nativas, Application Proxy acepta tokens emitidos por Azure AD que se envían en el encabezado.To support native client applications, Application Proxy accepts Azure AD-issued tokens that are sent in the header. El servicio Application Proxy realiza la autenticación para los usuarios.The Application Proxy service does the authentication for the users. Esta solución no utiliza tokens de aplicación para la autenticación.This solution doesn't use application tokens for authentication.

Relación entre los usuarios finales, Azure AD y las aplicaciones publicadas

Utilice la biblioteca de autenticación de Microsoft, que se encarga de la autenticación y admite muchos de los entornos de cliente, para publicar aplicaciones nativas.To publish native applications, use the Microsoft Authentication Library, which takes care of authentication and supports many client environments. El proxy de aplicación encaja en la aplicación de escritorio que llama a una API web en nombre de un escenario de usuario con sesión iniciada.Application Proxy fits into the Desktop app that calls a web API on behalf of a signed-in user scenario.

Este artículo le guiará por los cuatro pasos para publicar una aplicación nativa con el proxy de aplicación y la biblioteca de Autenticación de Azure AD.This article walks you through the four steps to publish a native application with Application Proxy and the Azure AD Authentication Library.

Paso 1: Publique su aplicación de proxyStep 1: Publish your proxy application

Publique su aplicación de proxy al igual que haría con cualquier otra aplicación y asigne a los usuarios el acceso a la aplicación.Publish your proxy application as you would any other application and assign users to access your application. Para más información, consulte Publicación de aplicaciones mediante el proxy de aplicación de Azure AD.For more information, see Publish applications with Application Proxy.

Paso 2: Registre la aplicación nativaStep 2: Register your native application

Ahora debe registrar la aplicación en Azure AD:You now need to register your application in Azure AD, as follows:

  1. Inicie sesión en el portal de Azure Active Directory.Sign in to the Azure Active Directory portal. Aparecerá el panel del Centro de administración de Azure Active Directory.The Dashboard for the Azure Active Directory admin center appears.

  2. En la barra lateral, seleccione Azure Active Directory.In the sidebar, select Azure Active Directory. Se mostrará la página de introducción de Azure Active Directory.The Azure Active Directory overview page appears.

  3. En la barra lateral de introducción de Azure AD, seleccione Registros de aplicaciones.In the Azure AD overview sidebar, select App registrations. Aparece la lista de todos los registros de aplicaciones.The list of all app registrations appears.

  4. Seleccione Nuevo registro.Select New registration. Se muestra la página Registrar una aplicación.The Register an application page appears.

    Creación de un nuevo registro de aplicaciones en Azure Portal

  5. En el encabezado Nombre, especifique un nombre para mostrar a los usuarios en la aplicación.In the Name heading, specify a user-facing display name for your application.

  6. En el encabezado Tipos de cuentas admitidos, seleccione un nivel de acceso mediante estas instrucciones:Under the Supported account types heading, select an access level using these guidelines:

    • Para seleccionar como destino únicamente las cuentas que son internas de su organización, seleccione Solo las cuentas de este directorio organizativo.To target only accounts that are internal to your organization, select Accounts in this organizational directory only.
    • Seleccione Cuentas en cualquier directorio organizativo si desea tener como destino todos los clientes de negocios y del sector educativo.To target only business or educational customers, select Accounts in any organizational directory.
    • Para establecer como destino el mayor conjunto posible de clientes, seleccione Cuentas en cualquier directorio organizativo y cuentas Microsoft personales.To target the widest set of Microsoft identities, select Accounts in any organizational directory and personal Microsoft accounts.
  7. En URI de redireccionamiento, seleccione Cliente público (móvil y de escritorio) y, a continuación, escriba el URI de redireccionamiento https://login.microsoftonline.com/common/oauth2/nativeclient de su aplicación.Under Redirect URI, select Public client (mobile & desktop), and then type the redirect URI https://login.microsoftonline.com/common/oauth2/nativeclient for your application.

  8. Seleccione y lea las directivas de la plataforma de Microsoft y, a continuación, seleccione Registrar.Select and read the Microsoft Platform Policies, and then select Register. Se crea el registro de aplicación y se muestra la página de introducción.An overview page for the new application registration is created and displayed.

Para obtener más información sobre cómo crear un registro de aplicación, consulte Integración de aplicaciones con Azure Active Directory.For more detailed information about creating a new application registration, see Integrating applications with Azure Active Directory.

Paso 3: Conceda acceso a la aplicación de proxyStep 3: Grant access to your proxy application

Ahora que ha registrado su aplicación nativa, puede darle acceso a otras aplicaciones de su directorio, en este caso, para tener acceso a la aplicación de proxy.Now that you've registered your native application, you can give it access to other applications in your directory, in this case to access the proxy application. Para permitir que la aplicación nativa se exponga en el proxy de aplicación:To enable the native application to be exposed to the proxy application:

  1. En la barra lateral de la nueva página de registro de aplicaciones, seleccione Permisos de API.In the sidebar of the new application registration page, select API permissions. Se muestra la página Permisos de API del nuevo registro de aplicaciones.The API permissions page for the new application registration appears.
  2. Seleccione Agregar un permiso.Select Add a permission. Aparece la página Solicitud de permisos de API.The Request API permissions page appears.
  3. En el valor Seleccionar una API, elija API usadas en mi organización.Under the Select an API setting, select APIs my organization uses. Aparece una lista que contiene las aplicaciones del directorio que exponen las API.A list appears, containing the applications in your directory that expose APIs.
  4. Escriba en el cuadro de búsqueda o desplácese para buscar el proxy de aplicación que publicó en Paso 1: Publique su aplicación de proxy y, a continuación, seleccione el proxy de aplicación.Type in the search box or scroll to find the proxy application that you published in Step 1: Publish your proxy application, and then select the proxy application.
  5. En el encabezado ¿Qué tipo de permiso necesita la aplicación web? , seleccione el tipo de permiso.In the What type of permissions does your application require? heading, select the permission type. Si su aplicación nativa necesita acceder a la API de proxy de aplicación como el usuario que inició sesión, elija Permisos delegados.If your native application needs to access the proxy application API as the signed-in user, choose Delegated permissions.
  6. En el encabezado Seleccionar permisos, seleccione el permiso deseado y seleccione Agregar permisos.In the Select permissions heading, select the desired permission, and select Add permissions. La página Permisos de API de su aplicación nativa ahora muestra el proxy de aplicación y el permiso de API que ha agregado.The API permissions page for your native application now shows the proxy application and permission API that you added.

Paso 4: Agregar la biblioteca de autenticación de Microsoft al código (muestra de .NET C#)Step 4: Add the Microsoft Authentication Library to your code (.NET C# sample)

Edite el código de la aplicación nativa en el contexto de autenticación de la biblioteca de autenticación de Microsoft (MSAL) para incluir el siguiente texto:Edit the native application code in the authentication context of the Microsoft Authentication Library (MSAL) to include the following text:

// Acquire Access Token from AAD for Proxy Application
IPublicClientApplication clientApp = PublicClientApplicationBuilder
.Create(<App ID of the Native app>)
.WithDefaultRedirectUri() // will automatically use the default Uri for native app
.WithAuthority("https://login.microsoftonline.com/{<Tenant ID>}")
.Build();

AuthenticationResult authResult = null;
var accounts = await clientApp.GetAccountsAsync();
IAccount account = accounts.FirstOrDefault();

IEnumerable<string> scopes = new string[] {"<Scope>"};

try
 {
    authResult = await clientApp.AcquireTokenSilent(scopes, account).ExecuteAsync();
 }
    catch (MsalUiRequiredException ex)
 {
     authResult = await clientApp.AcquireTokenInteractive(scopes).ExecuteAsync();                
 }

if (authResult != null)
 {
  //Use the Access Token to access the Proxy Application

  HttpClient httpClient = new HttpClient();
  HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authResult.AccessToken);
  HttpResponseMessage response = await httpClient.GetAsync("<Proxy App Url>");
 }

La información necesaria del código de ejemplo puede encontrarse en el portal de Azure AD:The required info in the sample code can be found in the Azure AD portal, as follows:

Información necesariaInfo required Cómo encontrarla en el portal de Azure ADHow to find it in the Azure AD portal
<Tenant ID> Azure Active Directory > Propiedades > Id. de directorioAzure Active Directory > Properties > Directory ID
<App ID of the Native app> Registro de aplicaciones > la aplicación nativa > Información general > Identificador de la aplicaciónApplication registration > your native application > Overview > Application ID
<Scope> Registro de aplicaciones > la aplicación nativa > Permisos de API > Haga clic en la API de permisos (user_impersonation) > Un panel con el título user_impersonation aparece en el lado derecho.Application registration > your native application > API permissions > Click on the Permission API (user_impersonation) > A panel with the caption user_impersonation appears on the right hand side. > El ámbito es la dirección URL en el cuadro de edición.> The scope is the URL in the edit box.
<Proxy App Url> la dirección URL externa y la ruta de acceso a la APIthe External Url and path to the API

Cuando se edita el código de MSAL con estos parámetros, los usuarios podrán autenticarse en las aplicaciones cliente nativas incluso si están fuera de la red corporativa.After you edit the MSAL code with these parameters, your users can authenticate to native client applications even when they are outside of the corporate network.

Pasos siguientesNext steps

Para obtener más información sobre el flujo de la aplicación nativa, consulte Aplicaciones nativas en Azure Active Directory.For more information about the native application flow, see Native apps in Azure Active Directory.

Obtenga información sobre la configurar el inicio de sesión único en aplicaciones de Azure Active Directory.Learn about setting up Single sign-on to applications in Azure Active Directory.