Hi Christian,

Very nice proposal. Thanks for putting it together! I added some comments
to the doc.

I think it is related to PR #10753 [4], which proposes some foundational
refactoring to the java REST client to enable further enhancements in
OAuth2 flows.

Cheers,
Dmitri.

[4] https://github.com/apache/iceberg/pull/10753

On Wed, Sep 18, 2024 at 4:12 AM Christian Thiel
<christ...@hansetag.com.invalid> wrote:

> Dear everyone,
>
>
> the Iceberg REST specification allows for different ways of
> Authentication, OAuth2 is one of them. Until recently the OAuth2 /token
> endpoint was part of the REST-spec together with datatypes required for the
> client-credential flow. Both have since been removed from the spec for
> security reasons [2].
>
> Probably because it was a part of the spec before, clients today typically
> only implement the client-credential flow. This stays behind OAuth2
> capabilities and is unsuitable for human users. Common IdPs do not
> implement the client-credential flow for principals of human users for good
> reasons.
>
>
>
> To mitigate this problem, we propose an extension of the Iceberg
> documentation in 3 steps. This proposal is neither an extension of the
> Iceberg REST Catalog specification nor OAuth2 itself. The Iceberg REST
> specification already specifies OAuth2 Authentication [3], which includes
> all the flows mentioned in the document of this proposal [1].
>
>
>
> My proposal to go forward is as follows:
>
>    1. Use this proposals Google Doc for alignment in the community: [1]
>
>    
> https://docs.google.com/document/d/1A6bJfSzkTzDWUIegdckSsoaeFxZl1Qn5htI1jzyBQss/edit?usp=sharing
>    Discuss in a catalog sync in 1-2 weeks.
>    2. Condense consensus found in Google Doc to .md and add it to docs
>    3. Implement additional flows in the iceberg-(java, python, rust ..)
>    packages.
>    For Java there is already a PR that goes in this direction which could
>    use some more attention: https://github.com/apache/iceberg/pull/10753
>    For other languages I am not aware of any initiatives.
>    4. Encourage clients to allow configuration of new flows for users
>
> Any feedback welcome!
>
> Thanks
> - Christian
>
> [1]:
> https://docs.google.com/document/d/1A6bJfSzkTzDWUIegdckSsoaeFxZl1Qn5htI1jzyBQss/edit?usp=sharing
> [2]:
> https://docs.google.com/document/d/1Xi5MRk8WdBWFC3N_eSmVcrLhk3yu5nJ9x_wC0ec6kVQ
>
> [3]:
> https://github.com/apache/iceberg/blob/ed73ec43dd25c9023069ea1d3381a6d9229be53a/open-api/rest-catalog-open-api.yaml#L61
>
>
>

Reply via email to