zinc-collective / convene

An Operating System for the Solidarity Economy
https://convene.zinc.coop
Other
56 stars 19 forks source link

Furniture: Videobridge - Only allow access to the underlying Jitsi instance through Convene #156

Closed zspencer closed 10 months ago

zspencer commented 3 years ago

Adds on to: https://github.com/zinc-collective/convene/issues/40

Feature: Comlink Security
  In order to be comfortable discussing private or sensitive topics within a Convene Room
  I want the Comlinks to only be accessible through the Convene platform

  Scenario: Navigating to an embedded Comlink directly
    Given a Room with a Comlink
    When I attempt to access that Comlink directly via it's URL
    Then I receive no data
anaulin commented 3 years ago

A quick note dump from the work and thinking we've done on this so far:

  1. It is possible to secure Jitsi itself, using its jitsi-meet-tokens add-on to require JWTs.

    • I managed to get a local Jitsi installation secured in this way, using the instructions listed on https://github.com/jitsi/lib-jitsi-meet/issues/1082#issuecomment-620641912
    • It felt brittle and fussy, and the documentation is very partial (hence having to refer to someone's comment on a GitHub issue...). For example, one needs to edit lua source code to get things to compile.
    • Feels doable, but not solid or long-term maintainable.
  2. We could secure things at the web-server or proxy level.

    • There is an Nginx JWT module, but it is available only with Nginx Plus, which is paid.
    • We could run a HAProxy in front of our Jitsi Nginx, and secure that with JWT, possibly using https://github.com/haproxytech/haproxy-lua-jwt .
    • This decouples us more from Jitsi, which is nice if we ever want to replace it with a different video bridge system.
    • Feels doable and potentially less brittle than path 1 above. We could use this to secure other Zinc offerings, not just Convene. However, it does involve running yet another service as part of our Convene chain.
  3. A good way forward might be to delegate running the actual videobridge (and its securing) to a group that specializes in it. A medium-term idea in this vein would be to reach out to https://www.org.meet.coop/ to explore the possibility of building Convene as a product on top of their existing videoconference service (e.g. maybe with Zinc as an operational member of Meet, https://www.org.meet.coop/getinvolved.html).

anaulin commented 3 years ago

This discussion / decision feels somewhat related with whatever we decide as the future path for our underlying videobridge service:

Do we want to continue investing in our ability to host Jitsi?

Do we want to explore other technologies instead of Jitsi? Some possible alternatives: Big Blue Button, Kurento, Ant Media Server

Do we want to find a provider that hosts the videobridge and we build on top of that? (Can we afford it? Do we want to pay for this?)

anaulin commented 3 years ago

We are also exploring the possibility of teaming up with Meet.coop and have Meet's Big Blue Button infrastructure be our video infrastructure. Nascent conversation context here: https://forum.meet.coop/t/zinc-coop-looking-to-join-forces-on-video-infrastructure/453/5

anaulin commented 3 years ago

Not sure if we should start a separate issue for tracking prototyping a proof-of-concept with Meet.coop's BBB instance, that feels like it might be cleaner, but not sure what our GitHub issue structure is for that.

For now, here are some notes related to that, to help guide us in our own "proof of concept" against a BBB instance:

Heads up about being careful reading the BBB API docs: some of the stuff is for the old Flash client, and not all of those features have been migrated to the new BBB version yet.

zspencer commented 3 years ago

Perhaps a "BBB Video" furniture issue? That way we can start to disambiguate between a "Jitsi Video" piece of furniture and a BBB one?

anaulin commented 3 years ago

Perhaps a "BBB Video" furniture issue?

I like this! And I like the idea to start thinking of video as "just a piece of furniture", to clarify that Convene is not necessarily about video, but about "tools for your group, of which video is one".

I'll start a new issue.

anaulin commented 10 months ago

Closing this as we no longer have a Videobridge furnigizmo.