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.
Obtenga información sobre cómo crear usuarios de inicio de sesión de aplicaciones nativos autenticados por AD FS 2019 y adquirir tokens mediante la biblioteca MSAL para llamar a las API web.
Antes de leer este artículo, debe estar familiarizado con los conceptos de AD FS y el flujo de concesión de código de autorización.
Overview
En este flujo, se agrega autenticación a la aplicación nativa (cliente público) para que pueda iniciar la sesión de los usuarios y llamar a una API web. Para llamar a una API web desde una aplicación nativa que inicia la sesión de los usuarios, puede usar el método de adquisición de tokens AcquireTokenInteractive de MSAL. Para habilitar esta interacción, MSAL aprovecha un explorador web.
Para comprender mejor cómo configurar una aplicación nativa en AD FS para adquirir el token de acceso de forma interactiva, vamos a usar un ejemplo disponible aquí y tutorial sobre los pasos de configuración de código y registro de aplicaciones.
Pre-requisites
- Herramientas de cliente de GitHub
- AD FS 2019 o posterior configurado y en ejecución
- Visual Studio 2013 o posterior.
Registro de la aplicación en AD FS
En esta sección, se muestra cómo registrar la aplicación nativa como un cliente público y la API web como usuario de confianza (RP) en AD FS.
En Administración de AD FS, haga clic con el botón derecho en Grupos de aplicaciones y seleccione Agregar grupo de aplicaciones.
En el Asistente para grupos de aplicaciones, en Nombre , escriba NativeAppToWebApi y, en Client-Server aplicaciones , seleccione la aplicación nativa que accede a una plantilla de API web . Haga clic en Next.
Copie el valor de Identificador de cliente . Se usará más adelante como valor de ClientId en el archivo App.config de la aplicación. Escriba lo siguiente en URI de redirección:https://ToDoListClient. Haga clic en Agregar. Haga clic en Next.
En la pantalla Configurar API web, escriba el identificador:https://localhost:44321/. Haga clic en Agregar. Haga clic en Next. Este valor se usará más adelante en los archivos App.config y Web.config de la aplicación.
En la pantalla Aplicar directiva de control de acceso, seleccione Permitir a todos y haga clic en Siguiente.
En la pantalla Configurar permisos de aplicación, asegúrese de que openid está seleccionado y haga clic en Siguiente.
En la pantalla Resumen, haga clic en Siguiente.
En la pantalla Completar, haga clic en Cerrar.
En Administración de AD FS, haga clic en Grupos de aplicaciones y seleccione NativeAppToWebApi grupo de aplicaciones. Haga clic con el botón derecho y seleccione Propiedades.
En la pantalla de propiedades de NativeAppToWebApi, seleccione NativeAppToWebApi: API Web en API Web y haga clic en Editar....
En la pantalla Propiedades de NativeAppToWebApi: API Web, seleccione la pestaña Reglas de transformación de emisión y haga clic en Agregar regla....
En el Asistente para agregar regla de notificación de transformación, seleccione Transformar una notificación entrante en el menú desplegable Plantilla de regla de notificación y haga clic en Siguiente.
Escriba NameID en El nombre de la regla de notificación: campo. Seleccione Nombre para Tipo de notificación entrante:, Id. de nombre para tipo de notificación saliente: y Nombre común para formato de id. de nombre saliente:. Haga clic en Finalizar.
Haga clic en Aceptar en la pantalla Propiedades de NativeAppToWebApi: API Web y, a continuación, en Propiedades de NativeAppToWebApi.
Configuración de código
En esta sección, se muestra cómo configurar una aplicación nativa para iniciar la sesión del usuario y recuperar un token para llamar a la API Web.
Descargar el ejemplo desde aquí
Abra el ejemplo mediante Visual Studio.
Abra el archivo App.config. Modifique lo siguiente:
ida:Authority: escriba h
ttps://[your AD FS hostname]/adfs.ida:ClientId: escriba el valor identificador de cliente de #3 en registro de aplicaciones en la sección anterior de AD FS.
ida:RedirectUri: escriba el valor URI de redirección de #3 en registro de aplicaciones en la sección anterior de AD FS.
todo:TodoListResourceId: escriba el valor identificador de #4 en registro de aplicaciones en la sección anterior de AD FS.
ida: todo:TodoListBaseAddress: escriba el valor identificador de #4 en registro de aplicaciones en la sección anterior de AD FS.
Abra el archivo Web.config. Modifique lo siguiente:
ida:Audience: escriba el valor de Identificador de #4 en registro de aplicaciones en la sección anterior de AD FS.
ida:AdfsMetadataEndpoint: escriba
https://[your AD FS hostname]/federationmetadata/2007-06/federationmetadata.xml.
Pruebe el ejemplo
En esta sección, se muestra cómo probar el ejemplo configurado anteriormente.
Una vez que haya realizado los cambios en el código, recompile la solución.
En Visual Studio, haga clic con el botón derecho en la solución y seleccione Establecer proyectos de inicio....
En las páginas Propiedades, asegúrese de que Acción esté establecida en Iniciar para cada uno de los proyectos.
En la parte superior de Visual Studio, haga clic en la flecha verde.
En la pantalla principal de la aplicación nativa, haga clic en Iniciar sesión.
Si no ve la pantalla de la aplicación nativa, busque y quite los archivos *msalcache.bin de la carpeta donde se guarda el repositorio del proyecto en el sistema.
Se le redirigirá a la página de inicio de sesión de AD FS. Continúe e inicie sesión.
Una vez que haya iniciado sesión, escriba el texto Build Native App to Web Api en el campo Create a To Do item. Haga clic en Agregar elemento. Esto llamará al servicio de lista de tareas pendientes (API web) y agregará el elemento en la memoria caché.
Pasos siguientes
Flujos de AD FS OpenID Connect/OAuth y escenarios de aplicación