keycloak paramètre non Valide: redirect_uri
Quand je suis en train de frapper de mon api pour authentifier l'utilisateur à partir de keycloak, mais sa me donne erreur de paramètre non Valide: redirect_uri sur keycloak page. J'ai créé mon propre domaine à part à partir du maître. keycloak est en cours d'exécution sur le protocole http. S'il vous plaît aider moi.
- lors de la vérification par inspecter l'élément de son montrant erreur 500
- Merci de ne pas poster le même question plusieurs fois. Si vous souhaitez ajouter plus de détails à votre question initiale, vous pouvez le faire en cliquant sur "modifier" directement en dessous de votre question.
- Double Possible de Keycloak paramètre non valide redirect_uri
- Vérifier https vs http dans l'url de redirection
- Dans mon cas, c'était une erreur stupide: "<adresse IP>" au lieu de "http://<adresse IP>"
Vous devez vous connecter pour publier un commentaire.
Ce qui a fonctionné pour moi a été l'ajout d'wildchar '*'. Bien que pour la production de construit, je vais être plus précis avec la valeur de ce champ. Mais pour les dev, vous pouvez le faire.
Disponible en vertu de l', keycloak la console d'administration -> Realm_Name -> Clientes -> Client_Name.
EDIT: je ne recommanderais pas la solution ci-dessus pour la production construit car cela pourrait conduire à une faille de sécurité.
J'ai fait face à la même erreur. Dans mon cas, le problème était avec Valide Redirect Uri n'était pas correcte. Voici donc les étapes que j'ai suivies.
De la première connexion à keycloack en tant qu'utilisateur admin.
Ensuite, Sélectionnez votre domaine(peut-être que vous vous auto-directe pour le royaume). Ensuite, vous verrez l'écran ci-dessous
Sélectionnez Clients à partir du panneau de gauche.
Puis à sélectionner les clients dont vous avez configuré pour votre application.
Par défaut, vous serez Réglage onglet, si pas le sélectionner.
Mon application est en cours d'exécution sur le port 3000, donc, mon bon réglage est comme ci-dessous.
disons que vous avez une application s'exécute sur localhost:3000, de sorte que votre paramètre doit être comme ceci
Si vous obtenez cette erreur en raison d'un nouvel univers que vous avez créé
Dans l'URL à laquelle vous êtes redirigé vers (vous pourriez avoir à regarder dans google Chrome dev tools pour cette URL), changer le domaine de
master
à celui que vous venez de créer, et si vous n'êtes pas à l'aide dehttps
, alors assurez-vous que le redirect_uri est également à l'aide dehttp
.Si vous recevez ce message, car vous êtes en essayant de configuration Keycloak sur une face du public de domaine (pas de localhost)
Étape 1)
Suivez cette documentation la configuration d'une base de données MySql. Vous pouvez aussi avoir besoin de se référer à la documentation officielle.
Étape 2)
Exécutez la commande
update REALM set ssl_required = 'NONE' where id = 'master';
Remarque:
À ce stade, vous devriez être techniquement en mesure de vous connecter, mais la version 4.0 de Keycloak est l'utilisation de https pour le redirect uri, même si nous avons simplement éteint prise en charge de https. Jusqu'à ce que Keycloak corrige cela, on peut contourner ce problème avec un serveur proxy inverse. Un reverse proxy est quelque chose que nous voulons utiliser, de toute façon, pour créer facilement des certificats SSL/TLS, sans avoir à vous soucier de Java fichier de stockage des clés.
Note 2: Keycloak a depuis sorti avec leur propre proxy. Je n'ai pas essayé encore, mais à ce stade, vous pourriez vouloir arrêter de suivre mes instructions et le check-out (keycloak gatekeeper)[https://www.keycloak.org/downloads.html%5D. Si vous avez de la difficulté à mettre en place la Keycloak Gatekeeper, je vais garder mes instructions autour de pour la mise en place d'un reverse proxy avec Apache.
Étape 3) Installer Apache. Nous allons utiliser Apache comme proxy inverse (j'ai essayé de NGINX, mais NGINX avait certaines limitations qui a obtenu de la manière). Voir yum l'installation d'Apache (CentOs 7), et apt-get install Apache (Ubuntu 16), ou trouver des instructions pour votre distribution.
Étape 4) Exécuter Apache
Utilisation
sudo systemctl start httpd
(CentOs) ousudo systemctl start apache2
(Ubuntu)Utilisation
sudo systemctl status httpd
(CentOs) ousudo systemctl status apache2
(Ubuntu) pour vérifier si l'exécution d'Apache. Si vous voyez dans le texte en vert les mots
active (running)
ou si la dernière entrée se lit comme suitStarted The Apache HTTP Server.
alors vous êtes bon.Étape 5) Nous allons établir une connexion SSL avec le reverse proxy, puis le proxy inverse communiquer à keyCloak sur http. Parce que c'http communication qui se passe sur la même machine, vous êtes toujours en sécurité. Nous pouvons utiliser Certbot à l'installation de l'auto-renouvellement des certificats.
Si ce type de cryptage n'est pas assez bon, et votre politique de sécurité exige de bout en bout le cryptage, vous aurez à comprendre comment configuration de SSL par le biais de WildFly, au lieu d'utiliser un proxy inverse.
Remarque:
Je n'ai jamais été réellement en mesure d'obtenir https pour fonctionner correctement avec le portail d'administration. Peut-être que cela aurait pu être juste un bug dans la version bêta de Keycloak 4.0 que j'utilise. Vous êtes censé être en mesure de définir le protocole SSL niveau nécessitera seulement pour les demandes externes, mais cela n'a pas l'air de fonctionner, ce qui est pourquoi nous avons mis en https à aucun dans l'étape #2. À partir de là, nous allons continuer à utiliser le protocole http via un tunnel SSH pour gérer les paramètres admin.
Étape 6)
Chaque fois que vous essayez de visiter le site via le protocole https, vous allez déclencher une HSTS politique qui s'auto-force requêtes http vers https. Suivez ces instructions pour effacer le HSTS règle à partir de Chrome, et puis pour le moment, de ne pas consulter la version https du site de nouveau.
Étape 7)
Configurer Apache.
D'abord trouver où votre httpd.fichier conf est situé. Votre httpd.fichier conf est probablement, y compris des fichiers de configuration à partir d'un répertoire distinct. Dans mon cas, j'ai trouvé tout de mon fichier de config dans un
conf.d
répertoire situé à côté du dossier le httpd.fichier conf a été en.Une fois que vous trouver vos fichiers de conf, modifier, ou ajouter le suivant, hôte virtuel entrées dans vos fichiers de conf. Assurez-vous de ne pas surcharger la déjà présent SSL options où généré par certbot. Lorsque vous avez terminé, votre fichier de configuration devrait ressembler à quelque chose comme ça.
L'Étape 8) Redémarrer Apache. Utilisation
sudo systemctl restart httpd
(CentOs) ousudo systemctl restart apache2
(Ubuntu).L'étape 9)
Avant d'avoir une chance d'essayer de se connecter au serveur, puisque nous avons dit Keycloak utiliser http, nous avons besoin de l'installation d'une autre méthode de connexion en toute sécurité. Cela peut être fait soit par l'installation d'un service de VPN sur le keycloak serveur, ou en utilisant des CHAUSSETTES. J'ai utilisé un proxy SOCKS. Pour ce faire, vous devrez d'abord le programme d'installation dynamique de la redirection de port.
ssh -N -D 9905 [email protected]
Ou de le configurer via Mastic.
Tout le trafic envoyé vers le port 9905 va maintenant être correctement acheminés à travers un tunnel SSH à votre serveur. Assurez-vous de la liste blanche de port 9905 sur votre pare-feu du serveur.
Une fois que vous avez redirection des ports dynamiques de l'installation, vous aurez besoin de configurer votre navigateur pour utiliser un proxy SOCKS sur le port 9905. Les Instructions ici.
Étape 10) Vous devriez maintenant être en mesure de vous connecter à la Keycloak portail d'administration. Pour se connecter au site web allez à http://127.0.0.1, et le proxy SOCKS va vous prendre pour l'admin console. Assurez-vous de désactiver le proxy SOCKS lorsque vous avez terminé, comme il le fait d'utiliser les ressources de votre serveur, ce qui va entraîner un ralentissement de la vitesse d'internet pour vous si a gardé.
L'étape 11) Ne me demandez pas combien de temps il m'a fallu pour comprendre tout cela.
Aller à keycloak console d'admin > SpringBootKeycloak> Clientes>login-page de l'application.
Ici en cours de validité,-redirect uri section ajouter
http://localhost:8080/sso/login
Cela aidera à résoudre indirecte-uri problème
web-context
réglageSi vous voyez ce problème après que vous avez apporté une modification à la Keycloak chemin de contexte, vous aurez besoin de faire une modification supplémentaire à une url de redirection réglage:
<web-context>yourchange/auth</web-context>
retour à<web-context>auth</web-context>
dans standalone.xml/auth/admin
)/auth/admin/master/console/*
à/yourchange/auth/admin/master/console/*
<web-context>yourchange/auth</web-context>
dans standalone.xmlRedémarrez Keycloak et accédez à la page de connexion (qui est maintenant
/yourchange/auth/admin
)redirect_uris
dans la base de données et modifier la valeur des champsJournal dans le Keycloak la console d'administration de site web, sélectionnez le domaine et le compte de son client, alors assurez-vous que tous les URIs du client sont préfixés avec le protocole, qui est, avec
http://
par exemple. Un exemple seraithttp://localhost:8082/*
Une autre façon de résoudre le problème, est de voir la Keycloak serveur de la console de sortie, recherchez la ligne indiquant la demande a été refusée, copie de la
redirect_uri
valeur affichée et le coller dans le* Valid Redirect URIs
champ du client dans le Keycloak la console d'administration de site web. L'URI de la requête est alors l'un des acceptables.J'ai affronté le paramètre non Valide: redirect_uri problème de problème de, au printemps suivant, de démarrage et keycloak exemple disponible à http://www.baeldung.com/spring-boot-keycloak. lors de l'ajout du client à partir de la keycloak serveur nous devons fournir à l'URI de redirection pour que le client, de sorte que keycloak serveur peut effectuer la redirection.
Lorsque j'ai fait face à la même erreur plusieurs fois, j'ai suivi la copie de corriger les URL à partir de keycloak console du serveur, dans le valide Redirect Uri de l'espace et il a bien fonctionné!
Vous devez vérifier la keycloak console d'administration de la façade de la configuration. Il doit être mal configuré pour rediriger les url web et origines.
Si vous essayez de vous rediriger vers le keycloak page de connexion après déconnexion (comme je l'ai été), qui n'est pas autorisé par défaut, mais doit également être configuré dans "Valide Redirect Uri" dans la console d'administration de votre client.
Cette erreur est également levée lorsque votre Utilisateur n'a pas le Rôle attendu délégué à la définition de l'Utilisateur(Jeu de rôle pour le Domaine dans la liste déroulante).
Si vous utilisez le Code d'Autorisation de Flux de puis le
response_type
requête de paramètre doit être égal àcode
. Voir https://www.keycloak.org/docs/3.3/server_admin/topics/sso-protocols/oidc.html