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

[WFLY-15260] Support for securing the management console with OIDC #506

Merged
merged 1 commit into from
Jun 2, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
138 changes: 138 additions & 0 deletions elytron/WFLY-15260_oidc_management_console.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
= WFLY-15260 Securing the management console with OIDC
:author: Farah Juma
:email: [email protected]
:toc: left
:icons: font
:idprefix:
:idseparator: -

== Overview

With the Keycloak OpenID Connect (OIDC) adapter, it was possible to secure the management console
using OIDC. When accessing the management console, the user would get redirected to the Keycloak
login page, log in with their credentials, and get redirected back to the management console upon
successful authentication. It was also possible for the user to log out of the console.

This RFE is to add the ability to secure the management console when using the native support for
OIDC.

== Issue Metadata

=== Issue

* https://issues.redhat.com/browse/WFLY-15260[WFLY-15260]

=== Related Issues

* https://issues.redhat.com/browse/WFLY-15485[WFLY-15485]
* https://issues.redhat.com/browse/EAP7-1796[EAP7-1796]

=== Dev Contacts

* mailto:{email}[{author}]

=== QE Contacts

TBD

=== Testing By
// Put an x in the relevant field to indicate if testing will be done by Engineering or QE.
// Discuss with QE during the Kickoff state to decide this
* [ ] Engineering

* [ ] QE

* TBD

=== Affected Projects or Components

* HAL
* WildFly Elytron
* WildFly

=== Other Interested Projects

=== Relevant Installation Types
// Remove the x next to the relevant field if the feature in question is not relevant
// to that kind of WildFly installation
* [x] Traditional standalone server (unzipped or provisioned by Galleon)

* [x] Managed domain

* [x] OpenShift s2i

* [x] Bootable jar

== Requirements

=== Hard Requirements

* It will be possible to secure the management console using the native support for OIDC.
** A new `secure-server` resource will be added to the `elytron-oidc-client` subsystem. This will
be similar to the `secure-server` resource from the previous `keycloak` subsystem.
** The steps to secure the management console with OIDC will be very similar to the steps
that were previously used with the Keycloak OIDC adapter (i.e., configure a `secure-deployment`
to protect the management interface using bearer-only authentication, configure a `secure-server`
to publish the OIDC configuration for the management console).
** The previous `keycloak` subsystem published the OIDC configuration to be used for the
management console via the http://localhost:MANAGEMENT_PORT/keycloak/adapter/wildfly-console/index.html
endpoint. HAL would access this endpoint and if it found OIDC configuration, HAL would then
redirect to the Keycloak login page. Similarly, the `elytron-oidc-client` subsystem will publish the
OIDC configuration to be used for the management console to a new endpoint (e.g.,
http://localhost:MANAGEMENT_PORT/elytron-oidc-client/wildfly-console/index.html). HAL will need to be
updated to access this endpoint and if it finds OIDC configuration, HAL would then
redirect to the OIDC provider login page.
* It will be possible to log out of the management console after having logged in with OIDC.

Choose a reason for hiding this comment

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

Just local logout of the console, or the complete OIDC logout?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think that with the existing support, logging out resulted in the complete OIDC logout. So the idea would be to do the same here.

Choose a reason for hiding this comment

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

Will the logout have effect also on an application deployed into EAP secured by OIDC when we are logged in with the same user?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, this would also affect an application secured by OIDC with the same user.



=== Nice-to-Have Requirements

=== Non-Requirements

Like with the previous Keycloak OIDC adapter, the ability to secure the management console
with OIDC will only be supported for standalone mode. Domain mode won't be supported.

== Backwards Compatibility

No backwards compatibility concerns.

=== Default Configuration

No changes to the default configuration.

=== Importing Existing Configuration

N/A

=== Deployments

N/A

=== Interoperability

//== Implementation Plan
////
Delete if not needed. The intent is if you have a complex feature which can
not be delivered all in one go to suggest the strategy. If your feature falls
into this category, please mention the Release Coordinators on the pull
request so they are aware.
////

== Security Considerations

This is a security RFE.

== Test Plan

Tests will be added to the WildFly testsuite to verify that the management console
can be secured successfully with OIDC. Tests for logging out and tests that make use
of RBAC will also be added.

== Community Documentation

A new section will be added to the Elytron OIDC Client documentation that describes how
to secure the management console using OIDC.

== Release Note Content

It is now possible to secure the management console with OpenID Connect.