Very slick. Thanks for the extra flexibility. Looking forward to the PR

Mike

On Wed, Apr 16, 2025 at 12:54 PM Alex Dutra <alex.du...@dremio.com.invalid>
wrote:

> Hi again,
>
> As a follow-up, I was able today to make it possible for each realm to be
> dynamically authenticated by either the internal token endpoint, or any of
> the configured OIDC tenants.
>
> So, I take back my previous statement about the impossibility to mix
> internal and external authentication for the same realm.
>
> The following kind of realm configurations should therefore be possible:
>
>    - Realm A: internal auth only, with RSA key pair
>    - Realm B: internal or external auth; internal with shared secret,
>    external with IDP X
>    - Realm C: external auth only, with IDP X or Y
>
> I hope that this extra flexibility will make it easier for you to adapt to
> Quarkus OIDC.
>
> Thanks,
>
> Alex
> Alex
>
> On Wed, Apr 16, 2025 at 3:26 PM Alex Dutra <alex.du...@dremio.com> wrote:
>
> > Hi Mike,
> >
> > My current work makes it possible to define if the authentication is
> > *internal* (using the internal token endpoint + custom auth mechanism) or
> > *external* (using an external IDP + Quarkus OIDC extension).
> >
> > Furthermore, the authentication can be defined on a global level, *then
> > overridden on a per-realm basis*. Combined with the fact that Quarkus
> > OIDC also supports multi-tenancy, my work should make it possible to
> > handle, for example, the following configuration:
> >
> >    - Realm A: internal auth, RSA key pair M
> >    - Realm B: internal auth, RSA key pair N
> >    - Realm C: internal auth, Symmetric key, secret S
> >    - Realm D: external auth, IDP X
> >    - Realm E: external auth, IDP X or Y
> >
> > However:
> >
> > I want to make sure that it would still be
> >> possible to use different authn mechanisms for different requests in the
> >> same realm.
> >
> >
> > *It won't be possible to mix internal and external authentication for the
> > same realm.* I think this would complicate things a lot and I don't see a
> > good reason to do this.
> >
> > That said, for realms that would opt for external auth, it will be
> > possible to use more than one IDP per realm, since Quarkus OIDC is
> > multi-tenant and has the ability to select tenants based on various
> > criteria, such as the token issuer URL. This is what Realm E illustrates
> in
> > my example above.
> >
> > Is that OK for you?
> >
> > Thanks,
> >
> > Alex
> >
> >
> > On Tue, Apr 15, 2025 at 10:32 PM Michael Collado <collado.m...@gmail.com
> >
> > wrote:
> >
> >> Hi Alex
> >>
> >> I'm going through the PR now and I think the Quarkus security approach
> >> seems fine. I was actually thinking of working on this previously
> myself.
> >>
> >> > This shall be done by  implementing a new HttpAuthenticationMechanism
> >> that will pick the right authentication mechanism (internal token broker
> >> vs
> >> external IdP) based on the runtime configuration.
> >>
> >> Regarding this statement, I want to make sure that it would still be
> >> possible to use different authn mechanisms for different requests in the
> >> same realm. I also recently started picking up some of the work from the
> >> federated auth proposal and something we need to ensure is that we can
> >> support both external identity providers as well as the internal token
> >> broker.
> >>
> >> Mike
> >>
> >>
> >> On Tue, Apr 15, 2025 at 6:52 AM Jean-Baptiste Onofré <j...@nanthrax.net>
> >> wrote:
> >>
> >> > Hi Alex,
> >> >
> >> > It sounds like a good plan :)
> >> >
> >> > Thanks !
> >> > Regards
> >> > JB
> >> >
> >> > On Mon, Apr 14, 2025 at 10:50 PM Alex Dutra
> >> > <alex.du...@dremio.com.invalid> wrote:
> >> > >
> >> > > Hi all,
> >> > >
> >> > > A recently-reported bug [1] uncovered some serious issues with the
> >> JAX-RS
> >> > > authentication filters. Fixing this bug requires replacing the
> >> > incriminated
> >> > > filters with proper Quarkus Security mechanisms.
> >> > >
> >> > > In parallel to that, support for external identity providers has
> been
> >> > > requested many times, see [2], [3] and [4]. We know however that
> this
> >> > > feature can only be delivered by implementing similar mechanisms.
> >> > >
> >> > > There might be an opportunity here to kill two birds with one
> stone. I
> >> > > would like therefore to make the following proposal:
> >> > >
> >> > >    1. In a first PR, *replace the current authentication filters* by
> >> > >    Quarkus Security. This PR should be transparent to users and
> should
> >> > not
> >> > >    change the current behavior of Polaris, nor its configuration
> >> options.
> >> > >    2. In a second PR, *implement support for external identity
> >> > providers*.
> >> > >    This shall be done by  implementing a new
> >> HttpAuthenticationMechanism
> >> > >    that will pick the right authentication mechanism (internal token
> >> > broker vs
> >> > >    external IdP) based on the runtime configuration.
> >> > >
> >> > >  If you agree with this proposal, I'm happy to start working on the
> >> first
> >> > > PR.
> >> > >
> >> > > Thanks,
> >> > >
> >> > > Alex
> >> > >
> >> > > [1]: https://github.com/apache/polaris/issues/1345
> >> > > [2]: https://github.com/apache/polaris/issues/336
> >> > > [3]: https://github.com/apache/polaris/issues/976
> >> > > [4]: https://github.com/apache/polaris/issues/1327
> >> >
> >>
> >
>

Reply via email to