ivoa-oauth: an SSO-next based approach to allowing non-browser-based VO clients to use OAuth 2.x/OIDC
Mark Taylor
m.b.taylor at bristol.ac.uk
Wed Oct 9 17:11:15 CEST 2024
James,
I'm very pleased to see somebody having a go at this.
I think it would be good to have it presented at the Interop,
but if not I'll talk to you about it in Malta anyway.
I don't have much actual experience with OAuth2 and OIDC,
though I've waded through some of the specifications a few times.
So I don't understand all the details, but a few comments:
- The scheme name "ivoa-oauth2" in the WWW-Authentication challenge
should be fine if you think it's a better choice than "ivoa-oauth",
I don't forsee any restriction to alphabetic names here.
- There may be devils in the detail of the "allowed_domains" response;
will it just be hostnames or something at a coarser/finer level?
Hopefully there's some existing standards text that could be co-opted
here (maybe the Origin concept from RFC6454).
- It's not clear to me at what stage the user supplies a username
and password - I assume that happens somewhere?
Is it when the client registers with the registration endpoint
as per Section 2 of RFC6749? If so (and, probably, in any case)
it will be necessary to specify exactly how this authentication
is done, e.g. mandating Basic Auth.
- I'm surprised that having got the token you present it in the
Authorization header (in the general case) using the scheme name
"ivoa-auth" rather than just "bearer"; I'd have thought that
having got the thing you would just treat it like a standard
bearer token. But there may be some good reason for this.
- If you (or somebody else) can provide a prototype service implementing
this, I'd aim to attempt prototype client support for it in topcat
on a fairly short timescale.
Mark
On Wed, 9 Oct 2024, James Tocknell via grid wrote:
> Hi All
>
> I've written a draft idea for how to allow VO clients to use OAuth 2.x/OIDC to access VO resources.
> I'm happy to talk about this at the Interop (I'll be at both ADASS and the Interop this year), or discuss it over the breaks.
> I've not as yet implemented any of this, but due to needing to do some work related to some of our ancillary non-VO services to work with OAuth 2, and from previous projects, it shouldn't take too long to implement both on the client and the (resource) server side, as this tries as much as possible to align with existing libraries that I've used. I'd be interested especially in opinions from those who are already using OAuth 2.x/OIDC (I know the ESO archive and Rubin do to some extent), as I'm aiming for something that bridges the gap between existing implementations, rather than requiring a whole bunch of effort to implement.
>
> Regards
> James
--
Mark Taylor Astronomical Programmer Physics, Bristol University, UK
m.b.taylor at bristol.ac.uk https://www.star.bristol.ac.uk/mbt/
More information about the grid
mailing list