es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe alguna forma de que una aplicación hospedada en Blazor WebAssembly utilice un servidor de identidad funcional existente, como Identity Server 4, únicamente con el fin de autenticación?

Aquí es cómo va:

Tengo una aplicación Blazor WebAssembly completamente funcional con asp.net core alojado, y un servidor de identidad funcional en puertos diferentes.

Quiero usar el servidor de identidad para la autenticación y el inicio de sesión, etc., pero tengo problemas para hacer que la aplicación Blazor dependa del servidor de identidad para la autenticación…

¿Cómo le indico que obtenga/verifique los tokens del servidor antes de ejecutar las acciones en los controladores?

Creo que lo que hace que mi caso sea un poco diferente es que uso el proyecto del servidor en lugar de la API web en lugar de usar dos proyectos separados, uno para el cliente y otro para la API web…

Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para configurar tu aplicación Blazor WebAssembly para que confíe en Identity Server para la autenticación, necesitarás realizar algunos cambios en tus archivos de código. Aquí están los pasos a seguir:

    1. Agrega los paquetes NuGet necesarios a tu proyecto. Deberás agregar el paquete Microsoft.AspNetCore.Components.WebAssembly.Authentication, que provee la funcionalidad necesaria para la autenticación en una aplicación Blazor WebAssembly. También necesitarás agregar el paquete IdentityModel, que brinda soporte para autenticar contra un Identity Server.
    2. Configura tu aplicación para usar el middleware de autenticación provisto por el paquete Microsoft.AspNetCore.Components.WebAssembly.Authentication. Esto asegurará que tu aplicación envíe cualquier solicitud segura a la API con un token de acceso válido.

    3. En la clase Startup, agrega código para configurar la autenticación con Identity Server utilizando OpenID Connect (OIDC). Esto implica definir la configuración del cliente, solicitar ámbitos y asegurarse de que el token de acceso esté disponible en las llamadas a la API.

    4. Asegúrate de que las acciones del controlador que deseas proteger estén decoradas con el atributo [Authorize] para evitar el acceso no autorizado.

    5. La aplicación debería funcionar correctamente si todo está implementado correctamente.

    Nota: Si estás utilizando el proyecto Server en lugar de la API web, deberás asegurarte de la validación del token en la clase Startup, la cual agregará el middleware de validación de token a la canalización según se detalla en la documentación oficial de IdentityServer4.

Comments are closed.