web-dev-qa-db-fra.com

Keycloak Docker HTTPS requis

J'ai initialisé https://hub.docker.com/r/jboss/keycloak/ sur ma gouttelette Digital Ocean Docker.

$docker run -e KEYCLOAK_USER=admin -e -p 8080:8080 KEYCLOAK_PASSWORD={password with upcase etc.} jboss/keycloak

succès

Tout a bien fonctionné et le serveur a démarré dans l'adresse IP Droplets sur un port: 8080.

Les problèmes ont commencé lorsque je suis entré dans la console d'administration à partir de l'interface utilisateur dans l'URL. Il y avait un message: "HTTPS requis". C'était un vrai problème et la seule solution que j'ai trouvée est de se connecter au Keycloak à partir de la console et de changer le paramètre HTTPS = requis depuis la console d'administration sans l'interface utilisateur.

J'ai ensuite ouvert le bash pour mon conteneur Docker:

$docker exec -it keycloak bash

succès

Lorsque j'ai entré ma commande pour me connecter dans le dossier keycloak/bin:

cd keycloak/bin

keycloak/bin $./kcadm.sh config credentials --server http://<droplet IP>:8080/auth --realm master --user admin --password {password with upcase etc.}

le bash se fige et donne un message de temporisation après un certain temps

La raison de la connexion à partir de bash serait la suivante:

keycloak/bin $ ./kcadm.sh update realms/master -s sslRequired=NONE.

ce qui, espérons-le, résoudrait le problème d'origine de HTTPS requis.

9
user6947621

Publiez le port 8443 (HTTPS) et utilisez-le au lieu de 8080 (HTTP):

docker run \
  --name keycloak \
  -e KEYCLOAK_USER=myadmin \
  -e KEYCLOAK_PASSWORD=mypassword \
  -p 8443:8443 \
  jboss/keycloak

Keycloak génère un certificat auto-signé pour https dans cette configuration. Bien sûr, ce n'est pas une configuration de production.

17
Jan Garaj

C'était une solution qui permettait également d'accéder à la console d'administration sans sécurité lors de l'utilisation https://hub.docker.com/r/jboss/keycloak/ comme point de départ et DigitalOcean comme fournisseur de services:

Conteneur de démarrage:

$ docker run {containerName}

Ouvrir bash pour le conteneur:

$ docker exec -it {containerName} bash

Déménager à:

$ cd keycloak/bin

créer un nouvel utilisateur administrateur avec:

$ ./add-user-keycloak.sh --server http://{IP}:8080/admin    
--realm master --user admin --password newpassword

(pas add-user.sh comme suggéré dans de nombreux endroits)

Redémarrez la droplet dans DigitalOcean, etc. vers l'utilisateur administrateur activé créé avant l'arrêt. Après avoir redémarré la connexion de droplet avec:

$ ./kcadm.sh config credentials --server http://localhost:8080/auth 
--realm master --user admin

Modification des paramètres SSL sur le domaine:

$ ./kcadm.sh update realms/master -s sslRequired=NONE

Cette solution ne crée aucune sécurité mais vous permet d'accéder à la console d'administration.

Après cela, il est suggéré de commencer à travailler sur ceci: https://www.keycloak.org/docs/latest/server_installation/index.html#setting-up-https-ssl

9
user6947621

La séquence de commandes suivante a fonctionné pour moi

Sur la machine virtuelle hôte:

docker run --name key -d -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin jboss/keycloak
docker exec -it key bash

A l'intérieur du conteneur:

cd keycloak/bin/
./kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin 
Logging into http://localhost:8080/auth as user admin of realm master
Enter password: admin
./kcadm.sh update realms/master -s sslRequired=NONE
3
rok

J'ai également rencontré un gel bash lors de la tentative de configuration des informations d'identification.

Ajout du --password argument à config credentials la commande a abouti à une exécution réussie:

./kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin --password {YOUR_PASSWORD_HERE}

Exécutez ./kcadm.sh config credentials pour des exemples de moyens sécurisés/alternatifs de passer l'argument.

1
Jrodseth