Compartir a través de


Escenario: Aplicación web (aplicación de servidor) que llama a una API web

Obtenga información sobre cómo crear una aplicación web que inicia la sesión de los usuarios autenticados mediante AD FS 2019 y que adquiere tokens mediante la biblioteca MSAL para llamar a 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.

Información general

Información general de una aplicación web que llama a una API web

En este flujo se agrega autenticación a la aplicación web (aplicación de servidor) para que pueda iniciar la sesión de los usuarios y llamar a una API web. En la aplicación web, para llamar a la API web, use el método de adquisición de tokens AcquireTokenByAuthorizationCode de MSAL. El flujo de código de autorización se utiliza para almacenar el token adquirido en la memoria caché de tokens. A continuación, el controlador adquiere los tokens de forma silenciosa de la memoria caché cuando es necesario. MSAL actualizará el token si es necesario.

Las aplicaciones web que llaman a API web:

  • Son aplicaciones cliente confidenciales.
  • registró un secreto (secreto compartido de aplicación, certificado o cuenta de AD) con AD FS. Este secreto se pasa durante la llamada a AD FS para obtener un token.

Para registrar una aplicación web en AD FS y configurarla para adquirir tokens para llamar a una API web, usaremos un ejemplo disponible aquí y seguiremos los pasos de registro de la aplicación y configuración del código.

Requisitos previos

  • 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 web como un cliente confidencial y una API web como usuario de confianza en AD FS.

  1. En Administración de AD FS, haga clic con el botón derecho en Grupos de aplicaciones y seleccione Agregar grupo de aplicaciones.

  2. En el Asistente para agregar grupos de aplicaciones, en Nombre, escriba WebAppToWebApi y, en Aplicaciones cliente-servidor, seleccione la plantilla Aplicación de servidor accediendo a una API web. Haga clic en Next.

    Captura de pantalla de la página principal del Asistente para agregar grupos de aplicaciones, en la que se muestra resaltada la plantilla Aplicación de servidor accediendo a una API web.

  3. Copie el valor de Identificador de cliente. El valor se usa más adelante como valor de ida:ClientId en el archivo Web.config de las aplicaciones. Escriba lo siguiente para URI de redirección: https://localhost:44326. Haga clic en Agregar. Haga clic en Next.

    Captura de pantalla de la página Aplicación de servidor del Asistente para agregar grupos de aplicaciones, en la que se muestra el identificador de cliente correcto y el URI de redirección.

  4. En la pantalla Configure las credenciales de la aplicación, active la casilla Generar un secreto compartido y copie el secreto. Este secreto se usa más adelante como valor de ida:ClientSecret en el archivo Web.config de las aplicaciones. Haga clic en Next.

    Captura de pantalla de la página Configure las credenciales de la aplicación del Asistente para agregar grupos de aplicaciones, en la que se muestra la opción Generar un secreto compartido seleccionada y el secreto compartido generado rellenado.

  5. En la pantalla Configurar la API Web, escriba el Identificador:https://webapi. Haga clic en Agregar. Haga clic en Next. Este valor se usa más adelante para ida:GraphResourceId en el archivo Web.config de las aplicaciones.

    Captura de pantalla de la página Configurar API web del Asistente para agregar grupos de aplicaciones que muestra el identificador correcto.

  6. En la pantalla Aplicar la directiva de Control de acceso, seleccione Permitir a todos y haga clic en Siguiente.

    Captura de pantalla de la página Elegir directiva de control de acceso del Asistente para agregar grupos de aplicaciones, en la que se muestra la opción Permitir a todos resaltada.

  7. En la pantalla Configurar los permisos de la aplicación, asegúrese de que openid y user_impersonation están seleccionados y haga clic en Siguiente.

    Captura de pantalla de la página Configurar los permisos de aplicación del Asistente para agregar grupos de aplicaciones, en la que se muestran las opciones openid y user_impersonation seleccionadas.

  8. En la pantalla Resumen, haga clic en Siguiente.

  9. En la pantalla Completar, haga clic en Cerrar.

Configuración del código

En esta sección se muestra cómo configurar una aplicación web de ASP.NET para iniciar la sesión del usuario y recuperar el token para llamar a la API web.

  1. Descargue el ejemplo desde aquí.

  2. Abra el ejemplo mediante Visual Studio.

  3. Abra el archivo web.config. Modifique lo siguiente:

    • ida:ClientId: introduzca el valor de Identificador de cliente del paso 3 de Registro de aplicaciones de la sección de AD FS.

    • ida:ClientSecret: introduzca el valor de Secreto del paso 4 de Registro de aplicaciones de la sección de AD FS.

    • ida:RedirectUri: introduzca el valor de URI de redireccionamiento del paso 3 de Registro de aplicaciones de la sección de AD FS.

    • ida:Authority: introduzca https://[su nombre de host de AD FS]/adfs. Por ejemplo, https://adfs.contoso.com/adfs

    • ida:Resource: introduzca el valor de Identificador del paso 5 de Registro de aplicaciones de la sección de AD FS.

      Captura de pantalla del archivo Web.config, en el que se muestran los valores modificados.

Prueba del ejemplo

En esta sección se muestra cómo probar el ejemplo configurado.

  1. Una vez que haya realizado los cambios en el código, recompile la solución.

  2. En la parte superior de Visual Studio, asegúrese de que Internet Explorer está seleccionado y haga clic en la flecha verde.

    Captura de pantalla de la interfaz de usuario de Visual Studio con la opción IIS Express (Internet Explorer) resaltada.

  3. En la página principal, haga clic en Iniciar sesión.

    Captura de pantalla de la página principal con la opción Iniciar sesión resaltada.

  4. Se le redirigirá a la página de inicio de sesión de AD FS. Continúe e inicie sesión.

    Captura de pantalla de la página Iniciar sesión.

  5. Una vez que haya iniciado sesión, haga clic en Token de acceso.

    Captura de pantalla de la página principal con la opción Token de acceso sesión resaltada.

  6. Al hacer clic en Token de acceso, se obtiene la información del token de acceso llamando a la API web.

    Captura de pantalla de la página Token de acceso, en la que se muestra la información del token de acceso.

Pasos siguientes

Flujos de AD FS OpenID Connect/OAuth y escenarios de aplicación