-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
L'intero server crasha quando si inserisce un url che punta all'IP di loopback #282
Comments
Dall'interno del container, di default, 127.0.0.1 non fa riferimento al "tuo" localhost (ovvero il Docker host), ma al localhost del container stesso, motivo per cui ottieni l'errore ECONNREFUSED, visto che all'interno del tuo container nessuno è in ascolto su quella porta/ip. L'errore causa poi il crash del container. Se vuoi che il tuo container sia in grado di comunicare con l'host, hai diverse opzioni ma dipendono dal networking mode di Docker che stai usando. Se non hai specificato il parametro --network quando hai lanciato il container, allora stai utilizzando quasi sicuramente la modalità "bridge" e il tuo container è stato collegato alla docker network di nome "bridge". In questo caso per parlare con l'host devi usare il gateway IP della docker network "bridge".
Nel mio caso l'IP da utilizzare è In alternativa puoi lanciare il container con il parametro --network="host" e in questo caso anche dall'interno del container "localhost" o 127.0.0.1 faranno riferimento all'host e non al container stesso. Questo approccio è spesso sconsigliato in quanto il container stesso potrebbe usare "localhost" aspettandosi di parlare con se stesso, ma in questo caso parlerebbe con l'host, portandi quindi ad altri tipi di errori. In ogni caso, se anche spid-keycloak-provider (non ho visto il repo, non so di cosa si tratta 😄) è stato lanciato tramite docker (senza parametro --network che equivale a --network="bridge"), allora entrambi i container saranno collegati alla network "bridge", motivo per cui potranno parlarsi usando l'ip del container. Gli ip dei container potrai recuperarli con il comando
Alternativa forse più semplice è usare docker-compose per lanciare entrambi i container. In questo caso i container potranno parlarsi fra di loro semplicemente usando il service name che gli hai assegnato, in quanto verranno collegaati ad una network creata ad-hoc in fase di avvio. Alternativa simile al docker-compose: creare una user defined bridge network e collegarci esplicitamente i containers. In questo modo i container potranno parlarsi tramite IP e/o tramite nome container (cosa non possibile sulla rete predefinita chiamata "bridge").
|
@fume grazie per il ripasso, onestamente ero troppo preso per pensare a questa cosa (anche se ne conoscevo l'esistenza). è davvero da un po' che sto cercando di far funzionare SPID con una Single Page Application via OIDC. un sacco di tool sono o inesistenti o rotti. In ogni caso al momento sono riuscito ad arrivare alla schermata di login spid semplicemente configurando a keycloak per usare keycloak.localhost. in questo modo keycloak accetterà connessioni sotto quel nome e spid-saml-check non sfracassa le balle per qualsivoglia ragione. plus ogni dominio .localhost è considerato un secure context dai browser e ciò consente una serie di feature altrimenti non disponibili.
ora, non è abbastanza per completare il flow keycloak e SPID. ma cercherò di capire come farlo. |
non mi è pienamente chiaro che stia succedendo, ma sto cercando di testare l'applicazione con italia/spid-keycloak-provider.
a causa del fatto che come da pull request #276 non sia possibile usare localhost ho semplicemente cercato di bypassare il problema usando l'IP localhost corrispondente per registrare il mio SP dentro il server. il problema è che appena metto http://127.0.0.1:8080/my-url semplicemente muore, sotto il messaggio d'errore che ho recuperato dal container docker prima che terminasse.
qui sotto per comodità il dockerfile che si occupa di far andare keycloak con tanto di plugin. anche se onestamente dubito che serva perché comunque è possibile che crashi prima che a keycloak importi qualcosa.
nota: l'immagine non si occupa della completa configurazione del endpoint saml --> openid connect SPID, per quello si può dare un occhiata in wiki.
The text was updated successfully, but these errors were encountered: