After upgrading from 1.5.9 to either 1.5.12 or 1.5.14, STIG Manager returns "Error: Cannot connect to the Sign-in Service." This only affects new sessions to Keycloak. #1801
Replies: 7 comments 4 replies
-
Beta Was this translation helpful? Give feedback.
-
|
Hi @Zachary-Lemoine That message indicates the client can't reach the OIDC discovery endpoint. That endpoint should be reachable in your browser by going to the URL set by STIGMAN_CLIENT_OIDC_PROVIDER, followed by If that works, it may be a CORS issue that only happens when the app tries to hit that endpoint, rather than you going directly to it in the browser. In consult with claud.ai about the problem, it suggested adding the CORS headers to your keycloak nginx config If the above doesn't illuminate any issues, you could send those files to the email found in our security policy: |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
Good evening,
Unfortunately, the 'ssl_verify_client' is not allowed within the location
stanza. Attempting to do so presents me with an error from NGINX stating as
such. I may need to look into migrating the configuration to Apache, as it
appears to support this type of behavior based on some of the documentation
I'm seeing.
…On Fri, Oct 24, 2025 at 6:01 PM cd-rite ***@***.***> wrote:
Hi @Zachary-Lemoine <https://github.com/Zachary-Lemoine> Can you turn off
ssl_verify_client for the .well-known endpoint? ie.
location ~ ^/realms/.*/\.well-known/ {
ssl_verify_client off;
# ... rest of proxy config
}
It's usually not required for the .well-known/openid-configuration
endpoint as it is advertising the options/config for authentication, not
doing the auth itself.
—
Reply to this email directly, view it on GitHub
<#1801 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A7RGN74X62Q5HXYXWEMKMA33ZKOURAVCNFSM6AAAAACJ5PJBUKVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTINZXG4YDKNQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***
com>
|
Beta Was this translation helpful? Give feedback.
-
|
Okay, I was able to create a workaround for this by doing the following: 1 - On the Keycloak server itself, I allow port 8443 to be accessed by the STIG Manager Server, which grants direct access to the underlying instance of Keycloak to STIG Manager's reverse proxy. 2 - On the STIG Manager server's NGINX configuration, I've configured the NGINX Reverse Proxy to have an additional "/auth/realms/myorganization/.well-known/openid-configuration" location, which passes to the location specified above. 3 - Also on the STIG Manager server, I've updated the "STIGMAN_CLIENT_OIDC_PROVIDER" attribute from "sso.fqdn.mil/realms/myorganization" to "stigman.fqdn.mil/auth/realms/myorganization". The STIGMAN_OIDC_PROVIDER remains configured with sso.fqdn.mil/realms/myorganization From here, the general client workflow appears to be the following: 1 - Client establishes (non-mutual) TLS authentication to STIG Manager 2 - Client requests OIDC configuration from stigman.fqdn.mil/auth/realms/myorganization/.well-known/openid-configuration 3 - Client is redirected to sso.fqdn.mil for authentication. Client is given the option to authenticate with a certificate for mTLS. 4 - Client selects their certificate, and they're able to log on. (Also validated that the reload iframe is working with this configuration) This is opposed to the previous flow, which appeared to be the following: 1 - Client established (non-mutual) TLS authentication to STIG Manager 2 - Client requests OIDC configuration from sso.fqdn.mil/realms/myorganization/.well-known/openid-configuration 3 - The OIDC worker either fails to load altogether due to not being able to present a client certificate, or if it does load by dropping the cert (following SSL_VERIFY_CLIENT being disabled), the user is unable to authenticate at the auth endpoint. Now, this is probably me making assumptions of my own, so please feel free to correct me (I'm not a web developer!). But, referencing the repository that provides the example configuration for CAC authentication, both the Keycloak Server and the STIG Manager server seem as if they're assumed to be on the same endpoint. To me, this would explain why others don't encounter this error, as mTLS is established upon connecting to STIG Manager initially. The client is then able to access the underlying ./.well-known url as well as the authorization url since the session is valid for both. Since I don't want clients to be given a certificate prompt to authenticate multiple times (Once for STIG Man, once for the SSO Server), I have mTLS disabled for STIG Manager, with the assumption that authentication will be done on the backend. This is obviously different than if they shared the same server, to which the initial mTLS session would be valid for both Keycloak and STIG Manager. I suppose the next question would be, is there any way to preload the OIDC endpoint in an interactable way for the user, such that they'd be prompted to authenticate for the OIDC ./well-known url, which would also keep their mTLS session for the auth url? Between the popular web server providers, only Apache appears to support TLS Renegotiation, which would be a prerequisite for clients to connect unauthenticated to the configuration page, prior to authenticating to the protocols/auth page. EDIT - Forwarding the location to port 8443 and modifying the server to proxy directly to Keycloak was unnecessary. I modified the new location block to reflect the existing server's standard URL. The NGINX proxy (STIGMAN) then correctly sends the request to the second NGINX Proxy (Keycloak), and it correctly fetches a valid OIDC configuration. Basically, step 1 for the workaround is ignored, and step 2 is modified to reflect the raw "sso.fqdn.mil/realms/...." versus "sso.fqdn.mil:8443/realms...." in the location block. |
Beta Was this translation helpful? Give feedback.
-
|
@Zachary-Lemoine We can workaround this issue by changing our code. I'll be opening a PR soon that aims to support your initial configuration having the OP and STIGMAN served from different origins and the OP always requesting a client cert. We expected that Firefox handles this configuration without error. But you're seeing failures when using Firefox as well? |
Beta Was this translation helpful? Give feedback.
-
|
Opened #1806 to track work targeting this topic. |
Beta Was this translation helpful? Give feedback.



Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Good afternoon,
I'm dealing with a very strange issue. Previously, we attempted to upgrade our STIG Manager environment to the latest version, which at the time was 1.5.12. After doing so, we noted that new sessions could not be established from STIG Manager to Keycloak, and users received the "Error: Cannot connect to the Sign-in Service." noted above. We reverted back, but now that I have more time to troubleshoot this error (now appearing on 1.5.14), I've noticed that after logging into Keycloak via a separate SP / SAML application located in the same realm, I can take that same session and authenticate properly to STIG Manager.
STIG Manager (via Windows Binary), its underlying MySQL database, and the Nginx reverse proxy are all located on a single Windows Server 2022 server. The Keycloak IDP is located on another separate Windows Server 2022 server, behind another Nginx reverse proxy. I've followed the documentation, and in doing so I've disabled proxy_buffering globally (I'll limit to the correct endpoints after this isssue is resolved) on the STIG Man server, and I've enabled the iframe session reauth action. This is, of course, accompanied by an http header added on the Nginx server providing the Keycloak IDP. Below are my configurations (sanitized to the best of my ability):
stig-manager.bat:
nginx.conf (on STIG Man Server):
And now nginx.conf (on the Keycloak Server):
Note that if we roll back to 1.5.9, the issue doesn't appear, and clients authenticate normally. Otherwise, following the upgrade, we encounter the issues here. If desired, I've taken an export of the traffic as har files via debug tools, and I'd be happy to email them to a .mil email address if someone is interested in assisting me with this. Otherwise, any information or assistance would be appreciated. Thank you!
Beta Was this translation helpful? Give feedback.
All reactions