#3016 Support OIDC token for API authentication and authorisation
Closed by ryanlerch. Opened by cverna.
cverna/pagure oidc_api_support  into  master

Download 3016.patch

Add support to use OIDC token for pagure's API.

1 new commit added

  • Create the OIDC scopes for the token.

False

Also, OIDC, not OICD.

1 new commit added

  • Fix OICD to OIDC

1 new commit added

  • Support specific project scopes

rebased onto 56bb1f24f4b887517bacb7a21e852c3ccb7a5a79

2 new commits added

  • We need a specific OIDC token error message
  • Rework how we validate the token.

1 new commit added

  • Update the documentation

rebased onto a68b3545c7d8bc85f0eb88520b1d705a1219737e

Note that for OIDC (rather OAuth2), you want the prefix to be "Bearer ".
So "Authorization: Bearer ".

I would suggest allowing both "legacy" and OIDC/OAuth2 tokens at the same time, just not allow creating new legacy tokens.
This way, there's a simple migration path, where legacy tokens will be replaced with OAuth2 ones as they expire.

I wanted to keep compatibility with the existing token system so that we don't have to update the documentation etc ...

I would suggest allowing both "legacy" and OIDC/OAuth2 tokens at the same time, just not allow creating new legacy tokens.
This way, there's a simple migration path, where legacy tokens will be replaced with OAuth2 ones as they expire.

Sure that's a good idea :thumbsup:

rebased onto 2dfb832a8f1e54fc649ea047e2b49e1b98faf2c7

Waiting for https://pagure.io/fedora-infrastructure/issue/6751 to do end to end test

@cverna Looks like that infra issue is done?

@ngompa , yes unfortunately to test this feature, we also need a patch to ipsilon.

@cverna Any progress on this?

@ngompa unfortunately no, for this PR to work we still need change on the ipsilon side and I honestly don't think I will have time to look at it.

I have opened a ticket in ipsilon in order to track what is required (https://pagure.io/ipsilon/issue/307). If someone wants to do it :)

@pingou I think this might be part of what was being asked for in #4719? This PR will need work to bring it up to current codebase, I suppose...

I don't think this is needed anymore now that Pagure has its own API key system? Do we want to close this, @wombelix @cverna ?

Metadata Update from @wombelix:
- Request assigned

I take the PR and verify it. Right now my understanding is that we still going to need (something like) this to integrate with other services. https://pagure.io/pagure/issue/4719 is one example and I'm highly interested to onboard more CI types in near future.

Awesome, yeah I think we're going to need this still.

This project has moved to https://forge.fedoraproject.org/apps/pagure. As part of the migration, all open pull requests on pagure.io have been closed. If you'd like to continue working on this, please fork the repository on the new forge and re-submit your PR there.

Pull-Request has been closed by ryanlerch

Metadata