Docker
Stellen Sie FoxIDs in Docker Desktop auf einer dev oder test Maschine bereit.
Dies ist eine Beschreibung, wie Sie eine Standard Bereitstellung durchführen und sich erstmals anmelden.
Eine FoxIDs Installation ist wie ein Eimer, es gibt keine externen Abhängigkeiten und es ist einfach, mit wenig Aufwand eine sehr hohe Verfügbarkeit zu erreichen.
FoxIDs werden aktualisiert, indem die beiden Docker Images www.foxids.com/foxids:x.x.x und www.foxids.com/foxidscontrol:x.x.x
auf eine neue Version aktualisiert werden. Neue FoxIDs Releases sind backward compatible. Bitte prüfen Sie vor dem Update die release notes. Dort finden Sie auch die aktuelle Docker Image Version.
Für den Zugriff auf die FoxIDs Releases ist eine gültige Lizenz erforderlich. Dort können Sie ein Secret erzeugen, um sich bei der Docker Image Registry unter www.foxids.com zu authentifizieren, die Basic Authentication verwendet.
Voraussetzungen:
- Docker Desktop ist installiert.
- Grundkenntnisse in Docker.
Dies ist eine Liste nützlicher Befehle am Ende dieser Beschreibung.
Diese Bereitstellung umfasst:
- Zwei Websites, eine für FoxIDs und eine für FoxIDs Control (the admin Client und API) in zwei Docker Images
www.foxids.com/foxids:x.x.xundwww.foxids.com/foxidscontrol:x.x.x. - Die beiden Websites werden auf zwei verschiedenen Ports bereitgestellt.
- MongoDB ist eine NoSQL Datenbank und enthält alle Daten einschließlich Tenants, Umgebungen und Benutzer. Bereitgestellt mit dem offiziellen MongoDB Docker Image.
- Redis cache hält Sequenzen (z. B. Login und Logout), Daten Cache zur Leistungsverbesserung und Zähler, um die Authentifizierung gegen verschiedene Angriffe zu schützen. Bereitgestellt mit dem offiziellen Redis Docker Image.
- Logs werden in
stdoutgeschrieben, wo sie von Docker aufgenommen werden können.
Optional verwenden Sie PostgreSql statt MongoDB und optional verzichten Sie auf Redis und speichern Cache Daten in der Datenbank (MongoDB oder PostgreSql). Ohne Redis cache müssen Sie
Noneals data cache auswählen.
Bereitstellung
Die Bereitstellung erfolgt in der beschriebenen Reihenfolge.
Vorbereitung
Laden Sie die Docker yaml Konfigurationsdateien hier herunter und legen Sie sie in einem Ordner auf Ihrem Rechner ab, z. B. C:\FoxIDs\Docker.
Öffnen Sie eine Konsole und navigieren Sie zum Ordner Docker.
Volume
Sie benötigen ein Volume für MongoDB mit dem Namen foxids-data, in dem die Daten gespeichert werden.
Erstellen Sie entweder ein volume für MongoDB auf dem Windows Host Dateisystem z. B. im Ordner C:\data\foxids-data. Wichtig: Erstellen Sie die Ordner vor dem Ausführen des Befehls.
docker volume create --driver local --opt type=none --opt device=C:\data\foxids-data --opt o=bind foxids-data
ODER erstellen Sie ein volume für MongoDB, das von Docker verwaltet wird.
docker volume create foxids-data
Container bereitstellen
Die beiden FoxIDs Websites sind mit den Docker Images konfiguriert. Optional können sie so konfiguriert werden, dass sie nur HTTP oder sowohl HTTP/HTTPS mit einem Entwicklungszertifikat verwenden.
Die offiziellen MongoDB und Redis Images werden von Docker Hub gezogen.
Pull Secret und Docker Setup
Setzen Sie den Benutzernamen auf Ihre Kunden-ID und das Passwort auf Ihr Pull Secret für die FoxIDs Docker Registry, und authentifizieren Sie anschließend Docker.
docker login www.foxids.com --username <customer-id> --password <pull-secret>
Aktualisieren Sie 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
Wählen Sie die Version aus den FoxIDs Releases und ziehen Sie anschließend die Images:
docker-compose -f docker-compose-image.yaml pull
E Mail Provider
Optional können Sie einen globalen E Mail Provider konfigurieren oder später E Mail Provider pro Umgebung konfigurieren. FoxIDs unterstützt das Senden von E Mails mit SendGrid und SMTP.
Der globale E Mail Provider wird in der Datei docker-compose-image.yaml beim foxids Service im Abschnitt environment: konfiguriert.
Dieses Beispiel zeigt, wie Sie Outlook / Microsoft 365 mit SMTP hinzufügen:
- name: "Settings__Smtp__FromEmail"
value: "my@email-address.org"
- name: "Settings__Smtp__FromName" # Optionaler Absendername zur E Mail Adresse
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"
Bereitstellen
Erstellen Sie die Bereitstellung mit Docker Images und HTTP:
- Basiert auf Docker Images und mit HTTP
docker-compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml up -d
- Basiert auf Docker Images und mit HTTP/HTTPS - erfordert, dass das Entwicklungszertifikat vorhanden ist.
docker-compose -f docker-compose-image.yaml -f docker-compose.development-https.yaml up -d
Erster Login
Öffnen Sie Ihre FoxIDs Control Site (http://localhost:8801 oder https://localhost:8401) in einem Browser.
Sie sollte zur FoxIDs Site weiterleiten, wo Sie sich mit dem Standard Admin Benutzer admin@foxids.com und dem Passwort FirstAccess! anmelden (Sie müssen das Passwort beim ersten Login ändern).
Sie werden dann zurück zur FoxIDs Control Site im master Tenant weitergeleitet. Sie können weitere Admin Benutzer im Master Tenant hinzufügen.
Klicken Sie anschließend auf den main Tenant und authentifizieren Sie sich erneut mit demselben Standard Admin Benutzer admin@foxids.com und dem Passwort FirstAccess! (auch hier müssen Sie das Passwort ändern).
Standard Admin Benutzer und Passwort sind für
masterTenant undmainTenant gleich, es handelt sich jedoch um zwei unterschiedliche Benutzer.
Sie sind jetzt im main Tenant angemeldet und können mit der Konfiguration Ihrer Anwendungen und Authentifizierungsmethoden beginnen.
Nützliche Befehle
Dies ist eine Liste von Befehlen, die während der Bereitstellung nützlich sein können, um Details anzusehen und Änderungen an der Bereitstellung vorzunehmen.
Bereitstellung beenden
docker-compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml down
# oder
docker-compose -f docker-compose-image.yaml -f docker-compose.development-https.yaml down
Container stoppen
docker stop xxx
Container entfernen
docker rm xxx
Image entfernen
docker rmi xxx
Volumes auflisten
docker volume ls
Volume entfernen
docker volume rm xxx
Alle ungenutzten Volumes entfernen
docker volume prune
Logs im Container anzeigen
Docker logs xxx