Sélectionner une page


Si vous obtenez cette erreur en raison d’une nouvelle zone que vous avez créée

Dans l’URL vers laquelle vous êtes redirigé (vous devrez peut-être rechercher cette URL dans les outils de développement Chrome), modifiez la plage de master à celui que vous venez de créer et lorsque vous ne l’utilisez pas httpsEnsuite, assurez-vous que redirect_uri est également utilisé http.

Si vous obtenez cette erreur parce que vous essayez de configurer Keycloak sur un domaine accessible au public (pas localhost)

Étape 1)
conséquences cette documentation pour configurer une base de données MySql. Vous devrez peut-être également le référencer la documentation officielle.

Étape 2)
Exécutez la commande update REALM set ssl_required = 'NONE' where id = 'master';

Noter:
À ce stade, vous devriez techniquement pouvoir vous connecter, mais la version 4.0 de Keycloak utilise https pour l’URL de redirection, même si nous venons de désactiver le support https. Jusqu’à ce que Keycloak corrige ce problème, nous pouvons contourner ce problème avec un proxy inverse. Un proxy inverse est quelque chose que nous aimerions utiliser de toute façon pour créer facilement des certificats SSL / TLS sans avoir à nous soucier des fichiers de clés Java.

Note 2: Keycloak a depuis publié son propre proxy. Je n’ai pas encore essayé, mais à ce stade, vous voudrez peut-être arrêter de suivre mes instructions et vérifier (Keycloak Gatekeeper)[[[[https://www.keycloak.org/downloads.html]. Si vous rencontrez des difficultés pour configurer le Keycloak Gatekeeper, je garderai mes instructions sur la configuration d’un proxy inverse avec Apache.

Étape 3) Installez Apache. Nous utiliserons Apache en tant que proxy inverse (j’ai essayé NGINX, mais NGINX avait des limitations qui gênaient). Voir miam installer Apache (CentOs 7) et apt-get installer Apache (Ubuntu 16), ou consultez les instructions de votre distribution spécifique.

Étape 4) Exécutez Apache

  • Utiliser sudo systemctl start httpd (CentOs) ou sudo systemctl start apache2 (Ubuntu)

  • Utiliser sudo systemctl status httpd (CentOs) ou sudo systemctl status apache2
    (Ubuntu) pour vérifier qu’Apache est en cours d’exécution. Lorsque vous voyez les mots en texte vert active (running) ou si la dernière entrée est Started The Apache HTTP Server. alors tu es bon

Étape 5) Nous établirons une connexion SSL avec le proxy inverse, puis le proxy inverse communiquera avec keyCloak via http. Étant donné que cette communication http a lieu sur le même ordinateur, vous êtes toujours en sécurité. On peut utiliser Certbot pour mettre en place des certificats avec renouvellement automatique.

Si ce type de cryptage n’est pas suffisant et que votre politique de sécurité nécessite un cryptage de bout en bout, vous devez savoir comment Configurer SSL via WildFlyau lieu d’utiliser un proxy inverse.

Noter:
Je n’ai jamais été en mesure de faire fonctionner correctement https avec le portail d’administration. C’était peut-être juste un bogue dans la version bêta de Keycloak 4.0 que j’utilise. Il est supposé que vous pouvez définir le niveau SSL de sorte qu’il ne soit requis que pour les demandes externes. Cependant, cela ne semble pas fonctionner. Pour cette raison, nous définissons https sur aucun à l’étape 2. À partir de maintenant, nous continuerons à utiliser http sur un tunnel SSH pour gérer les paramètres d’administrateur.

Étape 6)
Si vous essayez de visiter le site en utilisant https, vous déclenchez une stratégie HSTS qui force automatiquement les requêtes http à rediriger vers https. Suivez également ces instructions Supprimer la règle HSTS dans ChromeNe revisitez pas la version https du site Web pour le moment.

Étape 7)
Configurez Apache. Tout d’abord, découvrez où votre Le fichier httpd.conf se trouve. Votre fichier httpd.conf contient probablement des fichiers de configuration d’un répertoire séparé. Dans mon cas, j’ai trouvé tous mes fichiers de configuration dans un conf.d Répertoire en regard du dossier dans lequel se trouvait le fichier httpd.conf.

Lorsque vous avez trouvé vos fichiers de configuration, modifiez les entrées d’hôte virtuel suivantes ou incluez-les dans vos fichiers de configuration. Assurez-vous de ne pas écraser les options SSL préexistantes générées par certbot. Lorsque vous avez terminé, votre fichier de configuration devrait ressembler à ceci.

<VirtualHost *:80>
    RewriteEngine on

    #change https redirect_uri parameters to http
    RewriteCond %{request_uri}?%{query_string} ^(.*)redirect_uri=https(.*)$
    RewriteRule . %1redirect_uri=http%2 [NE,R=302]

    #uncomment to force https
    #does not currently work
    #RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI}

    #forward the requests on to keycloak
    ProxyPreserveHost On    
    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
    RewriteEngine on

    #Disable HSTS
    Header set Strict-Transport-Security "max-age=0; includeSubDomains;" env=HTTPS


    #change https redirect_uri parameters to http
    RewriteCond %{request_uri}?%{query_string} ^(.*)redirect_uri=https(.*)$
    RewriteRule . %1redirect_uri=http%2 [NE,R=302]

    #forward the requests on to keycloak
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/

    #Leave the items added by certbot alone
    #There should be a ServerName option
    #And a bunch of options to configure the location of the SSL cert files
    #Along with an option to include an additional config file

</VirtualHost>
</IfModule>

Étape 8) Redémarrez Apache. Utiliser sudo systemctl restart httpd (CentOs) ou sudo systemctl restart apache2 (Ubuntu).

Étape 9)
Avant de pouvoir essayer de vous connecter au serveur, nous devons configurer une autre méthode de connexion sécurisée, car nous avons dit à Keycloak d’utiliser http. Cela peut être fait soit en installant un service VPN sur le serveur Keycloak, soit en utilisant SOCKS. J’ai utilisé un proxy SOCKS. Pour ce faire, vous devez d’abord configurer la redirection de port dynamique.

ssh -N -D 9905 user@example.com

Ou configurez-le via mastic.

Tout le trafic envoyé au port 9905 est désormais transmis en toute sécurité à votre serveur via un tunnel SSH. Assurez-vous de mettre le port 9905 en liste blanche sur le pare-feu de votre serveur.

Une fois que vous avez configuré la redirection de port dynamique, vous devrez configurer votre navigateur pour utiliser un proxy SOCKS sur le port 9905. Instructions ici.

Étape 10) Vous devriez maintenant pouvoir vous connecter au portail d’administration Keycloak. Pour vous connecter au site Web, accédez à http://127.0.0.1et le proxy SOCKS vous amènera à la console d’administration. Assurez-vous de désactiver le proxy SOCKS lorsque vous avez terminé car il utilisera les ressources de votre serveur. Cela entraînera des vitesses Internet plus lentes pour vous si vous conservez cette option.

Étape 11) Ne me demandez pas combien de temps il m’a fallu pour découvrir tout cela.



Source link

Recent Posts