Hi Manikumar, On Wed, Aug 25, 2021, at 8:54 PM, Manikumar wrote: > Thanks for the reply, > > Can we also update the KIP about the testing approach?
Yes, I've added that as a dedicated section in the KIP: https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=186877575#KIP768:ExtendSASL/OAUTHBEARERwithSupportforOIDC-Testing Thanks, Kirk > Thanks, > > On Wed, Aug 25, 2021 at 12:01 AM Kirk True <k...@mustardgrain.com> wrote: >> __ >> Hi Manikumar! >> >> On Mon, Aug 23, 2021, at 12:59 PM, Manikumar wrote: >>> Hi Kirk, >>> >>> Thanks for the KIP! >>> >>> 1. Do we want to support validating issuers using the issuer uri? >> >> Are you referring to validating the JWT was issued by a known, configured >> issuer, or something more different/more dynamic? >> >> The current design allows for optionally requiring that the iss claim from >> the JWT match a statically configured issuer from the configuration. See >> expectedIssuer under the broker configuration. >> >>> 2. Can the access token be reused for multiple connections from the same >>> client? >> >> That's an excellent question - I will double-check that it is reused. >> Hopefully the existing client authentication mechanism supports that level >> of reuse. >> >>> 3. Do we support configuring separate ssl configs for connecting >>> authorization server/jwks endpoint? >> >> Yes, that documentation is forthcoming soon. >> >> It will be a set of configuration options similar to the existing SSL socket >> configuration, but specific to the HTTPS endpoint for the OAuth/OIDC >> provider connections. >> >>> 4. Do we want support any readable username as principal if it is present >>> in the token claims >> >> Yes. See the subClaimName and principalClaimName configuration options. >> Those will allow specifying a claim name other than sub for the principal. >> >> Now that I'm writing this out I realize that the configuration names are >> different on the client and broker for some reason 🤔 I'll change that. >> >>> 5. I agree with Ron, We should move the public classes to >>> "o.a.k.c.s.oauthbearer.secured" package. >> >> Sounds good. I made the change in the KIP. >> >>> Thanks, >>> Manikumar >> >> Thanks for your feedback! >> >>> >>> On Thu, Aug 19, 2021 at 11:46 PM Kirk True <k...@mustardgrain.com> wrote: >>> >>> > Hi Ron, >>> > >>> > On Sat, Aug 14, 2021, at 11:27 AM, Ron Dagostino wrote: >>> > > Hi Kirk -- thanks for the KIP! Having concrete implementations >>> > > out-of-the-box will be very helpful. >>> > > >>> > > > As seen in this diagram, the login callback is executed on the client >>> > and >>> > > the validate callback is executed on the broker. >>> > > >>> > > There was no diagram when I looked. Maybe there is a broken link or >>> > > something? >>> > >>> > I double-checked and it's showing for me on the published version of the >>> > wiki, even after I've logged out. >>> > >>> > Would you mind checking again when you get the chance? >>> > >>> > > > The name of the implementation class will be >>> > > >>> > org.apache.kafka.common.security.oauthbearer.internals.secured.OAuthBearerLoginCallbackHandler >>> > > >>> > > I think the internals package was meant for non-public stuff Most of it >>> > > seems that way, although the "unsecured" implementation is in there -- >>> > but >>> > > that's maybe a grey area since it isn't meant to be used in production >>> > > scenarios and is mostly leveraged in unit tests. Perhaps move the >>> > proposed >>> > > class into a "o.a.k.c.s.oauthbearer.secured" package? Then any >>> > > implementation details beyond the public stuff can live under the >>> > > "...internals.secured" package that you mentioned? The same comment >>> > > applies to the validator callback handler class. >>> > >>> > In a draft I had the secured package directly under the oauthbearer >>> > package as you describe but I received some out-of-band feedback to aim >>> > for >>> > parity with the unsecured package layout. >>> > >>> > I don't have a preference for either. I do agree that it seems weird for a >>> > package named internals to be used in configuration since its name implies >>> > that things could change. >>> > >>> > > I'm confused by loginRetryMaxWaitMs and loginRetryWaitMs. The former >>> > > has >>> > > "Max" in the name, but only the description of the latter mentions it >>> > being >>> > > a max amount of time? Are the descriptions incorrect or perhaps >>> > reversed? >>> > >>> > Yes. Thanks for catching that. I've added more description in a separate >>> > paragraph above the enumerated configurations. >>> > >>> > > > Ensure the encoding algorithm isn't none and matches what the >>> > > > expected >>> > > algorithm expecting >>> > > >>> > > "expected algorithm expecting" some kind of grammar issue? >>> > >>> > Haha! Yes - thanks for catching that too! >>> > >>> > It now reads: >>> > >>> > > Ensure the encoding algorithm (`alg` from the header) isn't `none` and >>> > matches the expected algorithm for the JWK ID >>> > >>> > > Thanks again -- very exciting! >>> > >>> > Thanks for the feedback!!! >>> > >>> > Kirk >>> > >>> > > >>> > > Ron >>> > > >>> > > >>> > > >>> > > >>> > > >>> > > On Fri, Aug 13, 2021 at 3:53 PM Kirk True <k...@mustardgrain.com> wrote: >>> > > >>> > > > Hi all! >>> > > > >>> > > > I have created a new KIP for a new OAuth/OIDC related authentication >>> > > > feature. >>> > > > >>> > > > This task is to provide a concrete implementation of the interfaces >>> > > > defined in KIP-255 to allow Kafka to connect to an OAuth / OIDC >>> > identity >>> > > > provider for authentication and token retrieval. While KIP-255 >>> > provides an >>> > > > unsecured JWT example for development purposes, this will fill in the >>> > gap >>> > > > and provide a production-grade implementation. >>> > > > >>> > > > Here's the KIP: >>> > > > >>> > > > >>> > > > >>> > https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=186877575 >>> > > > >>> > > > Thanks! >>> > > > Kirk >>> > > >>> > >>> >>