From 6f581d2122f757404fa0269fb773852a855cb242 Mon Sep 17 00:00:00 2001 From: greg Date: Tue, 19 Dec 2023 15:44:46 +0100 Subject: [PATCH] dev env OK! --- .env | 71 ++++++++++++++++++++++++++++++++++++++++ README.md | 35 ++++++++++++++------ docker-compose.yml | 80 +++++++++++++++++++++++----------------------- 3 files changed, 137 insertions(+), 49 deletions(-) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 0000000..fc581c2 --- /dev/null +++ b/.env @@ -0,0 +1,71 @@ +#################################################### +################################################### +#### #### +#### ENV #### +#### #### +############################################### +############################################## + +############################################# +############################################## +#### #### +#### KEYCLOAK ENV #### +#### #### +################################################## +################################################### + +DB_VENDOR=POSTGRES +DB_ADDR=keycloak_db +DB_DATABASE=postgresdb +DB_USER=keycloak +DB_SCHEMA=public +DB_PASSWORD=mot-de-passe-db + +KEYCLOAK_ADMIN=admin +KEYCLOAK_ADMIN_PASSWORD=5up3rPa55w0rd + +KEYCLOAK_WELCOME_THEME=keycloak +KEYCLOAK_DEFAULT_THEME=keycloak +KEYCLOAK_DOMAIN_USER=admin +KEYCLOAK_DOMAIN_PASSWORD=mot-de-passe +KEYCLOAK_DOMAIN_USER_FIRST_NAME=Administrateur +KEYCLOAK_DOMAIN_USER_NAME=Technique +KEYCLOAK_DOMAIN_USER_EMAIL=contact@legaragenumerique.fr +PROXY_ADDRESS_FORWARDING=true +KEYCLOAK_PRODUCTION=true +KEYCLOAK_JDBC_PARAMS=sslmode=disable&connectTimeout=40000 +KEYCLOAK_EXTRA_ARGS="-Dkeycloak.profile.feature.scripts=enabled" + +KC_HOSTNAME_URL=https://id.legaragenumerique.xyz +KC_HOSTNAME_ADMIN_URL=https://id.legaragenumerique.xyz + +KC_HTTP_RELATIVE_PATH=/ +KC_HOSTNAME_STRICT=false +KC_HOSTNAME_STRICT_BACKCHANNEL=true +KC_HOSTNAME_STRICT_HTTPS=false +KC_HOSTNAME_PORT=8080 + +############################################# +############################################## +#### #### +#### KEYCLOAK DB ENV #### +#### #### +################################################## +################################################### + +POSTGRES_DB=postgres-db +POSTGRES_USER=keycloak +POSTGRES_PASSWORD=mot-de-passe-db + +#################################################### +################################################### +#### #### +#### OPEN LDAP ENV #### +#### #### +############################################### +############################################## + +LDAP_DOMAIN=legaragenumerique.xyz +LDAP_ORGANISATION="Le Garage Numérique" +LDAP_ADMIN_PASSWORD=mot-de-passe-ldap +LDAP_CONFIG_PASSWORD=mot-de-passe-? \ No newline at end of file diff --git a/README.md b/README.md index 64b9b21..2bb0899 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ Ce projet est pour déployer Keycloak (16.0) via docker-compose - [Docker]() - [docker-compose]() +- Base de donnée LDAP +- Export d'un realm 'json' ## UTILISATION @@ -14,18 +16,33 @@ Ce projet est pour déployer Keycloak (16.0) via docker-compose nano .env ``` -> Modifier les mots de passe pour la base de données et keycloak ainsi que le domaine, l'adresse email, l'administrateur +> Modifier les mots de passe pour la base de données et keycloak ainsi que le domaine, l'adresse email, l'administrateur, etc ```bash docker-compose up -d -# ./install-and-deploy.sh ``` -## TODO +### IMPORTER DATABASE + +- Copier la database de keycloak-openldap: +```bash +cp /chemin/vers/l'ancienne/ldap_db/*.mdb ./keycloak/ldap_db +``` + +> c'est là que son les users + +### IMPORTER REALM (CLIENTS) + +> Cliquer sur le realm master, puis créer un realm et importer celui-ci d'un fichier d'export .json + +### IMPORTER USERS + +> Mettre à jour le User federation pour reconnecter Keycloak avec la BDD LDAP (mdp dans .env) + +## BUGS + +- Clients secrets don't get exported (***********) -> maj (àregenérer) +- Users need get verified -> A faire manuellement sur chq user +- persistance du realm garagenum ? + -- [ ] Générer les mdp avec openssl et afficher mdp admin via script bash -- [ ] Script install-and-deploy.sh: - - Generate random mdp - - put in .env - - docker-compose up -d - - affiche user et mdp admin \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index fde4355..5041b8e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,47 +2,47 @@ version: '3' services: keycloak: - image: quay.io/keycloak/keycloak:23.0.3 - container_name: keycloak - restart: always - # command: start-dev --import-realm - command: start-dev - ports: - - 8051:8080 - depends_on: - - keycloak_db - env_file: - - .env - volumes: - - ./keycloak/import:/opt/keycloak/data/import - + image: quay.io/keycloak/keycloak:23.0.3 + container_name: keycloak + restart: always + command: start --proxy=edge +# command: start-dev # pour debug + ports: + - 8080:8080 + depends_on: + - keycloak_db + env_file: + - .env + # volumes: + # - ./keycloak/certs:/opt/jboss/keycloak/standalone/configuration/certs:ro + # - ./keycloak/conf/standalone.xml:/opt/jboss/keycloak/standalone/configuration/standalone-ha.xml:ro keycloak_db: - image: postgres:13 - container_name: keycloak-db - restart: always - volumes: - - ./postgres:/var/lib/postgresql/data - ports: - - 5435:5432 - env_file: - - .env + image: postgres:13 + container_name: keycloak-db + restart: always + volumes: + - ./postgres:/var/lib/postgresql/data + ports: + - 5435:5432 + env_file: + - .env openldap: - image: osixia/openldap - container_name: keycloak-openldap - restart: always - volumes: - - ./keycloak/ldap_ldif:/container/service/slapd/assets/config/bootstrap/ldif/custom - - ./keycloak/ldap_db:/var/lib/ldap - - ./keycloak/ldap_conf:/etc/ldap/slapd.d - command: ["--copy-service"] - env_file: - - .env - tty: true - stdin_open: true - domainname: legaragenumerique.fr - hostname: "ldap" - ports: - - "389:389" - - "636:636" + image: osixia/openldap + container_name: keycloak-openldap + restart: always + volumes: + - ./keycloak/ldap_ldif:/container/service/slapd/assets/config/bootstrap/ldif/custom + - ./keycloak/ldap_db:/var/lib/ldap + - ./keycloak/ldap_conf:/etc/ldap/slapd.d + command: ["--copy-service"] + env_file: + - .env + tty: true + stdin_open: true + domainname: legaragenumerique.fr + hostname: "ldap" + ports: + - "389:389" + - "636:636" \ No newline at end of file