Flyte Project isolation #5084
robert-ulbrich-mercedes-benz
started this conversation in
RFC Incubator
Replies: 1 comment 5 replies
-
IMO using oauth2 for AuthZ is usually frowned upon and leads to problems. Maintaining claims and projects in configuration is also hard. Flyte has API's to create projects, this becomes hard. Also returning all claims will slow down authentication. I am not an expert at this, but seems like we need to think way more deeply about this |
Beta Was this translation helpful? Give feedback.
5 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Motivation
Flyte allows having multiple tenants by using projects and domains. Flyte also comes with an authentication that only
allows access to Flyte if the user is successfully authenticated. Once the user is successfully authenticated, she has full access to all projcets and domains in Flyte e.g. submit a workflow in any Flyte project.
Functional description
In order to protect data from unauthorized access, it makes sense to isolate the Flyte projects from each other.
That way a user can only submit workflows in the project he or she is assigned to. If trying to register a launchplan,
submitting a Flyte workflow or a task in a project the user is not assigned to, will cause an error.
Implementation idea
The projects a user is assigned to, will be identified by reading a claim from an identity token that is issued in the course
of the authentication process. The claim to be read for this purpose is configured in Flyte's configuration file. Also a mapping
between the claim's value and the actual project to be assigned to is maintained in the Flyte configuration.
Limits
So this approach only aims on isolating single Flyte tenants from each other and there is no intention to introduce a full blown
IAM concept including user roles. So any member of a Flyte project still has full access to their project's launch plans data etc.
Beta Was this translation helpful? Give feedback.
All reactions