Page MenuHomePhabricator

[Tunnelbroker] Authenticate connecting devices
ClosedPublic

Authored by kamil on Aug 22 2023, 10:46 AM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Nov 22, 11:08 AM
Unknown Object (File)
Fri, Nov 22, 6:35 AM
Unknown Object (File)
Fri, Nov 22, 5:03 AM
Unknown Object (File)
Fri, Nov 22, 4:58 AM
Unknown Object (File)
Fri, Nov 22, 4:56 AM
Unknown Object (File)
Sun, Nov 17, 6:10 AM
Unknown Object (File)
Tue, Oct 29, 7:10 AM
Unknown Object (File)
Sun, Oct 27, 2:54 AM

Details

Summary

When a device starts a session with tunnelbroker, verify
the device before continuing the session.

https://linear.app/comm/issue/ENG-3977

Depends on D8916

Test Plan
  • Start identity service, tunnelbroker
cd services/commtest
cargo test --test identity_tunnelbroker_tests

Should see logs in tunnelbroker that the device was autheticated successfully

Diff Detail

Repository
rCOMM Comm
Lint
No Lint Coverage
Unit
No Test Coverage

Event Timeline

Harbormaster returned this revision to the author for changes because remote builds failed.Aug 22 2023, 10:48 AM
Harbormaster failed remote builds in B22027: Diff 30240!
Harbormaster returned this revision to the author for changes because remote builds failed.Aug 22 2023, 10:53 AM
Harbormaster failed remote builds in B22029: Diff 30242!

LGTM, letting others review as well

This revision is now accepted and ready to land.Aug 28 2023, 12:23 AM
services/tunnelbroker/src/identity/mod.rs
11–27 ↗(On Diff #30240)

I'll likely refactor this later to be in grpc_clients, as this will be a common call from services...

Done in https://phab.comm.dev/D9015

@kamil, would you mind commandeering this revision?

kamil edited reviewers, added: jon; removed: kamil.
This revision now requires review to proceed.Sep 8 2023, 10:35 AM
This revision is now accepted and ready to land.Sep 9 2023, 12:55 PM
services/tunnelbroker/src/config.rs
26 ↗(On Diff #31124)

You can do shorter form. The default_value_t expects that you already provided correct type (String in this case) while default_value tries to convert it (&str -> String in this case)

services/tunnelbroker/src/identity/mod.rs
11 ↗(On Diff #31124)

I remember that Jon moved this function to shared/grpc_clients/src/identity/unauthenticated/client.rs. We might want to add this crate as dependency and use it instead.

You can do it in a separate diff, though.

26 ↗(On Diff #31124)

The same comment about return as below

services/tunnelbroker/src/websockets/session.rs
98 ↗(On Diff #31124)

I don't think you need to do return.
Rust functions automatically return last expression, unless it ends with semicolon.

You can check for such warnings by running Clippy linter: cargo clippy (you might need to install it)

michal added a subscriber: michal.
michal added inline comments.
services/tunnelbroker/src/websockets/session.rs
79 ↗(On Diff #31124)

This should probably be error! right?

thanks @michal and @bartek for feedback!

services/tunnelbroker/src/identity/mod.rs
11 ↗(On Diff #31124)
services/tunnelbroker/src/websockets/session.rs
79 ↗(On Diff #31124)

yes

98 ↗(On Diff #31124)

thanks for suggestion