che-server/dockerfiles
David Festal 534a961e84
Provide better compatibility with alternate OIDC providers (#11090)
Currently in Che there are still a number of requirements in upstream that are not required by the OIDC specification, so that Che still cannot be used with a number of OIDC compliant providers.
For example, in order to have Che working with the [`node-oidc-provider`](https://github.com/panva/node-oidc-provider), the following changes were necessary:

- Remove the requirement to have the email as a claim in the JWT access
token: this is not required the specification and is not supported by a
number of OIDC providers. Normally, the Id token contains such claims.

  So now if the email is not in the JWT token the first time the user connects to Che, ten the email is retrieved from the OIDC provider through its `user-profile` endpoint.

- Explicitely specify the the `openid email profile` scope when requesting the access token. Because OIDC providers, when answering to the `userInfo` endpoint, are expected to return claims that corresponds to the scopes of the access token. So if an access token has the `openid` scope only, the `userinfo` might return no claim at all (according to the specification).

  Until now it was working since keycloak allows adding claims to the returned tokens anyway.

- Allow supporting fixed redirect Uris: most OIDC providers support having a list of redirect URIs to come back to after the authorization step.  But these authorized Uris don't necessarily support wildcards or prefix. Che doesn't support this currently, and these changes introduce 2 fixed callback HTML pages that redirect to the Dashboard / IDE URL of the final page we want to come back to after authentication. This makes Che compatible with more OIDC providers

  We introduced a new boolean property to enable / disable fixed redirect URLs:
  `che.keycloak.use_fixed_redirect_urls` 
  whose default value is `false`

- The previous points required some light changes in the Keycloak Javascript adapter file, that we will submit as a PR to the Keycloak project. I, the meantime the `OIDCKeycloak.js` file is still used, but has been updated to be now based on the `keycloak.js` file of the last `4.5.0-final` Keycloak release. This will make this Keycloak PR easier to get accepted.

  Please keep in mind that this version upgrade only impacts the alternate OIDC provider case: when using a real Keycloak server, Che *always uses the `keycloak.js` file provided by the Keycloak server*. 


Signed-off-by: David Festal <dfestal@redhat.com>
2018-10-10 20:52:35 +02:00
..
action Fix remaining files with licenses (#10746) 2018-08-21 10:25:45 +03:00
base introduce RC version for pre-release testing (#11477) 2018-10-04 14:28:19 +03:00
bats Fix remaining files with licenses (#10746) 2018-08-21 10:25:45 +03:00
che Fix remaining files with licenses (#10746) 2018-08-21 10:25:45 +03:00
cli RELEASE: Set next development version (#11434) 2018-10-04 18:25:39 +03:00
dev introduce RC version for pre-release testing (#11477) 2018-10-04 14:28:19 +03:00
dir Fix remaining files with licenses (#10746) 2018-08-21 10:25:45 +03:00
init Provide better compatibility with alternate OIDC providers (#11090) 2018-10-10 20:52:35 +02:00
ip Fix remaining files with licenses (#10746) 2018-08-21 10:25:45 +03:00
keycloak Fix remaining files with licenses (#10746) 2018-08-21 10:25:45 +03:00
lib RELEASE: Set next development version (#11434) 2018-10-04 18:25:39 +03:00
mount Fix unison build 2018-09-20 10:20:16 +02:00
postgres Fix remaining files with licenses (#10746) 2018-08-21 10:25:45 +03:00
test Fix remaining files with licenses (#10746) 2018-08-21 10:25:45 +03:00
theia Invalidate cache if remote theia is changed 2018-10-10 11:50:27 +02:00
README.md Use https instead of http in web links. (#4276) 2017-03-01 14:58:58 +02:00
build.include Fix remaining files with licenses (#10746) 2018-08-21 10:25:45 +03:00
build.sh Fix remaining files with licenses (#10746) 2018-08-21 10:25:45 +03:00
pom.xml RELEASE: Set next development version (#11434) 2018-10-04 18:25:39 +03:00

README.md

Eclipse Che - Dockerfiles

This che-dockerfiles repository is where all dockerfiles for Che Launcher, Che's CLI and Che's Stacks are hosted.

Eclipse Che

Join the chat at https://gitter.im/eclipse/che Eclipse License Build Status

https://www.eclipse.org/che/. Next-generation Eclipse platform, developer workspace server and cloud IDE. Che defines workspaces that include their dependencies including embedded containerized runtimes, Web IDE, and project code. This makes workspaces distributed, collaborative, and portable to run anywhere on a desktop or a server ... Read More

Eclipse Che

Getting Started

You can run Che in the public cloud, a private cloud, or install it on any OS. Che has been tested on Ubuntu, Linux, MacOS and Windows. The step by step guide will get you going.

The che repository is where we do development and there are many ways you can participate, for example:

Customizing

There are many ways to customize Che out-of-the-box including stacks, templates, commands, IDE extensions, server-side extensions plugins, assemblies, RESTful APIs, and editors.

Contributing

If you are interested in fixing issues and contributing directly to the code base, please see How to Contribute. It covers:

Feedback

  • Support: You can ask questions, report bugs, and request features using GitHub issues.
  • Roadmap: We maintain the roadmap on the wiki.
  • Weekly Meetings: Join us on a hangout.

License

Che is open sourced under the Eclipse Public License 1.0.