-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Added Keycloak OAuth2 Provider #4660
Conversation
Added missing CHANGES.md entry
@Mabenan thanks for this! Considering you know Keycloak and you've gone through the process of creating an OAuth provider, do you think it's possible to implement an OIDC Provider? How difficult would it be? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Mabenan Great PR! 🤯 I still need to test this, but I've left my initial comments.
The big difference between an generic oidc and the normal OAuths would be that we need to make a request to the .well-known endpoint of the service to get the correct endpoints. Because the endpoints for auth, token and userinfo are the only things that are different between the oauth servises. The Customizing would be |
Also we need to think about how we make it possible to have multiple generic oidc |
Right. It's a few extra API calls, but I don't think it should be too big of a deal.
Oh that's a great point... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Mabenan since 1.1.0, the Console has been moved to a separate repo. Would you be able to remove the front-end-related changes from this PR and put them over there? Sample OAuth2 files in the console repo:
- https://github.com/appwrite/console/blob/main/src/routes/console/project-%5Bproject%5D/auth/authentikOAuth.svelte
- https://github.com/appwrite/console/blob/main/src/lib/stores/oauth-providers.ts#L41-L44
- https://github.com/appwrite/console/blob/main/static/icons/dark/color/authentik.svg
- https://github.com/appwrite/console/blob/main/static/icons/light/color/authentik.svg
- https://github.com/appwrite/console/blob/main/static/icons/dark/grayscale/authentik.svg (let me double check if this is even needed)
- https://github.com/appwrite/console/blob/main/static/icons/light/grayscale/authentik.svg (let me double check if this is even needed)
Frontend Changes removed |
Any news on this, is something missing? |
Hi all. Any updates on this? Keycloak integration is essential for our clients. |
Any news? we need this |
{ | ||
if (empty($this->tokens)) { | ||
$headers = ['Content-Type: application/x-www-form-urlencoded']; | ||
$this->tokens = \json_decode($this->request( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm trying to test this, but I'm just getting false
back for the response from Keycloak. Any ideas what I configured incorrectly?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would withdraw this because of the new generell oicd provoder
What does this PR do?
Adds Keycloak OAuth2
Test Plan
Created Small Flutter Web Application with the following call
Account(client).createOAuth2Session(provider: "keycloak", success: baseUri.resolve("success.html").toString(), failure: baseUri.resolve("failure.html").toString());
Related PRs and Issues
#4653
Have you added your change to the Changelog?
Yes
Have you read the Contributing Guidelines on issues?
Yes