adding support for SSO based on oauth2-proxy#58460
Conversation
9bd4c7d to
f496379
Compare
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
f496379 to
533daa9
Compare
6787032 to
7c91ac6
Compare
9b7970c to
c324d6e
Compare
adk3798
left a comment
There was a problem hiding this comment.
LGTM, not really any complaints about the code, although I'm not really able to verify if the configs being built are correct. Is there some way we could come up with an integration test for this since it's such a large feature?
| Deploying oauth2-proxy | ||
| ====================== | ||
|
|
||
| In Ceph releases starting from Squid, the `oauth2-proxy` service introduces an advanced method |
There was a problem hiding this comment.
we should be a bit careful with this as it's not guaranteed this makes it into the initial squid release
There was a problem hiding this comment.
@adk3798 I agree, what alternative do you propose in this case? something like 19.x?
There was a problem hiding this comment.
I'd just leave it out and include an additional docs commit in the squid backport that says this and then in main we can say it's in 19.2.z once we actually know which z release it will be.
|
jenkins test rook e2e |
|
Failures:
Run seemed all good other than for the one PR causing the nfs failures |
d28cde3 to
c237467
Compare
|
jenkins retest this please |
0a607f1 to
5fcefa9
Compare
|
jenkins retest this please |
adding new oauth2-proxy service. The enable_auth flag enables SSO authentication via the oauth2-proxy service. The user must ensure the oauth2-proxy service is deployed before enabling this flag in the mgmt-gateway service. FQDN related changes: previously, we were obtaining the FQDN using a call to the Python socket library run inside the container. While this generally works, the FQDN returned inside a container can sometimes differ from the one obtained outside the container. This discrepancy could cause some issues. To ensure consistency, we now use the FQDN from the inventory, which provides the correct value as recognized on the host. Signed-off-by: Redouane Kachach <rkachach@ibm.com>
|
jenkins test rook e2e |
|
jenkins test make check |
|
jenkins test dashboard |
1 similar comment
|
jenkins test dashboard |
|
jenkins test rook e2e |
|
jenkins test dashboard cephadm |
|
jenkins test rook e2e |
|
jenkins test dashboard cephadm |
|
jenkins test dashboard |
1 similar comment
|
jenkins test dashboard |
|
jenkins test rook e2e |
|
Hello, I tested this using keycloak as IdP, I tried adding "redirect_url" in config itself and it came up as expected. Thanks |
Thanks Afreen, latest code should add that field automatically 👍 |
|
jenkins test rook e2e |
|
jenkins test dashboard |
|
jenkins test dashboard cephadm |
|
jenkins test dashboard |
This PR builds on top of the two previous ones: #57535 and #58402. It inroduces the new service
oauth2-proxy(the open source project) which provides OIDC support out of the box. In combination with themgmt-gatewaythis service provides a seamless SSO to access all the Ceph managment backend services (Ceph Dashboard and monitoring stack).Changes included in this PR:
oauth2-proxynew serviceFollowing diagram depicts the new architecture:
Following are the steps to setup working environment in this case using
dexidp for testing purpose1) Run keycloak server using the following command
create a new realm and configure a user with 'admin' role following the steps from the docs
Alternatively, users can use dex as idp with the following config file:
run dex server:
2) Configure mgmt-gateway service
Wait for all the services to get reconfigured (it takes less than 1min)
3) Configure oauth2-proxy service
Following is an example of spec file for Keycloak client, in this case keycloak is running on the node with the ip
192.168.100.1:Deploy the service:
Wait for all the services to get reconfigured (it takes less than 1min)
4) Open a browser and visit
https://<mgmt-gw-node-ip>Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an
xbetween the brackets:[x]. Spaces and capitalization matter when checking off items this way.Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windowsjenkins test rook e2e