Skip to content
Snippets Groups Projects
  • Quentin Gliech's avatar
    08c56c3a
    Support getting the device ID explicitly from MAS (#18174) · 08c56c3a
    Quentin Gliech authored
    The context for this is that the Matrix spec allows basically anything
    in the device ID. With MSC3861, we're restricting this to strings that
    can be represented as scopes.
    Whilst this works well for next-gen auth sessions, compatibility/legacy
    sessions still can have characters that can't be encoded (mainly spaces)
    in them.
    
    To work around that, we added in MAS a behaviour where the device_id is
    given as an explicit property of the token introspection response, and
    remove it from the scope.
    Because we don't expect users to rollout new Synapse and MAS versions in
    sync, we needed a way to 'advertise' support for this behaviour: the
    easiest way to do that was through an extra header in the introspection
    response.
    
    On the longer term, I expect MAS and Synapse to move away from the
    introspection endpoint, and instead define a specific API for Synapse ->
    MAS communication.
    
    PR on the MAS side:
    https://github.com/element-hq/matrix-authentication-service/pull/4067
    Support getting the device ID explicitly from MAS (#18174)
    Quentin Gliech authored
    The context for this is that the Matrix spec allows basically anything
    in the device ID. With MSC3861, we're restricting this to strings that
    can be represented as scopes.
    Whilst this works well for next-gen auth sessions, compatibility/legacy
    sessions still can have characters that can't be encoded (mainly spaces)
    in them.
    
    To work around that, we added in MAS a behaviour where the device_id is
    given as an explicit property of the token introspection response, and
    remove it from the scope.
    Because we don't expect users to rollout new Synapse and MAS versions in
    sync, we needed a way to 'advertise' support for this behaviour: the
    easiest way to do that was through an extra header in the introspection
    response.
    
    On the longer term, I expect MAS and Synapse to move away from the
    introspection endpoint, and instead define a specific API for Synapse ->
    MAS communication.
    
    PR on the MAS side:
    https://github.com/element-hq/matrix-authentication-service/pull/4067