-
Notifications
You must be signed in to change notification settings - Fork 474
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
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
Assertion signature is missing in SAML Response when using Google Workspace #852
Comments
You have configured this:
(which is also default cofiguration for This bug report is duplicate of e.g. these (read background information from those and from linked PRs and from release notes):
Long story short. Your configuration expects that IdP signs response ( SAML specification provides answer to possible questions about security implications (one should always go through SAML / OAuth / ... specifications prior to implement/use those protocols so I assume you already have those SAML specs available). fwiw, consider also enabling audience validation (due reasons described e.g. here #137 and in SAML specs for extra layer of security). It is now:
changit it (based on provided example repsonse) to Side note: @markstos @cjbarth could you check whats wrong with passport-saml's Discussions because issue description says:
|
Hey @srd90 Thanks for getting back to me.
I can't seem to find a setting in Google Workspaces that would enable signed assertions. Isn't it unsafe to set |
I urge you to seek definitive answer from SAML specs and how XML signatures work etc. Along the way you pick quite a lot information which is usable in other contexts also. Having said that Shibboleth IdP documentation says e.g. this at "SAML 2.0 Browser SSO profile" notes:
source: https://shibboleth.atlassian.net/wiki/spaces/IDP4/pages/1265631694/SAML2SSOConfiguration#Notes (referenced 02 Mar 2023) Furthermore Response level signature covers content of whole Response content (including Assertion). btw. this:
refers to situation where assertions are encrypted. If assertions are encrypted SAML SP must first decrypt assertion before it can proceed to validate integrity of assertion. Problem is that if encryption is done with algorithm which has vulnerabilities and attacker has altered encrypted content to make use of those vulnerabilities (which can be anything from DoSish to use-your-imagination) there isn't anything to block this situation (if Response would have been signed and if SAML SP would have been configured to require signed Response then SAML SP would not have tried to decrypt altered encrypted content). |
Closing due to inactivity. If this is still an open issue, please reply to reopen the issue. |
@srd90 I reviewed the project settings and don't see anything preventing this user from posting, but I do see several users posting there successfully. Because this is more of a support issue than a bug report, I'm still going to move this there now. |
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
Hey team,
It seems that I'm unable to post a question in the GitHub Discussion section, so I'm posting it here. Feel free to move it.
I'm currently trying to implement several identity providers with
passport-saml
(version: 4.0.2) andnode-saml
(version: 4.0.3).Currently, I've successfully implemented Azure AD, OneLogin and Okta. However Google Workspaces doesn't seem to work.
I've been debugging it for several days now, but I need help figuring out what's wrong.
Config
This is currently my config:
Identity Provider:
Software Provider:
Error
I get the following error:
Upon further inspection, my
SAML Response
doesn't contain an assertion signature.Changes
I added some
console.log
statements to better understand what's going wrong.https://github.com/node-saml/node-saml/blob/f86252bcbaa4435159d121d2e342ec89f94ad183/src/xml.ts#L77-L95
The
xpathSigQuery
variable printed out the following:The most interesting part is the
@URI='#_7c75c9695c0e97ff4539767efb2fd011'
part which doesn't match the ID property of<Response>
tag, but the one from the<Assertion>
tag. I did the same test with the other identity providers; they used theID
of the<Response>
tag, not the<Assertion>
.This results in no signature being found. This is just an observation. The weird part, in my opinion, is that the doesn't contain a value.
I'm currently stuck, any thought, new insight or push in the right direction is appreciated!
The text was updated successfully, but these errors were encountered: