Docker
Déployez FoxIDs dans Docker Desktop sur une machine de dev ou de test.
Ceci est une description de la manière d’effectuer un déploiement par défaut et de se connecter pour la première fois.
Une installation FoxIDs est autonome, comporte peu de dépendances externes et peut atteindre une très haute disponibilité avec peu d’efforts.
FoxIDs se met à jour en mettant à jour les deux images Docker www.foxids.com/foxids:x.x.x et www.foxids.com/foxidscontrol:x.x.x
vers une nouvelle version. Les nouvelles versions de FoxIDs sont backward compatible. Veuillez consulter les notes de version avant de mettre à jour. Vous y trouverez également la version actuelle de l’image Docker.
Une licence valide est requise pour accéder aux versions de FoxIDs. À partir de là, vous pouvez générer un secret pour vous authentifier auprès du registre d’images Docker sur www.foxids.com, qui utilise l’authentification Basic.
Prérequis :
- Vous avez Docker Desktop installé.
- Vous avez des connaissances de base sur Docker.
Voici une liste de commandes utiles à la fin de cette description.
Ce déploiement comprend :
- Deux sites web, un pour FoxIDs et un pour FoxIDs Control (the admin Client et API) dans deux images Docker
www.foxids.com/foxids:x.x.xetwww.foxids.com/foxidscontrol:x.x.x. - Les deux sites web sont exposés sur deux ports différents.
- MongoDB est une base de données NoSQL et contient toutes les données, y compris tenants, environnements et utilisateurs. Déployée avec l’image Docker officielle MongoDB.
- Le cache Redis contient les séquences (ex. login et logout), un cache de données pour améliorer les performances et gère les compteurs pour sécuriser l’authentification contre diverses attaques. Déployé avec l’image Docker officielle Redis.
- Les logs sont écrits sur
stdoutoù ils peuvent être récupérés par Docker.
Optionnellement utilisez PostgreSQL à la place de MongoDB et, optionnellement, désactivez Redis et enregistrez les données de cache dans la base de données (MongoDB ou PostgreSQL). Sans cache Redis, vous devez sélectionner
Nonecomme data cache.
Déploiement
Le déploiement est effectué dans l’ordre décrit.
Préparer
Téléchargez les fichiers de configuration Docker yaml ici et placez-les dans un dossier sur votre machine, par exemple C:\FoxIDs\Docker.
Ouvrez une console et accédez au dossier Docker.
Volume
Le fichier docker-compose-image.yaml définit un volume MongoDB nommé foxids-data.
Par défaut, Docker Compose crée et gère le volume pour vous.
Si vous souhaitez enregistrer les données MongoDB sur le système de fichiers hôte Windows, créez d'abord le dossier hôte, par exemple C:\data\foxids-data, puis créez un volume Docker externe :
docker volume create --driver local --opt type=none --opt device=C:\data\foxids-data --opt o=bind foxids-data
Supprimez ensuite le commentaire de external: true sous volumes: foxids-data: dans docker-compose-image.yaml, afin que Docker Compose utilise le volume externe.
Déployer les conteneurs
Les deux sites FoxIDs sont configurés avec les images Docker. Et éventuellement configurés pour utiliser uniquement HTTP ou HTTP/HTTPS avec un certificat de développement. Les images officielles MongoDB et Redis sont tirées depuis Docker Hub.
Pull secret et configuration Docker Définissez le nom d’utilisateur avec votre ID client et le mot de passe avec votre pull secret pour le registre Docker de FoxIDs, puis authentifiez Docker.
docker login www.foxids.com --username <customer-id> --password <pull-secret>
Mettez à jour 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
Sélectionnez la version depuis les versions de FoxIDs, puis récupérez les images :
docker compose -f docker-compose-image.yaml pull
Fournisseur d’e-mail Vous pouvez configurer un fournisseur d’e-mail global ou plus tard configurer des fournisseurs d’e-mail par environnement. FoxIDs prend en charge l’envoi d’e-mails avec SendGrid et SMTP. Vous pouvez également configurer des fournisseurs SMS globalement ou par environnement.
Le fournisseur e-mail global est configuré dans le fichier docker-compose-image.yaml sur le service foxids dans la section environment:.
Cet exemple montre comment ajouter Outlook / Microsoft 365 avec 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
Déployer Créez le déploiement avec des images Docker et HTTP :
- Basé sur des images Docker et en HTTP
docker compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml up -d
- Basé sur des images Docker et en HTTP/HTTPS - nécessite un certificat de développement exporté.
Le fichier compose HTTPS mappe %APPDATA%\ASP.NET\Https sur l'hôte Windows vers /home/app/.aspnet/https dans les conteneurs et configure Kestrel pour charger dev_cert.pfx.
Créez le dossier et exportez le certificat de développement .NET avant de démarrer le déploiement :
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"
Le mot de passe doit correspondre à ASPNETCORE_Kestrel__Certificates__Default__Password dans docker-compose.development-https.yaml.
docker compose -f docker-compose-image.yaml -f docker-compose.development-https.yaml up -d
Première connexion
Ouvrez votre site FoxIDs Control (http://localhost:8801 ou https://localhost:8401) dans un navigateur.
Il devrait rediriger vers le site FoxIDs où vous vous connectez avec l’utilisateur admin par défaut admin@foxids.com et le mot de passe FirstAccess! (vous devez changer le mot de passe à la première connexion).
Vous êtes ensuite redirigé vers le site FoxIDs Control dans le tenant master. Vous pouvez ajouter d’autres administrateurs dans le tenant master.
Ensuite, cliquez sur le tenant main et authentifiez-vous à nouveau avec le même utilisateur admin par défaut admin@foxids.com et le mot de passe FirstAccess! (vous devez à nouveau changer le mot de passe).
L’utilisateur admin par défaut et le mot de passe sont les mêmes pour le tenant
masteret le tenantmain, mais il s’agit de deux utilisateurs différents.
Vous êtes maintenant connecté au tenant main et pouvez commencer à configurer vos applications et méthodes d’authentification.
Commandes utiles
Voici une liste de commandes pouvant être utiles pendant le déploiement pour voir les détails et effectuer des modifications de déploiement.
Détruire le déploiement
docker compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml down
# ou
docker compose -f docker-compose-image.yaml -f docker-compose.development-https.yaml down
Arrêter un conteneur
docker stop xxx
Supprimer un conteneur
docker rm xxx
Supprimer une image
docker rmi xxx
Lister les volumes
docker volume ls
Supprimer un volume
docker volume rm xxx
Supprimer tous les volumes inutilisés
docker volume prune
Afficher les logs d’un conteneur
docker logs xxx