Hello, I have a functioning Guacamole configuration in Docker, that is currently working well. User created, TOTP enabled, Can connect to a RDP instance, etc.
However, as soon as I attempt to: enable SAML, enable more verbose logging in Logbook, enable a custom Home directory, etc. Things tend to go wrong. I currently access Guacamole at: https://guacamole.domain.org As an example, my docker compose for guacamole only is below: > guacamole: > container_name: guacamole > depends_on: > - guacd > - postgres.16 > environment: > GUACD_HOSTNAME: guacd > POSTGRES_DATABASE: ${guacamole_db} > POSTGRES_HOSTNAME: ${POSTGRES_HOST} > POSTGRES_PASSWORD: ${guac_postgres_pass} > POSTGRES_USER: ${guac_postgres_user} > WEBAPP_CONTEXT: ROOT > GUACAMOLE_HOME: /data > EXTENSIONS: "openid, saml" > EXTENSION_PRIORITY: "*, saml, openid, totp" > RECORDING_SEARCH_PATH: /record > REMOTE_IP_VALVE_ENABLED: true > ENABLE_ENVIRONMENT_PROPERTIES: true > SAML_IDP_METADATA_URL: > https://subdomain.okta.com/app/UUID1/sso/saml/metadata > SAML_ENTITY_ID: https://guacamole.DOMAIN.org > <https://guacamole.domain.org/> > SAML_CALLBACK_URL: > https://subdomain.okta.com/app/subdomain_guacamoleDOMAIN_1/UUID2/sso/saml > SAML_DEBUG: true > SAML_STRICT: true > TOTP_ENABLED: true > TOTP_MODE: sha256 > TOTP_ISSUER: "Guacamole" > image: guacamole/guacamole:latest > volumes: > - /mnt/docker/guacamole/home:/home/guacamole:rw > - /mnt/docker/guacamole/data:/data:rw > - /mnt/docker/guacamole/guacd/record:/record:rw > links: > - guacd > networks: > - guacnetwork > - database > - tailscale > ports: > # - 8080:8080 > - 8080/tcp > restart: always > Unfortunately, for whatever reason, Guacamole can't solely use the metadata file - even though the URL is connectable (I can curl from within the container to the URL). So I have to use the two other options listed. I have also tried this with SAML_STRICT set to true or false, and still receive the following error; 16:44:05.563 [http-nio-8080-exec-4] WARN o.a.g.a.s.a.AssertionConsumerServiceResource - Authentication attempted with an invalid SAML response: "RelayState" value included with SAML response is not valid. > > Now, I have looked at various websites, but I can't seem to find this error anywhere, and the only mention I can find of a potential workaround is this: https://support.okta.com/help/s/question/0D51Y00006aAeE9SAK/sp-initiated-saml-sso-relay-state-issue?language=en_US I have also reviewed this blog post: https://nathancatania.com/posts/deploy-guacamole-ssl-saml/ , which appears to be (so far from what I have read) the best documentation on getting Okta and Guacamole working, however, it doesn't mention RelayState. Which unfortunately, does not work when placed on the SAML_IDP_METADATA_URL: env variable. When running a SAML trace in the browser, I notice a switch between RelayState and "state", in the response from Guacamole to Okta (and vice-a-versa), and am wondering if that is expected. While I would absolutely prefer to use OIDC here, I believe that the docker container does not natively support OIDC out of the box (EG: through Env variables) and I would have to use the GUACAMOLE_HOME configuration to work around this. Unfortunately, Guacamole doesn't seem to be recognizing the paths specificed and setting the configuration there. I tried to search for the ENV variables required for this, but couldn't find anything specifically. I was wondering if there was any guidance on setting up the SAML configuration or how I can remove the RelayState error listed above, until I can get a hold of someone at Okta to assist - or if there is a convenient way to get OIDC working with the Docker container given that I can't get GUACAMOLE_HOME to work at the moment. Best regards, Andrew