# Estructura

### Diagrama de Contexto

Este diagrama muestra el **Sistema de Gestión de Usuarios y Autenticación** de Inlaze Gaming y cómo interactúa con actores externos y otros sistemas dentro del ecosistema de la plataforma. Representa la interacción de este microservicio con los usuarios finales (Casino Operators y Casino Users), así como con proveedores de servicios externos (Third Party Services) que son esenciales para funciones como la verificación de identidad (KYC). El Diagrama de Contexto ayuda a entender el alcance específico de este microservicio dentro del sistema general de Inlaze Gaming, destacando su papel central en la gestión de usuarios y la autenticación.

### Diagrama de Contenedores

El Diagrama de Contenedores ilustra los principales contenedores dentro del **Sistema de Gestión de Usuarios**, incluyendo:

* **API Application**: El contenedor que gestiona las solicitudes de autenticación y administración de usuarios. Es el punto central de interacción entre los usuarios, los datos y otros servicios.
* **Database**: Contenedor que almacena toda la información crítica relacionada con los usuarios, incluyendo perfiles, credenciales de autenticación y registros de actividad.
* **Third Party Services**: Servicios externos con los que la API interactúa para realizar funciones adicionales, como la verificación de identidad y otras integraciones esenciales.

Este diagrama muestra cómo estos contenedores se relacionan entre sí, proporcionando una visión clara de la organización interna del microservicio de gestión de usuarios y autenticación, así como su integración con el resto del sistema de Inlaze Gaming.

### Diagrama de Componentes

El Diagrama de Componentes detalla los elementos individuales dentro del contenedor **API Application**, mostrando sus interacciones y cómo colaboran para cumplir con los objetivos del microservicio. Los componentes incluyen:

* **Password Controller**: Gestiona las operaciones relacionadas con la administración de contraseñas, como el restablecimiento y la actualización.
* **Auth Controller**: Responsable de autenticar a los usuarios, verificando sus credenciales y gestionando las sesiones de usuario.
* **Two Factor Controller**: Implementa la autenticación de dos factores, proporcionando una capa adicional de seguridad.
* **Permissions Controller**: Administra los permisos y roles de los usuarios, asegurando que cada usuario acceda solo a las funcionalidades autorizadas.
* **Admin Controller**: Facilita la gestión administrativa, permitiendo a los administradores gestionar cuentas de usuarios.
* **User Controller**: Se encarga de las operaciones generales relacionadas con la gestión de usuarios, como su creación, modificación y eliminación.
* **KYC Controller**: Maneja la verificación de identidad de los usuarios y otras operaciones KYC, esenciales para cumplir con las normativas y prevenir fraudes.

Este diagrama ofrece una visión detallada de cómo los componentes internos colaboran para implementar la funcionalidad de gestión de usuarios y autenticación dentro de la plataforma Inlaze Gaming, proporcionando una comprensión profunda de la implementación técnica y las dependencias entre los diferentes componentes.

### Links:

* Diagrama C4: <https://lucid.app/lucidchart/7e2a7524-731c-431b-832e-5082dee7b2e0/edit?from_internal=true><br>

<figure><img src="/files/Pl9MdPeo0FUPlWJyahrF" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-affiliates.inlaze.com/gaming-docs/architecture/sistema-de-gestion-usuarios-y-autenticacion/estructura.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
