Skip to content
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

MSC2284: Making the identity server optional during discovery #2284

Merged
merged 3 commits into from Nov 18, 2019

Conversation

turt2live
Copy link
Member

@turt2live turt2live commented Sep 6, 2019

@turt2live turt2live added the proposal A matrix spec change proposal label Sep 6, 2019
@turt2live turt2live changed the title Proposal to make the identity server optional during discovery MSC2284: Making the identity server optional during discovery Sep 6, 2019
Copy link
Contributor

@jryans jryans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems reasonable to me from a client perspective... The IS should (soon) be optional for all authentication flows, so it's only needed lazily for lookups and binding.

Clients can end up being configured with an invalid or inoperable identity server. This is
considered a feature by this proposal to allow for less intelligent clients to have their
identity server disabled. Intelligent clients could interpret the lack of identity server
as the homeserver/user asking that identity server functionality be disabled in the client.
Copy link

@joepie91 joepie91 Sep 6, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel like in the interest of infrastructure debuggability and general client UX, there should be a flag that indicates whether the identity server is intentionally disabled, so that intelligent clients can distinguish between this and an erroneous misconfiguration (or transient unavailability due to infrastructural issues).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure I agree. In terms of transient unavailability, users won't be able to log in in the first place because the homeserver information will also be missing. Spelling errors, structural problems, etc are easily debugged by a community member in a support channel - the problem should be obvious. For instance, if you end up with a user experience that doesn't involve the identity server you were expecting, you can probably guess that it has to do with your config. Hopefully people these days are still testing their configuration changes before going live.

The other point for defaulting to no identity server instead of wanting an explicit flag is to protect user privacy. Where possible, the spec should be heavily suggesting to clients that a default identity server not be used. When the spec says that lack of useful identity server information means that none is selected, the client can't reasonably default to an identity server which might be risky to the user. Not to mention a flag saying "I absolutely don't want to use an identity server" is more fiddly to implement, particularly when the interaction between users and homeservers is already insanely complicated during login.

@ara4n
Copy link
Member

ara4n commented Sep 6, 2019

This feels very sane indeed to me - we've been bitten multiple times by inexplicable client failures just because the IS was unavailable, and given an IS isn't even compulsory, an invalid IS shouldn't block anything.

@turt2live turt2live added phase:2 privacy-sprint Temporary label: privacy-related stuff labels Oct 9, 2019
jryans added a commit to matrix-org/matrix-js-sdk that referenced this pull request Nov 1, 2019
As discussed in MSC2284, this relaxes the identity server discovery to a
`FAIL_PROMPT` state so that clients can choose to warn and continue.

Part of element-hq/element-web#11102
Implements matrix-org/matrix-spec-proposals#2284
jryans added a commit to matrix-org/matrix-js-sdk that referenced this pull request Nov 1, 2019
As discussed in MSC2284, this relaxes the identity server discovery to a
`FAIL_PROMPT` state so that clients can choose to warn and continue.

Part of element-hq/element-web#11102
Implements matrix-org/matrix-spec-proposals#2284
@turt2live
Copy link
Member Author

This seems largely accepted by the spec core team and surrounding teams, so to try and push it forward/get more feedback:

@mscbot fcp merge

@mscbot
Copy link
Collaborator

mscbot commented Nov 1, 2019

Team member @turt2live has proposed to merge this. The next step is review by the rest of the tagged people:

No concerns currently listed.

Once at least 75% of reviewers approve (and none object), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

See this document for info about what commands tagged team members can give me.

@mscbot mscbot added proposed-final-comment-period Currently awaiting signoff of a majority of team members in order to enter the final comment period. disposition-merge labels Nov 1, 2019
@turt2live turt2live added privacy-sprint Temporary label: privacy-related stuff and removed privacy-sprint Temporary label: privacy-related stuff proposal-in-review labels Nov 1, 2019
Copy link
Member

@KitsuneRal KitsuneRal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm generally not a fan of adding prompts to UX but I agree that FAIL_ERROR is a bit too harsh and that client applications can do some further intelligence on whether/how they should interact with the user on the matter.

@mscbot mscbot added the final-comment-period This MSC has entered a final comment period in interest to approval, postpone, or delete in 5 days. label Nov 13, 2019
@mscbot
Copy link
Collaborator

mscbot commented Nov 13, 2019

🔔 This is now entering its final comment period, as per the review above. 🔔

@mscbot mscbot removed the proposed-final-comment-period Currently awaiting signoff of a majority of team members in order to enter the final comment period. label Nov 13, 2019
@turt2live
Copy link
Member Author

hello @mscbot, it is time.

@mscbot
Copy link
Collaborator

mscbot commented Nov 18, 2019

The final comment period, with a disposition to merge, as per the review above, is now complete.

@mscbot mscbot removed the final-comment-period This MSC has entered a final comment period in interest to approval, postpone, or delete in 5 days. label Nov 18, 2019
@turt2live turt2live merged commit f1ff31d into master Nov 18, 2019
@turt2live turt2live deleted the travis/msc/optional-is-discover branch November 18, 2019 17:15
turt2live pushed a commit to matrix-org/matrix-js-sdk that referenced this pull request Nov 26, 2019
As discussed in MSC2284, this relaxes the identity server discovery to a
`FAIL_PROMPT` state so that clients can choose to warn and continue.

Part of element-hq/element-web#11102
Implements matrix-org/matrix-spec-proposals#2284
turt2live pushed a commit to matrix-org/matrix-js-sdk that referenced this pull request Nov 26, 2019
As discussed in MSC2284, this relaxes the identity server discovery to a
`FAIL_PROMPT` state so that clients can choose to warn and continue.

Part of element-hq/element-web#11102
Implements matrix-org/matrix-spec-proposals#2284
@turt2live turt2live added the kind:maintenance MSC which clarifies/updates existing spec label Apr 20, 2020
@turt2live turt2live added spec-pr-missing Proposal has been implemented and is being used in the wild but hasn't yet been added to the spec and removed finished-final-comment-period labels May 1, 2021
@turt2live turt2live self-assigned this May 1, 2021
@turt2live
Copy link
Member Author

Historical implementation on this is here: matrix-org/matrix-js-sdk#1062

@turt2live turt2live added spec-pr-in-review A proposal which has been PR'd against the spec and is in review and removed spec-pr-missing Proposal has been implemented and is being used in the wild but hasn't yet been added to the spec labels May 2, 2021
@turt2live
Copy link
Member Author

Merged 🎉

@turt2live turt2live added merged A proposal whose PR has merged into the spec! and removed spec-pr-in-review A proposal which has been PR'd against the spec and is in review labels May 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
disposition-merge kind:maintenance MSC which clarifies/updates existing spec merged A proposal whose PR has merged into the spec! privacy-sprint Temporary label: privacy-related stuff proposal A matrix spec change proposal
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants