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 comme un bucket, il n’y a pas de dépendances externes et il est facile d’atteindre un très haut niveau de 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
Vous avez besoin d’un volume pour MongoDB avec le nom foxids-data où les données sont enregistrées.
Soit créez un volume pour MongoDB sur votre système de fichiers hôte Windows, par ex. le dossier C:\data\foxids-data. Important : créez les dossiers avant d’exécuter la commande.
docker volume create --driver local --opt type=none --opt device=C:\data\foxids-data --opt o=bind foxids-data
OU créez un volume pour MongoDB géré par Docker.
docker volume create foxids-data
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.
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 :
- name: "Settings__Smtp__FromEmail"
value: "my@email-address.org"
- name: "Settings__Smtp__FromName" # Optional from name associated to the email address
value: "e.g, my company name"
- name: "Settings__Smtp__Host"
value: "smtp.office365.com"
- name: "Settings__Smtp__Port"
value: "587"
- name: "Settings__Smtp__Username"
value: "my@email-address.com"
- name: "Settings__Smtp__Password"
value: "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 la présence du certificat de développement.
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