Hi Gabor, Thanks for your answers. I appreciate the explanations. Please see my responses + further questions below.
* What stability semantics do you envision for this API? >> > As I foresee the API will be as stable as Netty API. Since there is > guarantee on no breaking changes between minor versions we can give the > same guarantee. > If for whatever reason we need to break it we can do it in major version > like every other open source project does. > * Does Flink expose dependencies’ APIs in other places? Since this exposes >> the Netty API, will this make it difficult to upgrade Netty? >> > I don't expect breaking changes between minor versions so such cases there > will be no issues. If there is a breaking change in major version > we need to wait Flink major version too. > To clarify, you are proposing this new API to have the same stability guarantees as @Public currently does? Where we will not introduce breaking changes unless absolutely necessary (and requiring a FLIP, etc.)? If this is the case, I think this puts the community in a tough position where we are forced to maintain compatibility with something that we do not have control over. It also locks Flink into the current major version of Netty (and the Netty framework itself) for the foreseeable future. I am saying we should not do this, perhaps this is the best solution to finding a good compromise here, but I am trying to discover + acknowledge the full implications of this proposal so they can be discussed. What do you think about marking this API as @Experimental and not guaranteeing stability between versions? Then, if we do decide we need to upgrade Netty (or move away from it), we can do so. * I share Till's concern about multiple factories – other HTTP middleware >> frameworks commonly support chaining middlewares. Since the proposed API >> does not include these features/guarantee ordering, do you see any reason >> to allow more than one factory? >> > I personally can't come up with a use-case where ordering is a must. I'm > not telling that this is not a valid use-case but adding a feature w/o > business rationale would include the maintenance cost (though I'm open to > add). > As I've seen Till also can't give example for that (please see the doc > comments). If you have anything in mind please share it and we can add > priority to the API. > There is another option too, namely we can be defensive and we can add the > priority right now. I would do this only if everybody states in mail that > it would be the best option, > otherwise I would stick to the original plan. > Let me try to come up with a use case: * Someone creates an authentication module for integrating with Google's OAuth and publishes it to flink-packages * Another person in another org wants to use Google OAuth and then add internal authorization based on the user * In this scenario, *Google OAuth must come before the internal authorization* * They place their module and the Google OAuth module to be picked up by the service loader * What happens? I do not think that the current proposal has a way to handle this, besides having the implementor of the internal authorization module bundle everything into one, as you have suggested. Since this is the only way to achieve order, why not restrict the service loader to only allow one? This way the API is explicit in what it supports. Let me know what you think, Austin On Wed, Jun 30, 2021 at 5:24 AM Gabor Somogyi <gabor.g.somo...@gmail.com> wrote: > Hi Austin, > > Please see my answers embedded down below. > > BR, > G > > > > On Tue, Jun 29, 2021 at 9:59 PM Austin Cawley-Edwards < > austin.caw...@gmail.com> wrote: > >> Hi all, >> >> Thanks for the updated proposal. I have a few questions about the API, >> please see below. >> >> * What stability semantics do you envision for this API? >> > As I foresee the API will be as stable as Netty API. Since there is > guarantee on no breaking changes between minor versions we can give the > same guarantee. > If for whatever reason we need to break it we can do it in major version > like every other open source project does. > > >> * Does Flink expose dependencies’ APIs in other places? Since this >> exposes the Netty API, will this make it difficult to upgrade Netty? >> > I don't expect breaking changes between minor versions so such cases there > will be no issues. If there is a breaking change in major version > we need to wait Flink major version too. > > >> * I share Till's concern about multiple factories – other HTTP middleware >> frameworks commonly support chaining middlewares. Since the proposed API >> does not include these features/guarantee ordering, do you see any reason >> to allow more than one factory? >> > I personally can't come up with a use-case where ordering is a must. I'm > not telling that this is not a valid use-case but adding a feature w/o > business rationale would include the maintenance cost (though I'm open to > add). > As I've seen Till also can't give example for that (please see the doc > comments). If you have anything in mind please share it and we can add > priority to the API. > There is another option too, namely we can be defensive and we can add the > priority right now. I would do this only if everybody states in mail that > it would be the best option, > otherwise I would stick to the original plan. > > >> >> Best, >> Austin >> >> On Tue, Jun 29, 2021 at 8:55 AM Márton Balassi <balassi.mar...@gmail.com> >> wrote: >> >>> Hi all, >>> >>> I commend Konstantin and Till when it comes to standing up for the >>> community values. >>> >>> Based on your feedback we are withdrawing the original proposal and >>> attaching a more general custom netty handler API proposal [1] written by >>> G. The change necessary to the Flink repository is approximately 500 >>> lines >>> of code. [2] >>> >>> Please let us focus on discussing the details of this API and whether it >>> covers the necessary use cases. >>> >>> [1] >>> >>> https://docs.google.com/document/d/1Idnw8YauMK1x_14iv0rVF0Hqm58J6Dg-hi-hEuL6hwM/edit#heading=h.ijcbce3c5gip >>> [2] >>> >>> https://github.com/gaborgsomogyi/flink/commit/942f23679ac21428bb87fc85557b9b443fcaf310 >>> >>> Thanks, >>> Marton >>> >>> On Wed, Jun 23, 2021 at 9:36 PM Austin Cawley-Edwards < >>> austin.caw...@gmail.com> wrote: >>> >>> > Hi all, >>> > >>> > Thanks, Konstantin and Till, for guiding the discussion. >>> > >>> > I was not aware of the results of the call with Konstantin and was >>> > attempting to resolve the unanswered questions before more, potentially >>> > fruitless, work was done. >>> > >>> > I am also looking forward to the coming proposal, as well as >>> increasing my >>> > understanding of this specific use case + its limitations! >>> > >>> > Best, >>> > Austin >>> > >>> > On Tue, Jun 22, 2021 at 6:32 AM Till Rohrmann <trohrm...@apache.org> >>> > wrote: >>> > >>> > > Hi everyone, >>> > > >>> > > I do like the idea of keeping the actual change outside of Flink but >>> to >>> > > enable Flink to support such a use case (different authentication >>> > > mechanisms). I think this is a good compromise for the community that >>> > > combines long-term maintainability with support for new use-cases. I >>> am >>> > > looking forward to your proposal. >>> > > >>> > > I also want to second Konstantin here that the tone of your last >>> email, >>> > > Marton, does not reflect the values and manners of the Flink >>> community >>> > and >>> > > is not representative of how we conduct discussions. Especially, the >>> more >>> > > senior community members should know this and act accordingly in >>> order to >>> > > be good role models for others in the community. Technical >>> discussions >>> > > should not be decided by who wields presumably the greatest >>> authority but >>> > > by the soundness of arguments and by what is the best solution for a >>> > > problem. >>> > > >>> > > Let us now try to find the best solution for the problem at hand! >>> > > >>> > > Cheers, >>> > > Till >>> > > >>> > > On Tue, Jun 22, 2021 at 11:24 AM Konstantin Knauf <kna...@apache.org >>> > >>> > > wrote: >>> > > >>> > > > Hi everyone, >>> > > > >>> > > > First, Marton and I had a brief conversation yesterday offline and >>> > > > discussed exploring the approach of exposing the authentication >>> > > > functionality via an API. So, I am looking forward to your >>> proposal in >>> > > that >>> > > > direction. The benefit of such a solution would be that it is >>> > extensible >>> > > > for others and it does add a smaller maintenance (in particular >>> > testing) >>> > > > footprint to Apache Flink itself. If we end up going down this >>> route, >>> > > > flink-packages.org would be a great way to promote these third >>> party >>> > > > "authentication modules". >>> > > > >>> > > > Second, Marton, I understand your frustration about the long >>> discussion >>> > > on >>> > > > this "simple matter", but the condescending tone of your last mail >>> > feels >>> > > > uncalled for to me. Austin expressed a valid opinion on the topic, >>> > which >>> > > is >>> > > > based on his experience from other Open Source frameworks (CNCF >>> > mostly). >>> > > I >>> > > > am sure you agree that it is important for Apache Flink to stay >>> open >>> > and >>> > > to >>> > > > consider different approaches and ideas and I don't think it helps >>> the >>> > > > culture of discussion to shoot it down like this ("This is where >>> this >>> > > > discussion stops."). >>> > > > >>> > > > Let's continue to move this discussion forward and I am sure we'll >>> > find a >>> > > > consensus based on product and technological considerations. >>> > > > >>> > > > Thanks, >>> > > > >>> > > > Konstantin >>> > > > >>> > > > On Tue, Jun 22, 2021 at 9:31 AM Márton Balassi < >>> > balassi.mar...@gmail.com >>> > > > >>> > > > wrote: >>> > > > >>> > > > > Hi Austin, >>> > > > > >>> > > > > Thank you for your thoughts. This is where this discussion stops. >>> > This >>> > > > > email thread already contains more characters than the >>> implementation >>> > > and >>> > > > > what is needed for the next 20 years of maintenance. >>> > > > > >>> > > > > It is great that you have a view on modern solutions and thank >>> you >>> > for >>> > > > > offering your help with brainstorming solutions. I am >>> responsible for >>> > > > Flink >>> > > > > at Cloudera and we do need an implementation like this and it is >>> in >>> > > fact >>> > > > > already in production at dozens of customers. We are open to >>> adapting >>> > > > that >>> > > > > to expose a more generic API (and keeping Kerberos to our fork), >>> to >>> > > > > contribute this to the community as others have asked for it and >>> to >>> > > > protect >>> > > > > ourselves from occasionally having to update this critical >>> > > implementation >>> > > > > path based on changes in the Apache codebase. I have worked with >>> > close >>> > > > to a >>> > > > > hundred Big Data customers as a consultant and an engineering >>> manager >>> > > and >>> > > > > committed hundreds of changes to Apache Flink over the past >>> decade, >>> > > > please >>> > > > > trust my judgement on a simple matter like this. >>> > > > > >>> > > > > Please forgive me for referencing authority, this discussion was >>> > > getting >>> > > > > out of hand. Please keep vigilant. >>> > > > > >>> > > > > Best, >>> > > > > Marton >>> > > > > >>> > > > > On Mon, Jun 21, 2021 at 10:50 PM Austin Cawley-Edwards < >>> > > > > austin.caw...@gmail.com> wrote: >>> > > > > >>> > > > > > Hi Gabor + Marton, >>> > > > > > >>> > > > > > I don't believe that the issue with this proposal is the >>> specific >>> > > > > mechanism >>> > > > > > proposed (Kerberos), but rather that it is not the level to >>> > implement >>> > > > it >>> > > > > at >>> > > > > > (Flink). I'm just one voice, so please take this with a grain >>> of >>> > > salt. >>> > > > > > >>> > > > > > In the other solutions previously noted there is no need to >>> > > instrument >>> > > > > > Flink which, in addition to reducing the maintenance burden, >>> > > provides a >>> > > > > > better, decoupled end result. >>> > > > > > >>> > > > > > IMO we should not add any new API in Flink for this use case. I >>> > think >>> > > > it >>> > > > > is >>> > > > > > unfortunate and sympathize with the work that has already been >>> done >>> > > on >>> > > > > this >>> > > > > > feature – perhaps we could brainstorm ways to run this >>> alongside >>> > > Flink >>> > > > in >>> > > > > > your setup. Again, I don't think the proposed solution of an >>> > agnostic >>> > > > API >>> > > > > > would not work, nor is it a bad idea, but is not one that will >>> make >>> > > > Flink >>> > > > > > more compatible with the modern solutions to this problem. >>> > > > > > >>> > > > > > Best, >>> > > > > > Austin >>> > > > > > >>> > > > > > On Mon, Jun 21, 2021 at 2:18 PM Márton Balassi < >>> > > > balassi.mar...@gmail.com >>> > > > > > >>> > > > > > wrote: >>> > > > > > >>> > > > > > > Hi team, >>> > > > > > > >>> > > > > > > Thank you for your input. Based on this discussion I agree >>> with G >>> > > > that >>> > > > > > > selecting and standardizing on a specific strong >>> authentication >>> > > > > mechanism >>> > > > > > > is more challenging than the whole rest of the scope of this >>> > > > > > authentication >>> > > > > > > story. :-) I suggest that G and I go back to the drawing >>> board >>> > and >>> > > > come >>> > > > > > up >>> > > > > > > with an API that can support multiple authentication >>> mechanisms, >>> > > and >>> > > > we >>> > > > > > > would only merge said API to Flink. Specific implementations >>> of >>> > it >>> > > > can >>> > > > > be >>> > > > > > > maintained outside of the project. This way we tackle the >>> main >>> > > > > challenge >>> > > > > > in >>> > > > > > > a truly minimal way. >>> > > > > > > >>> > > > > > > Best, >>> > > > > > > Marton >>> > > > > > > >>> > > > > > > On Mon, Jun 21, 2021 at 4:18 PM Gabor Somogyi < >>> > > > > gabor.g.somo...@gmail.com >>> > > > > > > >>> > > > > > > wrote: >>> > > > > > > >>> > > > > > > > Hi All, >>> > > > > > > > >>> > > > > > > > We see that adding any kind of specific authentication >>> raises >>> > > more >>> > > > > > > > questions than answers. >>> > > > > > > > What would be if a generic API would be added without any >>> real >>> > > > > > > > authentication logic? >>> > > > > > > > That way every provider can add its own protocol >>> implementation >>> > > as >>> > > > > > > > additional jar. >>> > > > > > > > >>> > > > > > > > BR, >>> > > > > > > > G >>> > > > > > > > >>> > > > > > > > >>> > > > > > > > On Thu, Jun 17, 2021 at 7:53 PM Austin Cawley-Edwards < >>> > > > > > > > austin.caw...@gmail.com> wrote: >>> > > > > > > > >>> > > > > > > >> Hi all, >>> > > > > > > >> >>> > > > > > > >> Sorry to be joining the conversation late. I'm also on the >>> > side >>> > > of >>> > > > > > > >> Konstantin, generally, in that this seems to not be a core >>> > goal >>> > > of >>> > > > > > Flink >>> > > > > > > >> as >>> > > > > > > >> a project and adds a maintenance burden. >>> > > > > > > >> >>> > > > > > > >> Would another con of Kerberos be that is likely a fading >>> > project >>> > > > in >>> > > > > > > terms >>> > > > > > > >> of network security? (serious question, please correct me >>> if >>> > > there >>> > > > > is >>> > > > > > > >> reason to believe it is gaining adoption) >>> > > > > > > >> >>> > > > > > > >> The point about Kerberos being independent of >>> infrastructure >>> > is >>> > > a >>> > > > > good >>> > > > > > > one >>> > > > > > > >> but is something that is also solved by modern sidecar >>> > proxies + >>> > > > > > service >>> > > > > > > >> meshes that can run across Kubernetes and bare-metal. >>> These >>> > > > > solutions >>> > > > > > > also >>> > > > > > > >> handle certificate provisioning, rotation, etc. in >>> addition to >>> > > > > > > >> higher-level >>> > > > > > > >> authorization policies. Some examples of projects with >>> this >>> > > > > "universal >>> > > > > > > >> infrastructure support" are Kuma[1] (CNCF Sandbox, I'm a >>> > > > maintainer) >>> > > > > > and >>> > > > > > > >> Istio[2] (Google). >>> > > > > > > >> >>> > > > > > > >> Wondering out loud: has anyone tried to run Flink on top >>> of >>> > > > > cilium[3], >>> > > > > > > >> which also provides zero-trust networking at the kernel >>> level >>> > > > > without >>> > > > > > > >> needing to instrument applications? This currently only >>> runs >>> > on >>> > > > > > > Kubernetes >>> > > > > > > >> on Linux, so that's a major limitation, but solves many >>> of the >>> > > > > request >>> > > > > > > >> forging concerns at all levels. >>> > > > > > > >> >>> > > > > > > >> Thanks, >>> > > > > > > >> Austin >>> > > > > > > >> >>> > > > > > > >> [1]: https://kuma.io/docs/1.1.6/quickstart/universal/ >>> > > > > > > >> [2]: >>> > > https://istio.io/latest/docs/setup/install/virtual-machine/ >>> > > > > > > >> [3]: https://cilium.io/ >>> > > > > > > >> >>> > > > > > > >> On Thu, Jun 17, 2021 at 1:50 PM Till Rohrmann < >>> > > > trohrm...@apache.org >>> > > > > > >>> > > > > > > >> wrote: >>> > > > > > > >> >>> > > > > > > >> > I left some comments in the Google document. It would be >>> > great >>> > > > if >>> > > > > > > >> > someone from the community with security experience >>> could >>> > also >>> > > > > take >>> > > > > > a >>> > > > > > > >> look >>> > > > > > > >> > at it. Maybe Eron you have an opinion on the topic. >>> > > > > > > >> > >>> > > > > > > >> > Cheers, >>> > > > > > > >> > Till >>> > > > > > > >> > >>> > > > > > > >> > On Thu, Jun 17, 2021 at 6:57 PM Till Rohrmann < >>> > > > > trohrm...@apache.org >>> > > > > > > >>> > > > > > > >> > wrote: >>> > > > > > > >> > >>> > > > > > > >> > > Hi Gabor, >>> > > > > > > >> > > >>> > > > > > > >> > > I haven't found time to look into the updated FLIP >>> yet. >>> > I'll >>> > > > try >>> > > > > > to >>> > > > > > > >> do it >>> > > > > > > >> > > asap. >>> > > > > > > >> > > >>> > > > > > > >> > > Cheers, >>> > > > > > > >> > > Till >>> > > > > > > >> > > >>> > > > > > > >> > > On Wed, Jun 16, 2021 at 9:35 PM Konstantin Knauf < >>> > > > > > kna...@apache.org >>> > > > > > > > >>> > > > > > > >> > > wrote: >>> > > > > > > >> > > >>> > > > > > > >> > >> Hi Gabor, >>> > > > > > > >> > >> >>> > > > > > > >> > >> > However representing Kerberos as completely new >>> feature >>> > > is >>> > > > > not >>> > > > > > > true >>> > > > > > > >> > >> because >>> > > > > > > >> > >> it's already in since Flink makes authentication at >>> least >>> > > > with >>> > > > > > HDFS >>> > > > > > > >> and >>> > > > > > > >> > >> Hbase through Kerberos. >>> > > > > > > >> > >> >>> > > > > > > >> > >> True, that is one way to look at it, but there are >>> > > > differences, >>> > > > > > > too: >>> > > > > > > >> > >> Control Plane vs Data Plane, Core vs Connectors. >>> > > > > > > >> > >> >>> > > > > > > >> > >> > Adding OIDC or OAuth2 has the exact same concerns >>> what >>> > > > you've >>> > > > > > > guys >>> > > > > > > >> > just >>> > > > > > > >> > >> raised. Why exactly these? If you think this would be >>> > > > > beneficial >>> > > > > > we >>> > > > > > > >> can >>> > > > > > > >> > >> discuss it in detail >>> > > > > > > >> > >> >>> > > > > > > >> > >> That's exactly my point. Once we start adding authx >>> > > support, >>> > > > we >>> > > > > > > will >>> > > > > > > >> > >> sooner or later discuss other options besides >>> Kerberos, >>> > > too. >>> > > > A >>> > > > > > user >>> > > > > > > >> who >>> > > > > > > >> > >> would like to use OAuth can not easily use Kerberos, >>> > right? >>> > > > > > > >> > >> That is one of the reasons I am skeptical about >>> adding >>> > > > initial >>> > > > > > > authx >>> > > > > > > >> > >> support. >>> > > > > > > >> > >> >>> > > > > > > >> > >> > Related authorization you've mentioned it can be >>> > > > complicated >>> > > > > > over >>> > > > > > > >> > time. >>> > > > > > > >> > >> Can >>> > > > > > > >> > >> you show us an example? We've knowledge with couple >>> of >>> > open >>> > > > > > source >>> > > > > > > >> > >> components >>> > > > > > > >> > >> but authorization was never a horror complex story. I >>> > > > > personally >>> > > > > > > have >>> > > > > > > >> > the >>> > > > > > > >> > >> most experience with Spark which I think is quite >>> simple >>> > > and >>> > > > > > > stable. >>> > > > > > > >> > Users >>> > > > > > > >> > >> can be viewers/admins >>> > > > > > > >> > >> and jobs started by others can't be modified. If you >>> can >>> > > > share >>> > > > > an >>> > > > > > > >> > example >>> > > > > > > >> > >> over-complication we can discuss on facts. >>> > > > > > > >> > >> >>> > > > > > > >> > >> Authorization is a new aspect that needs to be >>> considered >>> > > for >>> > > > > > every >>> > > > > > > >> > >> addition to the REST API. In the future users might >>> ask >>> > for >>> > > > > > > >> additional >>> > > > > > > >> > >> roles (e.g. an editor), user-defined roles and you've >>> > > already >>> > > > > > > >> mentioned >>> > > > > > > >> > >> job-level permissions yourself. And keep in mind that >>> > there >>> > > > > might >>> > > > > > > >> also >>> > > > > > > >> > be >>> > > > > > > >> > >> larger additions in the future like the >>> > flink-sql-gateway. >>> > > > > > > >> Contributions >>> > > > > > > >> > >> like this become more expensive the more aspects we >>> need >>> > to >>> > > > > > > consider. >>> > > > > > > >> > >> >>> > > > > > > >> > >> In general, I believe, it is important that the >>> community >>> > > > > focuses >>> > > > > > > its >>> > > > > > > >> > >> efforts where we can generate the most value to the >>> user >>> > > and >>> > > > - >>> > > > > > > >> > personally - >>> > > > > > > >> > >> I don't think there is much to gain by extending >>> Flink's >>> > > > scope >>> > > > > in >>> > > > > > > >> that >>> > > > > > > >> > >> direction. Of course, this is not black and white and >>> > there >>> > > > are >>> > > > > > > other >>> > > > > > > >> > valid >>> > > > > > > >> > >> opinions. >>> > > > > > > >> > >> >>> > > > > > > >> > >> Thanks, >>> > > > > > > >> > >> >>> > > > > > > >> > >> Konstantin >>> > > > > > > >> > >> >>> > > > > > > >> > >> On Wed, Jun 16, 2021 at 7:38 PM Gabor Somogyi < >>> > > > > > > >> > gabor.g.somo...@gmail.com> >>> > > > > > > >> > >> wrote: >>> > > > > > > >> > >> >>> > > > > > > >> > >>> Hi Konstantin, >>> > > > > > > >> > >>> >>> > > > > > > >> > >>> Thanks for the response. Related new feature >>> > introduction >>> > > in >>> > > > > > case >>> > > > > > > of >>> > > > > > > >> > >>> Basic >>> > > > > > > >> > >>> auth I tend to agree, anything else can be chosen. >>> > > > > > > >> > >>> >>> > > > > > > >> > >>> However representing Kerberos as completely new >>> feature >>> > is >>> > > > not >>> > > > > > > true >>> > > > > > > >> > >>> because >>> > > > > > > >> > >>> it's already in since Flink makes authentication at >>> > least >>> > > > with >>> > > > > > > HDFS >>> > > > > > > >> and >>> > > > > > > >> > >>> Hbase through Kerberos. >>> > > > > > > >> > >>> The main problem with the actual Kerberos >>> implementation >>> > > is >>> > > > > that >>> > > > > > > it >>> > > > > > > >> > >>> contains several bugs and only partially >>> implemented. >>> > > > > Following >>> > > > > > > your >>> > > > > > > >> > >>> suggestion can we agree that we >>> > > > > > > >> > >>> skip the Basic auth implementation and finish an >>> already >>> > > > > started >>> > > > > > > >> > Kerberos >>> > > > > > > >> > >>> story by adding History Server and Job Dashboard >>> > > > > authentication? >>> > > > > > > >> > >>> >>> > > > > > > >> > >>> Adding OIDC or OAuth2 has the exact same concerns >>> what >>> > > > you've >>> > > > > > guys >>> > > > > > > >> just >>> > > > > > > >> > >>> raised. Why exactly these? If you think this would >>> be >>> > > > > beneficial >>> > > > > > > we >>> > > > > > > >> can >>> > > > > > > >> > >>> discuss it in detail >>> > > > > > > >> > >>> but as a side story it would be good to finish a >>> halfway >>> > > > done >>> > > > > > > >> Kerberos >>> > > > > > > >> > >>> story. >>> > > > > > > >> > >>> >>> > > > > > > >> > >>> Related authorization you've mentioned it can be >>> > > complicated >>> > > > > > over >>> > > > > > > >> time. >>> > > > > > > >> > >>> Can >>> > > > > > > >> > >>> you show us an example? We've knowledge with couple >>> of >>> > > open >>> > > > > > source >>> > > > > > > >> > >>> components >>> > > > > > > >> > >>> but authorization was never a horror complex story. >>> I >>> > > > > personally >>> > > > > > > >> have >>> > > > > > > >> > the >>> > > > > > > >> > >>> most experience with Spark which I think is quite >>> simple >>> > > and >>> > > > > > > stable. >>> > > > > > > >> > >>> Users >>> > > > > > > >> > >>> can be viewers/admins >>> > > > > > > >> > >>> and jobs started by others can't be modified. If >>> you can >>> > > > share >>> > > > > > an >>> > > > > > > >> > example >>> > > > > > > >> > >>> over-complication we can discuss on facts. >>> > > > > > > >> > >>> >>> > > > > > > >> > >>> Thank you in advance! >>> > > > > > > >> > >>> >>> > > > > > > >> > >>> BR, >>> > > > > > > >> > >>> G >>> > > > > > > >> > >>> >>> > > > > > > >> > >>> >>> > > > > > > >> > >>> On Wed, Jun 16, 2021 at 5:42 PM Konstantin Knauf < >>> > > > > > > kna...@apache.org >>> > > > > > > >> > >>> > > > > > > >> > >>> wrote: >>> > > > > > > >> > >>> >>> > > > > > > >> > >>> > Hi everyone, >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> > sorry for joining late and thanks for the >>> insightful >>> > > > > > discussion. >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> > In general, I'd personally prefer not to increase >>> the >>> > > > > surface >>> > > > > > > >> area of >>> > > > > > > >> > >>> > Apache Flink unless there is a good reason. It >>> seems >>> > we >>> > > > all >>> > > > > > > agree >>> > > > > > > >> > that >>> > > > > > > >> > >>> > authx is not part of the core value proposition of >>> > > Apache >>> > > > > > Flink, >>> > > > > > > >> so >>> > > > > > > >> > if >>> > > > > > > >> > >>> we >>> > > > > > > >> > >>> > can delegate this problem to a more specialized >>> tool, >>> > I >>> > > am >>> > > > > in >>> > > > > > > >> favor >>> > > > > > > >> > of >>> > > > > > > >> > >>> > that. Apache Flink is already huge and a lot of >>> work >>> > > goes >>> > > > > into >>> > > > > > > >> > >>> maintenance, >>> > > > > > > >> > >>> > so I personally have become more sensitive to this >>> > > aspect >>> > > > > over >>> > > > > > > >> time. >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> > If we add support for Basic Auth and Kerberos now, >>> > users >>> > > > > will >>> > > > > > > >> sooner >>> > > > > > > >> > or >>> > > > > > > >> > >>> > later ask for OIDC, LDAP, SAML,... I acknowledge >>> that >>> > > > > Kerberos >>> > > > > > > is >>> > > > > > > >> > >>> widely >>> > > > > > > >> > >>> > used in the corporate, on-premises context, but >>> isn't >>> > > the >>> > > > > > focus >>> > > > > > > >> > moving >>> > > > > > > >> > >>> more >>> > > > > > > >> > >>> > towards more web-friendly standards like >>> OIDC/OAuth >>> > 2.0? >>> > > > If >>> > > > > we >>> > > > > > > >> only >>> > > > > > > >> > >>> want to >>> > > > > > > >> > >>> > support a single protocol, there is an argument >>> to be >>> > > made >>> > > > > > that >>> > > > > > > it >>> > > > > > > >> > >>> should >>> > > > > > > >> > >>> > be OIDC and Dex [1,2] as a bridge to everything >>> else. >>> > > Have >>> > > > > > OIDC >>> > > > > > > or >>> > > > > > > >> > >>> OAuth2 >>> > > > > > > >> > >>> > been considered instead of Kerberos? How do you >>> see >>> > the >>> > > > > market >>> > > > > > > >> > moving? >>> > > > > > > >> > >>> But >>> > > > > > > >> > >>> > as I said before, in my opinion we can generate >>> more >>> > > value >>> > > > > by >>> > > > > > > >> > investing >>> > > > > > > >> > >>> > into other areas of Apache Flink. >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> > Authorization also has the potential to become >>> more >>> > > > > > fine-grained >>> > > > > > > >> and >>> > > > > > > >> > >>> > complex over time: you already mentioned >>> restricting >>> > the >>> > > > > > actions >>> > > > > > > >> > that a >>> > > > > > > >> > >>> > specific user can do in a cluster. >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> > Cheers, >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> > Konstantin >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> > [1] https://github.com/dexidp/dex >>> > > > > > > >> > >>> > [2] https://github.com/dexidp/dex/issues/1903 >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> > On Wed, Jun 16, 2021 at 11:44 AM Gabor Somogyi < >>> > > > > > > >> > >>> gabor.g.somo...@gmail.com> >>> > > > > > > >> > >>> > wrote: >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> >> Hi Till, >>> > > > > > > >> > >>> >> >>> > > > > > > >> > >>> >> Did you have the chance to take a look at the >>> doc? >>> > Not >>> > > > yet >>> > > > > > seen >>> > > > > > > >> any >>> > > > > > > >> > >>> >> update. >>> > > > > > > >> > >>> >> >>> > > > > > > >> > >>> >> BR, >>> > > > > > > >> > >>> >> G >>> > > > > > > >> > >>> >> >>> > > > > > > >> > >>> >> >>> > > > > > > >> > >>> >> On Wed, Jun 9, 2021 at 1:43 PM Till Rohrmann < >>> > > > > > > >> trohrm...@apache.org> >>> > > > > > > >> > >>> >> wrote: >>> > > > > > > >> > >>> >> >>> > > > > > > >> > >>> >> > Thanks for the update Gabor. I'll take a look >>> and >>> > > > respond >>> > > > > > in >>> > > > > > > >> the >>> > > > > > > >> > >>> >> document. >>> > > > > > > >> > >>> >> > >>> > > > > > > >> > >>> >> > Cheers, >>> > > > > > > >> > >>> >> > Till >>> > > > > > > >> > >>> >> > >>> > > > > > > >> > >>> >> > On Wed, Jun 9, 2021 at 12:59 PM Gabor Somogyi < >>> > > > > > > >> > >>> >> gabor.g.somo...@gmail.com> >>> > > > > > > >> > >>> >> > wrote: >>> > > > > > > >> > >>> >> > >>> > > > > > > >> > >>> >> >> Hi Till, >>> > > > > > > >> > >>> >> >> >>> > > > > > > >> > >>> >> >> Your proxy suggestion has been considered >>> in-depth >>> > > and >>> > > > > > > updated >>> > > > > > > >> > the >>> > > > > > > >> > >>> FLIP >>> > > > > > > >> > >>> >> >> accordingly. >>> > > > > > > >> > >>> >> >> We've considered 2 proxy implementation >>> (Nginx and >>> > > > > Squid) >>> > > > > > > but >>> > > > > > > >> > >>> according >>> > > > > > > >> > >>> >> >> to our analysis and testing it's not suitable >>> for >>> > > the >>> > > > > > > >> mentioned >>> > > > > > > >> > >>> >> use-cases. >>> > > > > > > >> > >>> >> >> Please take a look at the rejected >>> alternatives >>> > for >>> > > > > > detailed >>> > > > > > > >> > >>> >> explanation. >>> > > > > > > >> > >>> >> >> >>> > > > > > > >> > >>> >> >> Thanks for your time in advance! >>> > > > > > > >> > >>> >> >> >>> > > > > > > >> > >>> >> >> BR, >>> > > > > > > >> > >>> >> >> G >>> > > > > > > >> > >>> >> >> >>> > > > > > > >> > >>> >> >> >>> > > > > > > >> > >>> >> >> On Fri, Jun 4, 2021 at 3:31 PM Till Rohrmann < >>> > > > > > > >> > trohrm...@apache.org >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> >> >> wrote: >>> > > > > > > >> > >>> >> >> >>> > > > > > > >> > >>> >> >>> As I've said I am not a security expert and >>> > that's >>> > > > why >>> > > > > I >>> > > > > > > >> have to >>> > > > > > > >> > >>> ask >>> > > > > > > >> > >>> >> for >>> > > > > > > >> > >>> >> >>> clarification, Gabor. You are saying that if >>> we >>> > > > > > configure a >>> > > > > > > >> > >>> >> truststore for >>> > > > > > > >> > >>> >> >>> the REST endpoint with a single trusted >>> > certificate >>> > > > > which >>> > > > > > > has >>> > > > > > > >> > been >>> > > > > > > >> > >>> >> >>> generated by the operator of the Flink >>> cluster, >>> > > then >>> > > > > the >>> > > > > > > >> > attacker >>> > > > > > > >> > >>> can >>> > > > > > > >> > >>> >> >>> generate a new certificate, sign it and then >>> talk >>> > > to >>> > > > > the >>> > > > > > > >> Flink >>> > > > > > > >> > >>> >> cluster if >>> > > > > > > >> > >>> >> >>> he has access to the node on which the REST >>> > > endpoint >>> > > > > > runs? >>> > > > > > > My >>> > > > > > > >> > >>> >> understanding >>> > > > > > > >> > >>> >> >>> was that you need the corresponding private >>> key >>> > > which >>> > > > > in >>> > > > > > my >>> > > > > > > >> > >>> proposed >>> > > > > > > >> > >>> >> setup >>> > > > > > > >> > >>> >> >>> would be under the control of the operator as >>> > well >>> > > > > (e.g. >>> > > > > > > >> stored >>> > > > > > > >> > >>> in a >>> > > > > > > >> > >>> >> >>> keystore on the same machine but guarded by >>> some >>> > > > > secret). >>> > > > > > > >> That >>> > > > > > > >> > way >>> > > > > > > >> > >>> >> (if I am >>> > > > > > > >> > >>> >> >>> not mistaken), only the entity which has >>> access >>> > to >>> > > > the >>> > > > > > > >> keystore >>> > > > > > > >> > is >>> > > > > > > >> > >>> >> able to >>> > > > > > > >> > >>> >> >>> talk to the Flink cluster. >>> > > > > > > >> > >>> >> >>> >>> > > > > > > >> > >>> >> >>> Maybe we are also getting our wires crossed >>> here >>> > > and >>> > > > > are >>> > > > > > > >> talking >>> > > > > > > >> > >>> about >>> > > > > > > >> > >>> >> >>> different things. >>> > > > > > > >> > >>> >> >>> >>> > > > > > > >> > >>> >> >>> Thanks for listing the pros and cons of >>> Kerberos. >>> > > > > > > Concerning >>> > > > > > > >> > what >>> > > > > > > >> > >>> >> other >>> > > > > > > >> > >>> >> >>> authentication mechanisms are used in the >>> > > industry, I >>> > > > > am >>> > > > > > > not >>> > > > > > > >> > 100% >>> > > > > > > >> > >>> >> sure. >>> > > > > > > >> > >>> >> >>> >>> > > > > > > >> > >>> >> >>> Cheers, >>> > > > > > > >> > >>> >> >>> Till >>> > > > > > > >> > >>> >> >>> >>> > > > > > > >> > >>> >> >>> On Fri, Jun 4, 2021 at 11:09 AM Gabor >>> Somogyi < >>> > > > > > > >> > >>> >> gabor.g.somo...@gmail.com> >>> > > > > > > >> > >>> >> >>> wrote: >>> > > > > > > >> > >>> >> >>> >>> > > > > > > >> > >>> >> >>>> > I did not mean for the user to sign its >>> own >>> > > > > > certificates >>> > > > > > > >> but >>> > > > > > > >> > >>> for >>> > > > > > > >> > >>> >> the >>> > > > > > > >> > >>> >> >>>> operator of the cluster. Once the user >>> request >>> > > hits >>> > > > > the >>> > > > > > > >> proxy, >>> > > > > > > >> > it >>> > > > > > > >> > >>> >> should no >>> > > > > > > >> > >>> >> >>>> longer be under his control. I think I do >>> not >>> > > fully >>> > > > > > > >> understand >>> > > > > > > >> > >>> yet >>> > > > > > > >> > >>> >> why this >>> > > > > > > >> > >>> >> >>>> would not work. >>> > > > > > > >> > >>> >> >>>> I said it's not solving the authentication >>> > problem >>> > > > > over >>> > > > > > > any >>> > > > > > > >> > >>> proxy. >>> > > > > > > >> > >>> >> Even >>> > > > > > > >> > >>> >> >>>> if the operator is signing the certificate >>> one >>> > can >>> > > > > have >>> > > > > > > >> access >>> > > > > > > >> > >>> to an >>> > > > > > > >> > >>> >> >>>> internal node. >>> > > > > > > >> > >>> >> >>>> Such case anybody can craft certificates >>> which >>> > is >>> > > > > > accepted >>> > > > > > > >> by >>> > > > > > > >> > the >>> > > > > > > >> > >>> >> >>>> server. When it's accepted a bad guy can >>> cancel >>> > > jobs >>> > > > > > > causing >>> > > > > > > >> > huge >>> > > > > > > >> > >>> >> impacts. >>> > > > > > > >> > >>> >> >>>> >>> > > > > > > >> > >>> >> >>>> > Also, I am missing a bit the comparison of >>> > > > Kerberos >>> > > > > to >>> > > > > > > >> other >>> > > > > > > >> > >>> >> >>>> authentication mechanisms and why they were >>> > > rejected >>> > > > > in >>> > > > > > > >> favour >>> > > > > > > >> > of >>> > > > > > > >> > >>> >> Kerberos. >>> > > > > > > >> > >>> >> >>>> PROS: >>> > > > > > > >> > >>> >> >>>> * Since it's not depending on cloud provider >>> > > and/or >>> > > > > k8s >>> > > > > > or >>> > > > > > > >> > >>> bare-metal >>> > > > > > > >> > >>> >> >>>> etc. deployment it's the biggest plus >>> > > > > > > >> > >>> >> >>>> * Centralized with tools and no need to >>> write >>> > tons >>> > > > of >>> > > > > > > tools >>> > > > > > > >> > >>> around >>> > > > > > > >> > >>> >> >>>> * There are clients/tools on almost all >>> OS-es >>> > and >>> > > > > > several >>> > > > > > > >> > >>> languages >>> > > > > > > >> > >>> >> >>>> * Super huge users are using it for years in >>> > > > > production >>> > > > > > > w/o >>> > > > > > > >> > huge >>> > > > > > > >> > >>> >> issues >>> > > > > > > >> > >>> >> >>>> * Provides cross-realm trust possibility >>> amongst >>> > > > other >>> > > > > > > >> features >>> > > > > > > >> > >>> >> >>>> * Several open source components using it >>> which >>> > > > could >>> > > > > > > >> increase >>> > > > > > > >> > >>> >> >>>> compatibility >>> > > > > > > >> > >>> >> >>>> >>> > > > > > > >> > >>> >> >>>> CONS: >>> > > > > > > >> > >>> >> >>>> * Not everybody using kerberos >>> > > > > > > >> > >>> >> >>>> * It would increase the code footprint but >>> this >>> > is >>> > > > > true >>> > > > > > > for >>> > > > > > > >> > many >>> > > > > > > >> > >>> >> >>>> features (as a side note I'm here to >>> maintain >>> > it) >>> > > > > > > >> > >>> >> >>>> >>> > > > > > > >> > >>> >> >>>> Feel free to add your points because it only >>> > > > > represents >>> > > > > > a >>> > > > > > > >> > single >>> > > > > > > >> > >>> >> >>>> viewpoint. >>> > > > > > > >> > >>> >> >>>> Also if you have any better option for >>> strong >>> > > > > > > authentication >>> > > > > > > >> > >>> please >>> > > > > > > >> > >>> >> >>>> share it and we can consider the pros/cons >>> here. >>> > > > > > > >> > >>> >> >>>> >>> > > > > > > >> > >>> >> >>>> BR, >>> > > > > > > >> > >>> >> >>>> G >>> > > > > > > >> > >>> >> >>>> >>> > > > > > > >> > >>> >> >>>> >>> > > > > > > >> > >>> >> >>>> On Fri, Jun 4, 2021 at 10:32 AM Till >>> Rohrmann < >>> > > > > > > >> > >>> trohrm...@apache.org> >>> > > > > > > >> > >>> >> >>>> wrote: >>> > > > > > > >> > >>> >> >>>> >>> > > > > > > >> > >>> >> >>>>> I did not mean for the user to sign its own >>> > > > > > certificates >>> > > > > > > >> but >>> > > > > > > >> > >>> for the >>> > > > > > > >> > >>> >> >>>>> operator of the cluster. Once the user >>> request >>> > > hits >>> > > > > the >>> > > > > > > >> proxy, >>> > > > > > > >> > >>> it >>> > > > > > > >> > >>> >> should no >>> > > > > > > >> > >>> >> >>>>> longer be under his control. I think I do >>> not >>> > > fully >>> > > > > > > >> understand >>> > > > > > > >> > >>> yet >>> > > > > > > >> > >>> >> why this >>> > > > > > > >> > >>> >> >>>>> would not work. >>> > > > > > > >> > >>> >> >>>>> >>> > > > > > > >> > >>> >> >>>>> What I would like to avoid is to add more >>> > > > complexity >>> > > > > > into >>> > > > > > > >> > Flink >>> > > > > > > >> > >>> if >>> > > > > > > >> > >>> >> >>>>> there is an easy solution which fulfills >>> the >>> > > > > > > requirements. >>> > > > > > > >> > >>> That's >>> > > > > > > >> > >>> >> why I >>> > > > > > > >> > >>> >> >>>>> would like to exercise thoroughly through >>> the >>> > > > > different >>> > > > > > > >> > >>> >> alternatives. Also, >>> > > > > > > >> > >>> >> >>>>> I am missing a bit the comparison of >>> Kerberos >>> > to >>> > > > > other >>> > > > > > > >> > >>> >> authentication >>> > > > > > > >> > >>> >> >>>>> mechanisms and why they were rejected in >>> favour >>> > > of >>> > > > > > > >> Kerberos. >>> > > > > > > >> > >>> >> >>>>> >>> > > > > > > >> > >>> >> >>>>> Cheers, >>> > > > > > > >> > >>> >> >>>>> Till >>> > > > > > > >> > >>> >> >>>>> >>> > > > > > > >> > >>> >> >>>>> On Fri, Jun 4, 2021 at 10:26 AM Gyula Fóra >>> < >>> > > > > > > >> gyf...@apache.org >>> > > > > > > >> > > >>> > > > > > > >> > >>> >> wrote: >>> > > > > > > >> > >>> >> >>>>> >>> > > > > > > >> > >>> >> >>>>>> Hi! >>> > > > > > > >> > >>> >> >>>>>> >>> > > > > > > >> > >>> >> >>>>>> I think there might be possible >>> alternatives >>> > but >>> > > > it >>> > > > > > > seems >>> > > > > > > >> > >>> Kerberos >>> > > > > > > >> > >>> >> on >>> > > > > > > >> > >>> >> >>>>>> the rest endpoint ticks all the right >>> boxes >>> > and >>> > > > > > > provides a >>> > > > > > > >> > >>> super >>> > > > > > > >> > >>> >> clean and >>> > > > > > > >> > >>> >> >>>>>> simple solution for strong authentication. >>> > > > > > > >> > >>> >> >>>>>> >>> > > > > > > >> > >>> >> >>>>>> I wouldn’t even consider sidecar proxies >>> etc >>> > if >>> > > we >>> > > > > can >>> > > > > > > >> solve >>> > > > > > > >> > >>> it in >>> > > > > > > >> > >>> >> >>>>>> such a simple way as proposed by G. >>> > > > > > > >> > >>> >> >>>>>> >>> > > > > > > >> > >>> >> >>>>>> Cheers >>> > > > > > > >> > >>> >> >>>>>> Gyula >>> > > > > > > >> > >>> >> >>>>>> >>> > > > > > > >> > >>> >> >>>>>> On Fri, 4 Jun 2021 at 10:03, Till >>> Rohrmann < >>> > > > > > > >> > >>> trohrm...@apache.org> >>> > > > > > > >> > >>> >> >>>>>> wrote: >>> > > > > > > >> > >>> >> >>>>>> >>> > > > > > > >> > >>> >> >>>>>>> I am not saying that we shouldn't add a >>> > strong >>> > > > > > > >> > authentication >>> > > > > > > >> > >>> >> >>>>>>> mechanism if there are good reasons for >>> it. I >>> > > > > > primarily >>> > > > > > > >> > would >>> > > > > > > >> > >>> >> like to >>> > > > > > > >> > >>> >> >>>>>>> understand the context a bit better in >>> order >>> > to >>> > > > > give >>> > > > > > > >> > qualified >>> > > > > > > >> > >>> >> feedback and >>> > > > > > > >> > >>> >> >>>>>>> come to a good decision. In order to do >>> > this, I >>> > > > > have >>> > > > > > > the >>> > > > > > > >> > >>> feeling >>> > > > > > > >> > >>> >> that we >>> > > > > > > >> > >>> >> >>>>>>> haven't fully considered all available >>> > options >>> > > > > which >>> > > > > > > are >>> > > > > > > >> on >>> > > > > > > >> > >>> the >>> > > > > > > >> > >>> >> table, tbh. >>> > > > > > > >> > >>> >> >>>>>>> >>> > > > > > > >> > >>> >> >>>>>>> Does the problem of certificate expiry >>> also >>> > > apply >>> > > > > for >>> > > > > > > >> > >>> self-signed >>> > > > > > > >> > >>> >> >>>>>>> certificates? If yes, then this should >>> then >>> > > also >>> > > > > be a >>> > > > > > > >> > problem >>> > > > > > > >> > >>> for >>> > > > > > > >> > >>> >> the >>> > > > > > > >> > >>> >> >>>>>>> internal encryption of Flink's >>> communication. >>> > > If >>> > > > > not, >>> > > > > > > >> then >>> > > > > > > >> > one >>> > > > > > > >> > >>> >> could use >>> > > > > > > >> > >>> >> >>>>>>> self-signed certificates with a longer >>> > validity >>> > > > to >>> > > > > > > solve >>> > > > > > > >> the >>> > > > > > > >> > >>> >> mentioned >>> > > > > > > >> > >>> >> >>>>>>> issue. >>> > > > > > > >> > >>> >> >>>>>>> >>> > > > > > > >> > >>> >> >>>>>>> I think you can set up Flink in such a >>> way >>> > that >>> > > > you >>> > > > > > > don't >>> > > > > > > >> > >>> have to >>> > > > > > > >> > >>> >> >>>>>>> handle all the different certificates. >>> For >>> > > > example, >>> > > > > > you >>> > > > > > > >> > could >>> > > > > > > >> > >>> >> deploy Flink >>> > > > > > > >> > >>> >> >>>>>>> with a "sidecar proxy" which is >>> responsible >>> > for >>> > > > the >>> > > > > > > >> > >>> >> authentication using an >>> > > > > > > >> > >>> >> >>>>>>> arbitrary method (e.g. Kerberos) and then >>> > bind >>> > > > the >>> > > > > > REST >>> > > > > > > >> > >>> endpoint >>> > > > > > > >> > >>> >> to a local >>> > > > > > > >> > >>> >> >>>>>>> network interface. That way, the REST >>> > endpoint >>> > > > > would >>> > > > > > > >> only be >>> > > > > > > >> > >>> >> available >>> > > > > > > >> > >>> >> >>>>>>> through the sidecar proxy. Additionally, >>> one >>> > > > could >>> > > > > > > enable >>> > > > > > > >> > SSL >>> > > > > > > >> > >>> for >>> > > > > > > >> > >>> >> this >>> > > > > > > >> > >>> >> >>>>>>> communication. Would this be a solution >>> for >>> > the >>> > > > > > > problem? >>> > > > > > > >> > >>> >> >>>>>>> >>> > > > > > > >> > >>> >> >>>>>>> Cheers, >>> > > > > > > >> > >>> >> >>>>>>> Till >>> > > > > > > >> > >>> >> >>>>>>> >>> > > > > > > >> > >>> >> >>>>>>> On Thu, Jun 3, 2021 at 10:46 PM Márton >>> > Balassi >>> > > < >>> > > > > > > >> > >>> >> >>>>>>> balassi.mar...@gmail.com> wrote: >>> > > > > > > >> > >>> >> >>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>> That is an interesting idea, Till. >>> > > > > > > >> > >>> >> >>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>> The main issue with it is that TLS >>> > > certificates >>> > > > > have >>> > > > > > > an >>> > > > > > > >> > >>> >> expiration >>> > > > > > > >> > >>> >> >>>>>>>> time, usually they get approved for a >>> couple >>> > > > > years. >>> > > > > > > >> Forcing >>> > > > > > > >> > >>> our >>> > > > > > > >> > >>> >> users to >>> > > > > > > >> > >>> >> >>>>>>>> restart jobs to reprovision TLS >>> certificates >>> > > > would >>> > > > > > be >>> > > > > > > >> weird >>> > > > > > > >> > >>> when >>> > > > > > > >> > >>> >> we could >>> > > > > > > >> > >>> >> >>>>>>>> just implement a single proper strong >>> > > > > authentication >>> > > > > > > >> > >>> mechanism >>> > > > > > > >> > >>> >> instead in a >>> > > > > > > >> > >>> >> >>>>>>>> couple hundred lines of code. :-) >>> > > > > > > >> > >>> >> >>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>> In many cases it is also impractical to >>> go >>> > the >>> > > > TLS >>> > > > > > > >> mutual >>> > > > > > > >> > >>> route, >>> > > > > > > >> > >>> >> >>>>>>>> because the Flink Dashboard can end up >>> on >>> > any >>> > > > node >>> > > > > > in >>> > > > > > > >> the >>> > > > > > > >> > >>> >> k8s/Yarn cluster >>> > > > > > > >> > >>> >> >>>>>>>> which means that we need a certificate >>> per >>> > > node >>> > > > > (due >>> > > > > > > to >>> > > > > > > >> the >>> > > > > > > >> > >>> >> mutual auth), >>> > > > > > > >> > >>> >> >>>>>>>> but if we also want to protect the >>> private >>> > key >>> > > > of >>> > > > > > > these >>> > > > > > > >> > from >>> > > > > > > >> > >>> >> users >>> > > > > > > >> > >>> >> >>>>>>>> accidentally or intentionally leaking >>> them >>> > > then >>> > > > we >>> > > > > > > need >>> > > > > > > >> > this >>> > > > > > > >> > >>> per >>> > > > > > > >> > >>> >> user. As >>> > > > > > > >> > >>> >> >>>>>>>> in we end up managing user*machine >>> number >>> > > > > > certificates >>> > > > > > > >> and >>> > > > > > > >> > >>> >> having to renew >>> > > > > > > >> > >>> >> >>>>>>>> them periodically, which albeit >>> automatable >>> > is >>> > > > > > > >> > unfortunately >>> > > > > > > >> > >>> not >>> > > > > > > >> > >>> >> yet >>> > > > > > > >> > >>> >> >>>>>>>> automated in all large organizations. >>> > > > > > > >> > >>> >> >>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>> I fully agree that TLS certificate >>> mutual >>> > > > > > > authentication >>> > > > > > > >> > has >>> > > > > > > >> > >>> its >>> > > > > > > >> > >>> >> >>>>>>>> nice properties, especially at very >>> large >>> > > > > (multiple >>> > > > > > > >> > thousand >>> > > > > > > >> > >>> >> node) clusters >>> > > > > > > >> > >>> >> >>>>>>>> - but it has its own challenges too. >>> Thanks >>> > > for >>> > > > > > > >> bringing it >>> > > > > > > >> > >>> up. >>> > > > > > > >> > >>> >> >>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>> Happy to have this added to the rejected >>> > > > > alternative >>> > > > > > > >> list >>> > > > > > > >> > so >>> > > > > > > >> > >>> that >>> > > > > > > >> > >>> >> >>>>>>>> we have the full picture documented. >>> > > > > > > >> > >>> >> >>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>> On Thu, Jun 3, 2021 at 5:52 PM Till >>> > Rohrmann < >>> > > > > > > >> > >>> >> trohrm...@apache.org> >>> > > > > > > >> > >>> >> >>>>>>>> wrote: >>> > > > > > > >> > >>> >> >>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>> I guess the idea would then be to let >>> the >>> > > proxy >>> > > > > do >>> > > > > > > the >>> > > > > > > >> > >>> >> >>>>>>>>> authentication job and only forward the >>> > > request >>> > > > > via >>> > > > > > > an >>> > > > > > > >> SSL >>> > > > > > > >> > >>> >> mutually >>> > > > > > > >> > >>> >> >>>>>>>>> encrypted connection to the Flink >>> cluster. >>> > > > Would >>> > > > > > this >>> > > > > > > >> be >>> > > > > > > >> > >>> >> possible? The >>> > > > > > > >> > >>> >> >>>>>>>>> beauty of this setup is in my opinion >>> that >>> > > this >>> > > > > > setup >>> > > > > > > >> > should >>> > > > > > > >> > >>> >> work with all >>> > > > > > > >> > >>> >> >>>>>>>>> kinds of authentication mechanisms. >>> > > > > > > >> > >>> >> >>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>> Cheers, >>> > > > > > > >> > >>> >> >>>>>>>>> Till >>> > > > > > > >> > >>> >> >>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>> On Thu, Jun 3, 2021 at 3:12 PM Gabor >>> > Somogyi >>> > > < >>> > > > > > > >> > >>> >> >>>>>>>>> gabor.g.somo...@gmail.com> wrote: >>> > > > > > > >> > >>> >> >>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>> Thanks for giving options to fulfil >>> the >>> > > need. >>> > > > > > > >> > >>> >> >>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>> Users are looking for a solution where >>> > users >>> > > > can >>> > > > > > be >>> > > > > > > >> > >>> identified >>> > > > > > > >> > >>> >> on >>> > > > > > > >> > >>> >> >>>>>>>>>> the whole cluster and restrict access >>> to >>> > > > > > > >> > resources/actions. >>> > > > > > > >> > >>> >> >>>>>>>>>> A good example for such an action is >>> > > > cancelling >>> > > > > > > other >>> > > > > > > >> > users >>> > > > > > > >> > >>> >> >>>>>>>>>> running jobs. >>> > > > > > > >> > >>> >> >>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>> * SSL does provide mutual >>> authentication >>> > but >>> > > > > when >>> > > > > > > >> > >>> >> authentication >>> > > > > > > >> > >>> >> >>>>>>>>>> passed there is no user based on >>> > > restrictions >>> > > > > can >>> > > > > > be >>> > > > > > > >> > made. >>> > > > > > > >> > >>> >> >>>>>>>>>> * The less problematic part is that >>> > > > > > > >> > generating/maintaining >>> > > > > > > >> > >>> >> short >>> > > > > > > >> > >>> >> >>>>>>>>>> time valid certificates would be a >>> hard >>> > > > (that's >>> > > > > > the >>> > > > > > > >> > reason >>> > > > > > > >> > >>> KDC >>> > > > > > > >> > >>> >> like servers >>> > > > > > > >> > >>> >> >>>>>>>>>> exist). >>> > > > > > > >> > >>> >> >>>>>>>>>> Having long time valid certificates >>> would >>> > > > widen >>> > > > > > the >>> > > > > > > >> > attack >>> > > > > > > >> > >>> >> >>>>>>>>>> surface but since the first concern is >>> > there >>> > > > > this >>> > > > > > is >>> > > > > > > >> > just a >>> > > > > > > >> > >>> >> cosmetic issue. >>> > > > > > > >> > >>> >> >>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>> All in all using TLS certificates is >>> not >>> > > > > > sufficient >>> > > > > > > in >>> > > > > > > >> > >>> these >>> > > > > > > >> > >>> >> >>>>>>>>>> environments unfortunately. >>> > > > > > > >> > >>> >> >>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>> BR, >>> > > > > > > >> > >>> >> >>>>>>>>>> G >>> > > > > > > >> > >>> >> >>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>> On Thu, Jun 3, 2021 at 12:49 PM Till >>> > > Rohrmann >>> > > > < >>> > > > > > > >> > >>> >> >>>>>>>>>> trohrm...@apache.org> wrote: >>> > > > > > > >> > >>> >> >>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>> Thanks for the information Gabor. If >>> it >>> > is >>> > > > > about >>> > > > > > > >> > securing >>> > > > > > > >> > >>> the >>> > > > > > > >> > >>> >> >>>>>>>>>>> communication between the REST >>> client and >>> > > the >>> > > > > > REST >>> > > > > > > >> > server, >>> > > > > > > >> > >>> >> then Flink >>> > > > > > > >> > >>> >> >>>>>>>>>>> already supports enabling mutual SSL >>> > > > > > authentication >>> > > > > > > >> [1]. >>> > > > > > > >> > >>> >> Would this be >>> > > > > > > >> > >>> >> >>>>>>>>>>> enough to secure the communication >>> and to >>> > > > pass >>> > > > > an >>> > > > > > > >> audit? >>> > > > > > > >> > >>> >> >>>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>> [1] >>> > > > > > > >> > >>> >> >>>>>>>>>>> >>> > > > > > > >> > >>> >> >>> > > > > > > >> > >>> >>> > > > > > > >> > >>> > > > > > > >> >>> > > > > > > >>> > > > > > >>> > > > > >>> > > > >>> > > >>> > >>> https://ci.apache.org/projects/flink/flink-docs-master/docs/deployment/security/security-ssl/#external--rest-connectivity >>> > > > > > > >> > >>> >> >>>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>> Cheers, >>> > > > > > > >> > >>> >> >>>>>>>>>>> Till >>> > > > > > > >> > >>> >> >>>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>> On Thu, Jun 3, 2021 at 10:33 AM Gabor >>> > > > Somogyi < >>> > > > > > > >> > >>> >> >>>>>>>>>>> gabor.g.somo...@gmail.com> wrote: >>> > > > > > > >> > >>> >> >>>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> Hi Till, >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> Since I'm working in security area >>> 10+ >>> > > years >>> > > > > let >>> > > > > > > me >>> > > > > > > >> > >>> share my >>> > > > > > > >> > >>> >> >>>>>>>>>>>> thought. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> I would like to emphasise there are >>> > > experts >>> > > > > > better >>> > > > > > > >> than >>> > > > > > > >> > >>> me >>> > > > > > > >> > >>> >> but >>> > > > > > > >> > >>> >> >>>>>>>>>>>> I have some >>> > > > > > > >> > >>> >> >>>>>>>>>>>> basics. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> The discussion is open and not >>> trying to >>> > > > tell >>> > > > > > > alone >>> > > > > > > >> > >>> things... >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > I mean if an attacker can get >>> access >>> > to >>> > > > one >>> > > > > of >>> > > > > > > the >>> > > > > > > >> > >>> >> machines, >>> > > > > > > >> > >>> >> >>>>>>>>>>>> then it >>> > > > > > > >> > >>> >> >>>>>>>>>>>> should also be possible to obtain >>> the >>> > > right >>> > > > > > > Kerberos >>> > > > > > > >> > >>> token. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> Not necessarily. For example if one >>> gets >>> > > > > access >>> > > > > > > to a >>> > > > > > > >> > >>> specific >>> > > > > > > >> > >>> >> >>>>>>>>>>>> user's >>> > > > > > > >> > >>> >> >>>>>>>>>>>> credentials then it's not possible >>> to >>> > > > > compromise >>> > > > > > > >> other >>> > > > > > > >> > >>> user's >>> > > > > > > >> > >>> >> >>>>>>>>>>>> jobs, data, >>> > > > > > > >> > >>> >> >>>>>>>>>>>> etc... >>> > > > > > > >> > >>> >> >>>>>>>>>>>> Security is like an onion, the more >>> > layers >>> > > > has >>> > > > > > > been >>> > > > > > > >> > >>> added the >>> > > > > > > >> > >>> >> >>>>>>>>>>>> more time an >>> > > > > > > >> > >>> >> >>>>>>>>>>>> attacker needs to proceed. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> At the end of the day if one is in, >>> then >>> > > > most >>> > > > > > > >> probably >>> > > > > > > >> > >>> can >>> > > > > > > >> > >>> >> find >>> > > > > > > >> > >>> >> >>>>>>>>>>>> the way but >>> > > > > > > >> > >>> >> >>>>>>>>>>>> this time is normally enough to >>> > sysadmins >>> > > or >>> > > > > > > >> security >>> > > > > > > >> > >>> >> experts to >>> > > > > > > >> > >>> >> >>>>>>>>>>>> close down the system and minimize >>> the >>> > > > damage. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> The other thing is that all tokens >>> has a >>> > > > > timeout >>> > > > > > > >> and if >>> > > > > > > >> > >>> the >>> > > > > > > >> > >>> >> >>>>>>>>>>>> token is >>> > > > > > > >> > >>> >> >>>>>>>>>>>> invalid then the attacker can't >>> proceed >>> > > > > further. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > Is Kerberos also the standard >>> > > > authentication >>> > > > > > > >> protocol >>> > > > > > > >> > >>> for >>> > > > > > > >> > >>> >> >>>>>>>>>>>> Kubernetes >>> > > > > > > >> > >>> >> >>>>>>>>>>>> deployments? >>> > > > > > > >> > >>> >> >>>>>>>>>>>> Kerberos is an industry standard >>> which >>> > is >>> > > > > > > >> > >>> cloud/deployment >>> > > > > > > >> > >>> >> >>>>>>>>>>>> agnostic and it >>> > > > > > > >> > >>> >> >>>>>>>>>>>> can be used in any deployments >>> including >>> > > > k8s. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> The main intention is to use >>> kerberos in >>> > > k8s >>> > > > > > > >> > deployments >>> > > > > > > >> > >>> too >>> > > > > > > >> > >>> >> >>>>>>>>>>>> since we're >>> > > > > > > >> > >>> >> >>>>>>>>>>>> going this direction as well. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> Please see how Spark does this: >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> > > > > > > >> > >>> >> >>> > > > > > > >> > >>> >>> > > > > > > >> > >>> > > > > > > >> >>> > > > > > > >>> > > > > > >>> > > > > >>> > > > >>> > > >>> > >>> https://spark.apache.org/docs/latest/security.html#secure-interaction-with-kubernetes >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> Last but not least the most >>> important >>> > > reason >>> > > > > to >>> > > > > > > add >>> > > > > > > >> at >>> > > > > > > >> > >>> least >>> > > > > > > >> > >>> >> >>>>>>>>>>>> one strong >>> > > > > > > >> > >>> >> >>>>>>>>>>>> authentication is that we have >>> users who >>> > > has >>> > > > > > > >> > >>> >> >>>>>>>>>>>> hard requirements on this. They're >>> doing >>> > > > > > security >>> > > > > > > >> > audits >>> > > > > > > >> > >>> and >>> > > > > > > >> > >>> >> if >>> > > > > > > >> > >>> >> >>>>>>>>>>>> they fail >>> > > > > > > >> > >>> >> >>>>>>>>>>>> then it's deal breaking. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> That is why we have added kerberos >>> at >>> > the >>> > > > > first >>> > > > > > > >> place. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> Unfortunately we >>> > > > > > > >> > >>> >> >>>>>>>>>>>> can't name them in this public list, >>> > > however >>> > > > > > > >> > >>> >> >>>>>>>>>>>> the customers who specifically >>> asked for >>> > > > this >>> > > > > > were >>> > > > > > > >> > >>> mainly in >>> > > > > > > >> > >>> >> >>>>>>>>>>>> the banking >>> > > > > > > >> > >>> >> >>>>>>>>>>>> and telco sector. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> BR, >>> > > > > > > >> > >>> >> >>>>>>>>>>>> G >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> On Thu, Jun 3, 2021 at 9:20 AM Till >>> > > > Rohrmann < >>> > > > > > > >> > >>> >> >>>>>>>>>>>> trohrm...@apache.org> wrote: >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > Thanks for updating the document >>> > Márton. >>> > > > Why >>> > > > > > is >>> > > > > > > it >>> > > > > > > >> > that >>> > > > > > > >> > >>> >> banks >>> > > > > > > >> > >>> >> >>>>>>>>>>>> will >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > consider it more secure if Flink >>> comes >>> > > > with >>> > > > > > > >> Kerberos >>> > > > > > > >> > >>> >> >>>>>>>>>>>> authentication >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > (assuming a properly secured >>> setup)? I >>> > > > mean >>> > > > > if >>> > > > > > > an >>> > > > > > > >> > >>> attacker >>> > > > > > > >> > >>> >> >>>>>>>>>>>> can get access >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > to one of the machines, then it >>> should >>> > > > also >>> > > > > be >>> > > > > > > >> > >>> possible to >>> > > > > > > >> > >>> >> >>>>>>>>>>>> obtain the right >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > Kerberos token. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > I am not an authentication expert >>> and >>> > > > that's >>> > > > > > > why I >>> > > > > > > >> > >>> wanted >>> > > > > > > >> > >>> >> to >>> > > > > > > >> > >>> >> >>>>>>>>>>>> ask what are >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > other authentication protocols >>> other >>> > > than >>> > > > > > > >> Kerberos? >>> > > > > > > >> > >>> Why did >>> > > > > > > >> > >>> >> >>>>>>>>>>>> we select >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > Kerberos and not any other >>> > > authentication >>> > > > > > > >> protocol? >>> > > > > > > >> > >>> Maybe >>> > > > > > > >> > >>> >> you >>> > > > > > > >> > >>> >> >>>>>>>>>>>> can list the >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > pros and cons for the different >>> > > protocols. >>> > > > > Is >>> > > > > > > >> > Kerberos >>> > > > > > > >> > >>> also >>> > > > > > > >> > >>> >> >>>>>>>>>>>> the standard >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > authentication protocol for >>> Kubernetes >>> > > > > > > >> deployments? >>> > > > > > > >> > If >>> > > > > > > >> > >>> not, >>> > > > > > > >> > >>> >> >>>>>>>>>>>> what would be >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > the answer when deploying on K8s? >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > Cheers, >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > Till >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > On Wed, Jun 2, 2021 at 12:07 PM >>> Gabor >>> > > > > Somogyi >>> > > > > > < >>> > > > > > > >> > >>> >> >>>>>>>>>>>> gabor.g.somo...@gmail.com> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > wrote: >>> > > > > > > >> > >>> >> >>>>>>>>>>>> > >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >> Hi team, >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >> Happy to be here and hope I can >>> > provide >>> > > > > > quality >>> > > > > > > >> > >>> additions >>> > > > > > > >> > >>> >> in >>> > > > > > > >> > >>> >> >>>>>>>>>>>> the future. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >> Thank you all for helpful the >>> > > > suggestions! >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >> Considering them the FLIP has >>> been >>> > > > modified >>> > > > > > and >>> > > > > > > >> the >>> > > > > > > >> > >>> work >>> > > > > > > >> > >>> >> >>>>>>>>>>>> continues on the >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >> already existing Jira. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >> BR, >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >> G >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >> On Wed, Jun 2, 2021 at 11:23 AM >>> > Márton >>> > > > > > Balassi >>> > > > > > > < >>> > > > > > > >> > >>> >> >>>>>>>>>>>> balassi.mar...@gmail.com> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >> wrote: >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> Thanks, Chesney - I totally >>> missed >>> > > that. >>> > > > > > > >> Answered >>> > > > > > > >> > on >>> > > > > > > >> > >>> the >>> > > > > > > >> > >>> >> >>>>>>>>>>>> ticket too, let >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> us continue there then. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> Till, I agree that we should >>> keep >>> > this >>> > > > > > > codepath >>> > > > > > > >> as >>> > > > > > > >> > >>> slim >>> > > > > > > >> > >>> >> as >>> > > > > > > >> > >>> >> >>>>>>>>>>>> possible. It >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> is an important design decision >>> that >>> > > we >>> > > > > aim >>> > > > > > to >>> > > > > > > >> keep >>> > > > > > > >> > >>> the >>> > > > > > > >> > >>> >> >>>>>>>>>>>> list of >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> authentication protocols to a >>> > minimum. >>> > > > We >>> > > > > > > >> believe >>> > > > > > > >> > >>> that >>> > > > > > > >> > >>> >> this >>> > > > > > > >> > >>> >> >>>>>>>>>>>> should not be a >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> primary concern of Flink and a >>> > trusted >>> > > > > proxy >>> > > > > > > >> > service >>> > > > > > > >> > >>> (for >>> > > > > > > >> > >>> >> >>>>>>>>>>>> example Apache >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> Knox) should be used to enable a >>> > > > multitude >>> > > > > > of >>> > > > > > > >> > enduser >>> > > > > > > >> > >>> >> >>>>>>>>>>>> authentication >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> mechanisms. The bare minimum of >>> > > > > > authentication >>> > > > > > > >> > >>> mechanisms >>> > > > > > > >> > >>> >> >>>>>>>>>>>> to support >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> consequently consist of a single >>> > > strong >>> > > > > > > >> > >>> authentication >>> > > > > > > >> > >>> >> >>>>>>>>>>>> protocol for which >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> Kerberos is the enterprise >>> solution >>> > > and >>> > > > > HTTP >>> > > > > > > >> Basic >>> > > > > > > >> > >>> >> primary >>> > > > > > > >> > >>> >> >>>>>>>>>>>> for development >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> and light-weight scenarios. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> Added the above wording to G's >>> doc. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> > > > > > > >> > >>> >> >>> > > > > > > >> > >>> >>> > > > > > > >> > >>> > > > > > > >> >>> > > > > > > >>> > > > > > >>> > > > > >>> > > > >>> > > >>> > >>> https://docs.google.com/document/d/1NMPeJ9H0G49TGy3AzTVVJVKmYC0okwOtqLTSPnGqzHw/edit >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> On Tue, Jun 1, 2021 at 11:47 AM >>> > > Chesnay >>> > > > > > > >> Schepler < >>> > > > > > > >> > >>> >> >>>>>>>>>>>> ches...@apache.org> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> wrote: >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> There's a related effort: >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >>> > > > > > > >> https://issues.apache.org/jira/browse/FLINK-21108 >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> On 6/1/2021 10:14 AM, Till >>> Rohrmann >>> > > > > wrote: >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > Hi Gabor, welcome to the >>> Flink >>> > > > > community! >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > Thanks for sharing this >>> proposal >>> > > with >>> > > > > the >>> > > > > > > >> > >>> community >>> > > > > > > >> > >>> >> >>>>>>>>>>>> Márton. In >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> general, I >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > agree that authentication is >>> > > missing >>> > > > > and >>> > > > > > > that >>> > > > > > > >> > >>> this is >>> > > > > > > >> > >>> >> >>>>>>>>>>>> required for >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> using >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > Flink within an enterprise. >>> The >>> > > > thing I >>> > > > > > am >>> > > > > > > >> > >>> wondering >>> > > > > > > >> > >>> >> is >>> > > > > > > >> > >>> >> >>>>>>>>>>>> whether this >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > feature strictly needs to be >>> > > > > implemented >>> > > > > > > >> inside >>> > > > > > > >> > of >>> > > > > > > >> > >>> >> Flink >>> > > > > > > >> > >>> >> >>>>>>>>>>>> or whether a >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> proxy >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > setup could do the job? Have >>> you >>> > > > > > considered >>> > > > > > > >> this >>> > > > > > > >> > >>> >> option? >>> > > > > > > >> > >>> >> >>>>>>>>>>>> If yes, then >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> it >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > would be good to list it >>> under >>> > the >>> > > > > point >>> > > > > > of >>> > > > > > > >> > >>> rejected >>> > > > > > > >> > >>> >> >>>>>>>>>>>> alternatives. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > I do see the benefit of >>> > > implementing >>> > > > > this >>> > > > > > > >> > feature >>> > > > > > > >> > >>> >> inside >>> > > > > > > >> > >>> >> >>>>>>>>>>>> of Flink if >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> many >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > users need it. If not, then >>> it >>> > > might >>> > > > be >>> > > > > > > >> easier >>> > > > > > > >> > >>> for the >>> > > > > > > >> > >>> >> >>>>>>>>>>>> project to not >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > increase the surface area >>> since >>> > it >>> > > > > makes >>> > > > > > > the >>> > > > > > > >> > >>> overall >>> > > > > > > >> > >>> >> >>>>>>>>>>>> maintenance >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> harder. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > Cheers, >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > Till >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > On Mon, May 31, 2021 at 4:57 >>> PM >>> > > > Márton >>> > > > > > > >> Balassi < >>> > > > > > > >> > >>> >> >>>>>>>>>>>> mbala...@apache.org> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> wrote: >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> > >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> Hi team, >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> Firstly I would like to >>> > introduce >>> > > > > Gabor >>> > > > > > > or G >>> > > > > > > >> > [1] >>> > > > > > > >> > >>> for >>> > > > > > > >> > >>> >> >>>>>>>>>>>> short to the >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> community, he is a Spark >>> > committer >>> > > > who >>> > > > > > has >>> > > > > > > >> > >>> recently >>> > > > > > > >> > >>> >> >>>>>>>>>>>> transitioned to >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> the >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> Flink Engineering team at >>> > Cloudera >>> > > > and >>> > > > > > is >>> > > > > > > >> > looking >>> > > > > > > >> > >>> >> >>>>>>>>>>>> forward to >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> contributing >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> to Apache Flink. Previously >>> G >>> > > > > primarily >>> > > > > > > >> focused >>> > > > > > > >> > >>> on >>> > > > > > > >> > >>> >> >>>>>>>>>>>> Spark Streaming >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> and >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> security. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> Based on requests from our >>> > > > customers G >>> > > > > > has >>> > > > > > > >> > >>> >> implemented >>> > > > > > > >> > >>> >> >>>>>>>>>>>> Kerberos and >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> HTTP >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> Basic Authentication for the >>> > Flink >>> > > > > > > Dashboard >>> > > > > > > >> > and >>> > > > > > > >> > >>> >> >>>>>>>>>>>> HistoryServer. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> Previously >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> lacked an authentication >>> story. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> We are looking to contribute >>> > this >>> > > > > > > >> functionality >>> > > > > > > >> > >>> back >>> > > > > > > >> > >>> >> to >>> > > > > > > >> > >>> >> >>>>>>>>>>>> the >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> community, we >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> believe that given Flink's >>> > > maturity >>> > > > > > there >>> > > > > > > >> > should >>> > > > > > > >> > >>> be a >>> > > > > > > >> > >>> >> >>>>>>>>>>>> common code >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> solution >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> for this general pattern. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> We are looking forward to >>> your >>> > > > > feedback >>> > > > > > on >>> > > > > > > >> G's >>> > > > > > > >> > >>> >> design. >>> > > > > > > >> > >>> >> >>>>>>>>>>>> [2] >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> [1] >>> http://gaborsomogyi.com/ >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> [2] >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> > > > > > > >> > >>> >> >>> > > > > > > >> > >>> >>> > > > > > > >> > >>> > > > > > > >> >>> > > > > > > >>> > > > > > >>> > > > > >>> > > > >>> > > >>> > >>> https://docs.google.com/document/d/1NMPeJ9H0G49TGy3AzTVVJVKmYC0okwOtqLTSPnGqzHw/edit >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>>> >>> > > > > > > >> > >>> >> >>>>>>>>>>> >>> > > > > > > >> > >>> >> >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> > -- >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> > Konstantin Knauf >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> > https://twitter.com/snntrable >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> > https://github.com/knaufk >>> > > > > > > >> > >>> > >>> > > > > > > >> > >>> >>> > > > > > > >> > >> >>> > > > > > > >> > >> >>> > > > > > > >> > >> -- >>> > > > > > > >> > >> >>> > > > > > > >> > >> Konstantin Knauf >>> > > > > > > >> > >> >>> > > > > > > >> > >> https://twitter.com/snntrable >>> > > > > > > >> > >> >>> > > > > > > >> > >> https://github.com/knaufk >>> > > > > > > >> > >> >>> > > > > > > >> > > >>> > > > > > > >> > >>> > > > > > > >> >>> > > > > > > > >>> > > > > > > >>> > > > > > >>> > > > > >>> > > > >>> > > > >>> > > > -- >>> > > > >>> > > > Konstantin Knauf >>> > > > >>> > > > https://twitter.com/snntrable >>> > > > >>> > > > https://github.com/knaufk >>> > > > >>> > > >>> > >>> >>