Replies: 2 comments 3 replies
-
Hi @jhart0 thanks for reporting this. I have some concerns about allowing a refresh token to be provided through configuration. I have explained this in detail here: apache/iceberg#12362 (comment) In short, my fear is that even if that was implemented, it wouldn't fly, because refresh tokens are generally "one-time" tokens. So, if you share a refresh token, chances are that only one party would be able to use it, and all other parties would get a 401. Instead, I think we need to investigate different ways. Token exchange might be a solution: if the user is already authenticated when the catalog is created, then we could configure the catalog to exchange that token against a token for itself. The resulting token would "retain" information about the user. Would that work for you? |
Beta Was this translation helpful? Give feedback.
-
Also, when you put things like S3 request signing in the mix, the situation can become even more complex: see #132 for some insights. Basically, worker nodes cannot get access to a user's token that easily. Again, token exchange might be one of the solutions to explore: if a user token is provided in the catalog configuration as a subject token, that subject token will get propagated to worker nodes. Then each worker node could exchange that token for a new one. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
When using Flink in a managed environment, it's not possible to initiate the Authorization Code flow as there is no way to follow the redirect URL.
Ideally, it would be possible to provide an access token and refresh token to authmgr and it would then handle the token refresh using those credentials. Presently, only an access token can be directly provided and it does not honour a refresh token, rather it waits until the access token expires.
This is to support flows where the Flink job is created programatically by an already authenticated user and the downstream catalog needs to make authorization decisions based on a user, so client_credentials is not suitable.
Is there a way to support this workflow today, for example providing the refresh token as a header perhaps?
Beta Was this translation helpful? Give feedback.
All reactions