Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FEAT: Open ID Connect authentication #4010

Open
wants to merge 20 commits into
base: develop
Choose a base branch
from

Conversation

oechsler
Copy link

Continuation of: #2630

  • Merge develop into the feature branch, resolving conflicts
  • Fix issues with the settings list template, where the oidc-config would have the text of the default-site

Tested with Authentik 2024.8.2

P.S.: I hope we can get this finally merged! 🤣

marekful and others added 15 commits February 24, 2023 15:15
* add `oidc-config` setting allowing an admin user to configure parameters
* modify login page to show another button when oidc is configured
* add dependency `openid-client` `v5.4.0`
* add backend route to process "OAuth2 Authorization Code" flow
  initialisation
* add backend route to process callback of above flow
* sign in the authenticated user with internal jwt token if internal
  user with email matching the one retrieved from oauth claims exists

Note: Only Open ID Connect Discovery is supported which most modern
Identity Providers offer.

Tested with Authentik 2023.2.2 and Keycloak 18.0.2
@oechsler oechsler changed the title FEAT: Open ID Cconnect authentication FEAT: Open ID Connect authentication Sep 19, 2024
@CrazyWolf13
Copy link

It's probably worth adding those PRs:

Seems like there are multiple PRs implementing the same feature, it's probably the best to wait for @jc21 to decide which one to merge.

@Shocktrooper
Copy link

@CrazyWolf13 This is a continuation of the abandoned #2630 PR and #3952 was done as part of this PR it looks like. We just need @jc21 to take a look and merge if everything is good

@zanda8893
Copy link

Any update on this? I would love to see it merged

@jc21
Copy link
Member

jc21 commented Oct 30, 2024

There are conflicts, and CI won't build you a docker image until they're resolved

@oechsler
Copy link
Author

There are conflicts, and CI won't build you a docker image until they're resolved

Thanks for clarifying, I will resolve them later today.

@jcebrianalonso
Copy link

I'm glad this PR will be finally merged! Thanks a lot for the effort of all the people involved @jc21 @oechsler @Shocktrooper

@jc21
Copy link
Member

jc21 commented Oct 30, 2024

Yes many thanks for the contribution but don't count your chickens just yet. This is a big PR and it will need thorough testing both with OIDC and without. I'd feel happier if there was some cypress tests for both scenarios as well.

Besides Authentik, can we get this tested with other providers too?

Also some documentation will need to be added around this

@@ -21,6 +21,8 @@
"moment": "^2.29.4",
"mysql2": "^3.11.1",
"node-rsa": "^1.0.8",
"nodemon": "^2.0.2",
Copy link
Member

Choose a reason for hiding this comment

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

nodemon is already in devDependencies - adding it here is unnecessary and will add bloat to the final image

as it is already in devDependencies
@oechsler
Copy link
Author

oechsler commented Oct 31, 2024

Yes many thanks for the contribution but don't count your chickens just yet. This is a big PR and it will need thorough testing both with OIDC and without. I'd feel happier if there was some cypress tests for both scenarios as well.

Besides Authentik, can we get this tested with other providers too?

Also some documentation will need to be added around this

@jc21 - Thank you very much for the review and your feedback on this topic!

Could you possibly elaborate a bit more on what the tests should specifically cover? I don’t have much experience with the Cypress framework, but I’m more than willing to invest the time needed to bring this PR to completion.

As for testing with other OIDC providers, I’d leave that to others in this thread for now, as I currently only have Authentik running. However, with the new Docker test image, it should be straightforward to set up an instance.

I’m also happy to take on the documentation. Given that OIDC isn’t always the most straightforward topic, I agree it would be beneficial to provide clear guidance. Should we add a dedicated section to the documentation for this, or integrate it into an existing section?

- Nonetheless I would also be happy if somebody else could lend a hand 😉

@nginxproxymanagerci
Copy link

Docker Image for build 2 is available on
DockerHub
as nginxproxymanager/nginx-proxy-manager-dev:pr-4010

Note: ensure you backup your NPM instance before testing this image! Especially if there are database changes
Note: this is a different docker image namespace than the official image

@oechsler oechsler requested a review from jc21 November 14, 2024 14:51
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.

7 participants