Descripción general de IdentityServer4
Como servidor de autenticación de código abierto para .NET, IdentityServer4 admite los estándares OpenID Connect (OIDC) y OAuth 2.0. Proporciona un método estandarizado para autenticar solicitudes de sus aplicaciones, ya sean puntos finales basados en web, nativos, móviles o API. También actúa como una estructura de base de datos central que almacena las credenciales del usuario.
¿Por qué utilizar IdentityServer4?
La autenticación y autorización entre aplicaciones pueden requerir un manejo adicional cuando se comunican entre sí. La autenticación es necesaria cuando una aplicación necesita conocer la identidad del usuario actual y el protocolo utilizado es OpenID Connect. De manera similar, la autorización consiste en otorgar permiso a ese usuario específico para solicitar acceso a un recurso en particular desde un servicio de token de seguridad y luego usarlo para comunicarse con la API. El protocolo para eso es OAuth 2.0.
Security Token Service (STS), un repositorio central, es responsable de emitir tokens y validar reclamos. Por lo tanto, toda la lógica de autenticación y autorización de una aplicación particular se descarga en STS. IdentityServer4 es un STS de uso frecuente para aplicaciones .NET que implementa los protocolos OpenID Connect y OAuth 2.0 para resolver los problemas de seguridad típicos de las aplicaciones móviles, nativas y web actuales.
El siguiente diagrama explica la idea general de un servicio de token de seguridad:
Características de IdentityServer4
Proteja sus recursos
Cada uno de los recursos de un usuario en particular está autorizado para ser utilizado solo por ese usuario.Autenticar a los Usuarios
Todos los usuarios se autentican mediante una tienda de cuentas local o un proveedor externo.Acceder y Validar Tokens a Usuarios
Se emiten tokens a los usuarios para identificarlos, de modo que las API puedan usar esa información para autorizar el acceso a esos datos.
Usar IdentityServer4 con NCache
IdentityServer4 es un middleware que agrega los puntos finales OpenID Connect y OAuth 2.0 que cumplen con las especificaciones a una ASP..NET Core solicitud. Su API permite a los usuarios ampliar IdentityServer4 para utilizar cualquier almacenamiento externo personalizado, ya sea una base de datos relacional, una NoSQL solución, cualquier sistema de archivos o incluso un almacén de datos en memoria como NCache. Para este propósito, IdentityServer4 ha implementado la compatibilidad con EntityFramework Core (EF Core), lo que facilita el uso de cualquier base de datos como medio de almacenamiento para la configuración y los datos operativos de IdentityServer4.
Almacén de configuración: es un almacén donde existen datos estáticos, que no cambian con frecuencia como tales.
Operación Tienda: es un almacén donde existen los datos operativos, en los que se realizan las operaciones y es más probable que se modifiquen con frecuencia.
NCache, al ser un almacén de clave-valor linealmente escalable y distribuido en memoria, es altamente compatible para usarse con IdentityServer4 por las siguientes razones explicadas:
NCache como tienda IdentityServer4
NCache se puede utilizar como una capa de almacenamiento en caché sobre la configuración persistente y los almacenes operativos de IdentityServer4 para acelerar las operaciones a través del almacenamiento en caché en memoria y al mismo tiempo reducir los accesos frecuentes a la base de datos.
NCache como caché IdentityServer4
NCache se puede utilizar como almacén de configuración y concesión persistente para aumentar aún más el rendimiento eliminando el cuello de botella y el obstáculo de obtener datos del disco. El contenido de la caché en memoria puede persistir periódicamente en el disco. Por lo tanto, disminuyendo drásticamente el tiempo promedio necesario para obtener los datos.
De manera similar, los roles de caché y almacenamiento de NCache con IdentityServer4 también puede mezclar y combinar las implementaciones del IIdentityServerBuilder
NCache método de extensión durante el ASP.NET Core inyección de dependencia. El quid de todo esto es que los datos se almacenan en la memoria, lo que proporciona un mejor rendimiento y resultados más rápidos.
Vea también
NCache como tienda IdentityServer4 en memoria
NCache como implementación de caché en memoria de IdentityServer4