Skip to content

Add draft/extoidc and draft/OBJECTSTORAGE - #597

Open
reesericci wants to merge 6 commits into
ircv3:masterfrom
reesericci:extoidc-objectstorage
Open

Add draft/extoidc and draft/OBJECTSTORAGE#597
reesericci wants to merge 6 commits into
ircv3:masterfrom
reesericci:extoidc-objectstorage

Conversation

@reesericci

@reesericci reesericci commented Apr 3, 2026

Copy link
Copy Markdown

This pull request provides a secure and standardized flow for authenticating external services using OpenID Connect over an IRC backchannel (no web redirects!), as well as secure object storage provider discovery and authentication using extoidc, as well as resumable uploads using tus.io.

Stemmed from:

#562
#562 (comment)
#562 (comment)

@ValwareIRC ValwareIRC left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Just curious, how comes you didn't go with a SASL mechanism? (I just woke up, sorry if dumb question)

Comment thread extensions/extoidc.md Outdated
@reesericci

Copy link
Copy Markdown
Author

Just curious, how comes you didn't go with a SASL mechanism? (I just woke up, sorry if dumb question)

It implicitly uses SASL because the authentication backchannel is over a (presumably SASL-authenticated) IRC connection

@reesericci reesericci changed the title Add draft/EXTOIDC and draft/OBJECTSTORAGE Add draft/extoidc and draft/OBJECTSTORAGE Apr 3, 2026
@reesericci
reesericci requested a review from ValwareIRC April 3, 2026 14:44
@ValwareIRC

Copy link
Copy Markdown
Contributor

it would be really nice if you could include some normative examples of how the flow might look to the client and server and third-party

@anotherdoesnm

Copy link
Copy Markdown

well i think extoidc can be replaced with just SASL OAUTHBEARER?
more: https://emersion.fr/blog/2022/irc-and-oauth2/
and storage is... draft/FILEHOST?

@reesericci

reesericci commented Apr 3, 2026

Copy link
Copy Markdown
Author

it would be really nice if you could include some normative examples of how the flow might look to the client and server and third-party

Can do, I'll make some diagrams.

well i think extoidc can be replaced with just SASL OAUTHBEARER?

No, that standard is to allow for logging into an IRC server with OAuth, not for the IRC server to expose an OIDC directory. This is for logging into external services (ie a file host) securely with your IRC connection, not for establishing that IRC connection.

and storage is... draft/FILEHOST?

Please read before commenting. This was created explicitly to address security issues in FILEHOST.

@reesericci

Copy link
Copy Markdown
Author

Ok I added some normative diagrams that should clear up the flow for folks. Let me know what you think.

@emersion

emersion commented Apr 5, 2026

Copy link
Copy Markdown
Contributor

I've written my thoughts about this PR here: #562 (comment)

@Celelibi

Celelibi commented Apr 5, 2026

Copy link
Copy Markdown

I could get behind this if I get convinced it's the minimum complexity for the client protocol.
I'm not well versed in OAuth/OIDC and I'm not sure I understand the purpose of the whole dance to confirm the usage of the token.
Couldn't we at least send all the information to the client at once when asking for a confirmation? At best, could we remove this confirmation entirely? Why do we need to confirm on something we explicitly asked anyway?

Also, why does it need to be OIDC explicitly on the client side? Couldn't it be an opaque token?
I know you mentioned token signature to check for non-modification here: #562 (comment)
But does the client need to do that? It's very likely that the connection uses TLS anyway. So this seem to add very little security. And if it's not on TLS... well, you're probably already screwed anyway.

I see no mention of the service to request a token for. This information could allow the server to generate tokens differently depending on the external service. Even assuming every external service uses OIDC, bugs and implementation subtleties always come up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants