Docker
Implemente FoxIDs en Docker Desktop en una máquina de dev o test.
Esto describe cómo realizar un despliegue predeterminado y iniciar sesión por primera vez.
Una instalación de FoxIDs es autocontenida, tiene pocas dependencias externas y puede lograr una disponibilidad muy alta con poco esfuerzo.
FoxIDs se actualiza actualizando las dos imágenes Docker www.foxids.com/foxids:x.x.x y www.foxids.com/foxidscontrol:x.x.x
a una nueva versión. Las nuevas versiones de FoxIDs son backward compatible. Revise las notas de versión antes de actualizar. Allí también puede encontrar la versión actual de la imagen Docker.
Se requiere una licencia válida para acceder a las versiones de FoxIDs. Desde allí, puede generar un secret para autenticarse en el registro de imágenes Docker en www.foxids.com, que usa autenticación Basic.
Requisitos previos:
- Tiene Docker Desktop instalado.
- Tiene conocimientos básicos sobre Docker.
Esta es una lista de comandos útiles al final de esta descripción.
Este despliegue incluye:
- Dos sitios web, uno para FoxIDs y otro para FoxIDs Control (the admin Client y API) en dos imágenes Docker
www.foxids.com/foxids:x.x.xywww.foxids.com/foxidscontrol:x.x.x. - Los dos sitios web están expuestos en dos puertos diferentes.
- MongoDB es una base de datos NoSQL y contiene todos los datos, incluidos tenants, entornos y usuarios. Desplegado con la imagen oficial de Docker MongoDB.
- La caché Redis mantiene secuencias (p. ej., login y logout), caché de datos para mejorar el rendimiento y maneja contadores para asegurar la autenticación contra diversas ataques. Desplegado con la imagen oficial de Docker Redis.
- Los logs se escriben en
stdoutdonde Docker puede recogerlos.
Opcionalmente use PostgreSQL en lugar de MongoDB y opcionalmente prescinda de Redis y guarde los datos de caché en la base de datos (MongoDB o PostgreSQL). Sin caché Redis debe seleccionar
Nonecomo data cache.
Despliegue
El despliegue se realiza en el orden descrito.
Prepararse
Descargue los archivos de configuración Docker yaml aquí y colóquelos en una carpeta en su equipo, por ejemplo C:\FoxIDs\Docker.
Abra una consola y navegue a la carpeta Docker.
Volumen
El archivo docker-compose-image.yaml define un volumen de MongoDB llamado foxids-data.
De forma predeterminada, Docker Compose crea y administra el volumen por usted.
Si desea guardar los datos de MongoDB en el sistema de archivos del host Windows, cree primero la carpeta del host, por ejemplo C:\data\foxids-data, y luego cree un volumen Docker externo:
docker volume create --driver local --opt type=none --opt device=C:\data\foxids-data --opt o=bind foxids-data
Después quite el comentario de external: true bajo volumes: foxids-data: en docker-compose-image.yaml para que Docker Compose use el volumen externo.
Desplegar contenedores
Los dos sitios web de FoxIDs se configuran con las imágenes Docker. Y opcionalmente se configuran para usar solo HTTP o HTTP/HTTPS con un certificado de desarrollo. Las imágenes oficiales de MongoDB y Redis se descargan desde Docker Hub.
Pull secret y setup de Docker Configure el nombre de usuario con su ID de cliente y la contraseña con su pull secret para el registro Docker de FoxIDs, y luego autentique Docker.
docker login www.foxids.com --username <customer-id> --password <pull-secret>
Actualice C:\src\GitHub\FoxIDs.Assets\Docker\docker-compose-image.yaml:
services:
foxids:
image: www.foxids.com/foxids:x.x.x
foxids-control:
image: www.foxids.com/foxidscontrol:x.x.x
Seleccione la versión en versiones de FoxIDs, y después descargue las imágenes:
docker compose -f docker-compose-image.yaml pull
Proveedor de correo Puede configurar un proveedor de correo global o más tarde configurar proveedores de correo por entorno. FoxIDs admite enviar correos con SendGrid y SMTP.
El proveedor de correo global se configura en el archivo docker-compose-image.yaml en el servicio foxids en la sección environment:.
Este ejemplo muestra cómo agregar Outlook / Microsoft 365 con SMTP:
- Settings:Smtp:FromEmail=my@email-address.org
- Settings:Smtp:FromName=e.g., my company name
- Settings:Smtp:Host=smtp.office365.com
- Settings:Smtp:Port=587
- Settings:Smtp:Username=my@email-address.com
- Settings:Smtp:Password=xxxxxxx
Desplegar Cree el despliegue con imágenes Docker y HTTP:
- Basado en imágenes Docker y con HTTP
docker compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml up -d
- Basado en imágenes Docker y con HTTP/HTTPS - requiere un certificado de desarrollo exportado.
El archivo compose HTTPS asigna %APPDATA%\ASP.NET\Https en el host Windows a /home/app/.aspnet/https en los contenedores y configura Kestrel para cargar dev_cert.pfx.
Cree la carpeta y exporte el certificado de desarrollo de .NET antes de iniciar el despliegue:
if not exist "%APPDATA%\ASP.NET\Https" mkdir "%APPDATA%\ASP.NET\Https"
dotnet dev-certs https --trust
dotnet dev-certs https --export-path "%APPDATA%\ASP.NET\Https\dev_cert.pfx" -p "foxids-dev-cert"
La contraseña debe coincidir con ASPNETCORE_Kestrel__Certificates__Default__Password en docker-compose.development-https.yaml.
docker compose -f docker-compose-image.yaml -f docker-compose.development-https.yaml up -d
Primer inicio de sesión
Abra su sitio FoxIDs Control (http://localhost:8801 o https://localhost:8401) en un navegador.
Debe redirigir al sitio FoxIDs donde inicia sesión con el usuario admin predeterminado admin@foxids.com y la contraseña FirstAccess! (debe cambiar la contraseña en el primer inicio de sesión).
Luego se le redirige de vuelta al sitio FoxIDs Control en el tenant master. Puede agregar más administradores en el tenant master.
Luego haga clic en el tenant main e inicie sesión nuevamente con el mismo usuario admin predeterminado admin@foxids.com y la contraseña FirstAccess! (de nuevo, debe cambiar la contraseña).
El usuario admin predeterminado y la contraseña son los mismos para el tenant
mastery el tenantmain, pero son dos usuarios diferentes.
Ahora ha iniciado sesión en el tenant main y puede comenzar a configurar sus aplicaciones y métodos de autenticación.
Comandos útiles
Esta es una lista de comandos que pueden ser útiles durante el despliegue para ver detalles y realizar cambios.
Destruir el despliegue
docker compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml down
# o
docker compose -f docker-compose-image.yaml -f docker-compose.development-https.yaml down
Detener contenedor
docker stop xxx
Eliminar contenedor
docker rm xxx
Eliminar imagen
docker rmi xxx
Listar volúmenes
docker volume ls
Eliminar volumen
docker volume rm xxx
Eliminar todos los volúmenes no utilizados
docker volume prune
Mostrar logs en contenedor
docker logs xxx