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.
Learn how to build a web app signing-in users authenticated by AD FS 2019 and acquiring tokens using MSAL library to call web APIs.
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 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.
To register a Web App in AD FS and to configure it to acquire tokens to call a Web API, let's use a sample available here and walk through the app registration and code configuration steps.
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 web como un cliente confidencial y una API web como usuario de confianza en AD FS.
In AD FS Management, right-click on Application Groups and select Add Application Group.
On the Application Group Wizard, for the Name enter WebAppToWebApi and under Client-Server applications select the Server application accessing a Web API template. Click Next.
Copy the Client Identifier value. The value is used later as the value for ida:ClientId in the applications Web.config file. Enter the following for Redirect URI: - https://localhost:44326. Click Add. Click Next.
En la pantalla Configure las credenciales de la aplicación, active la casilla Generar un secreto compartido y copie el secreto. This secret is used later as the value for ida:ClientSecret in the applications Web.config file. Click Next.
On the Configure Web API screen, enter the Identifier:https://webapi. Click Add. Click Next. This value is used later for ida:GraphResourceId in the applications Web.config file.
On the Apply Access Control Policy screen, select Permit everyone and click Next.
On the Configure Application Permissions screen, make sure openid and user_impersonation are selected and click Next.
On the Summary screen, click Next.
On the Complete screen, click Close.
Code Configuration
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.
Download the sample from here
Abra el ejemplo mediante Visual Studio.
Abra el archivo web.config. Modifique lo siguiente:
ida:ClientId
- enter the Client Identifier value from #3 in App Registration in AD FS section.ida:ClientSecret
- enter the Secret value from #4 in App Registration in AD FS section.ida:RedirectUri
- enter the Redirect URI value from #3 in App Registration in AD FS section.ida:Authority
: introduzca https://[su nombre de host de AD FS]/adfs. Por ejemplo,https://adfs.contoso.com/adfs
ida:Resource
- enter the Identifier value from #5 in App Registration in AD FS section.
Pruebe el ejemplo
En esta sección se muestra cómo probar el ejemplo configurado.
Una vez que haya realizado los cambios en el código, recompile la solución.
En la parte superior de Visual Studio, asegúrese de que Internet Explorer está seleccionado y haga clic en la flecha verde.
En la página principal, haga clic en Iniciar sesión.
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, haga clic en Token de acceso.
Al hacer clic en Token de acceso, se obtiene la información del token de acceso llamando a la API web.
Next Steps
Flujos de AD FS OpenID Connect/OAuth y escenarios de aplicación