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.
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.
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
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
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.