-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
User-interactive Auth doesn't support SSO flows #5667
Comments
(we're working on this currently) |
it also means you can't add an email address to your account. |
not being able to delete devices is a security issue - if your device is compromised, without this you are SOL. |
I've drafted some notes on how I think this could be implemented at https://docs.google.com/document/d/1sA9cTKRE93TczvxuHgZ6q1A54xYtDVjmwsRu_K7vbvM. Steps from here include:
Clients will need to be updated to support using the fallback mechanism. I've raised this for riot-web as element-hq/element-web#12638. |
fixing #6705 is going to be a prerequisite for getting this working on mozilla.org's matrix server. |
I put this up as MSC2454: matrix-org/matrix-spec-proposals#2454. It is mostly the document from above, I tweaked a few things to clarify it (IMO). |
To guard against this possibility I think we'll need to store some information about what the client was trying to do at the time the session information is generated. I think this can consist of:
I think this can be encoded as the endpoint being queried, the HTTP method, and the item identifier(s). It might work that included these in the key to the sessions dictionary works (if any of these changes than essentially a new "session" would be formed), that could be confusing though. An alternative would be to store some of this information into the session itself and validate it. Providing the wrong information should likely result in a forbidden error. The code around this isn't used too widely, but this is a bigger change than I initially considered. Reasoning about this for the current case of password auth is a bit odd since it is a single stage, but @richvdh and I discussed this and came up with two things to protect against:
I suspect all of these changes are internal and do not require any spec modifications. |
A couple of thoughts that I need to ponder more (and don't want to forget about):
|
currently not.
the latter. It's possible to have a deployment where both SAML and password login are enabled. Client-side support may be patchy in this situation though.
I don't think so. When I initially did the design I wasn't thinking about fallback, and was initially considering how the non-fallback case would work. But then I realised that the flows I'd come up with were identical to the fallback case and we might as well give the endpoints the same names. Basically: I don't think we need to support non-fallback separately. |
This is done, minus #6705, but since that's a separate issue anyway I'm going to close this. |
This hasn’t been deployed yet, has it? Is there a timeline for when it will be deployed? Specifically, for the chat.mozilla.org instance. |
@sideshowbarker This has not been deployed yet, no. It should be in the next release. I don't believe we have a firm timeline for getting it onto chat.mozilla.org yet, but we're working on it! |
Hello, is this the reason why I can't activate key backups on my deployment using SSO login through keycloak via SAML ? (used this to configure: https://edenmal.moe/post/2019/Matrix-Synapse-SAML2-Login/). synapse/synapse/handlers/auth.py Line 844 in 5db2a59
I went through the github issues and wonder if that is a misconfiguration on my part or if this is due to this. |
@Talanor You probably need to disable passwords on your homeserver (see |
@clokep So there's no way to use SSO login for setting up key backups if password login is also enabled? Should enabling SSO automatically disable password logins, or should this be fixed so that it will work even with password logins enabled? |
I don't have a strong opinion on this, but my gut says no (since you might want to allow admins or someone else to login with a password instead of SSO -- this is a pretty common failure scenario).
I don't believe there's a bug in Synapse -- it might be a client issue that they seem to prefer passwords over SSO when offered both choices for UI Auth. Although if we don't have a password for them in Synapse, maybe we shouldn't be offering that as a choice? Anyway, if you think there's a change to be made please file a new issue! |
Sure, it's probably not an issue in Synapse. But Riot seems to be defaulting to password when available. We'd like to support passwords as well since many clients don't support SSO. But not all accounts have a password set in synapse. |
As an enterprise admin (not for matrix), I do want to restrict logins to SSO-only. Having SSO-only as a non default option would be fine. (In an enterprise, I want to be able to lock out the account if compromised, someone departs, etc.)
I'm not a Matrix admin, so I don't know the context of this login. I would want a secondary login to set server/domain options, or remove defacing entries, while my SSO was offline. IMO, a "break glass" process would be sufficient. This is a common challenge with SSO eco systems, but no standard way to resolve it has yet emerged. |
I'm going to lock this issue since it is getting very off topic. Please file separate issues if there can be improvements to the SSO configuration of Synapse. |
... which means you can't delete devices on systems that use SAML (element-hq/element-web#2465)
The text was updated successfully, but these errors were encountered: