I am developing an application with Python which consumes resources from Google Cloud. I would like to automate the authentication process (right now what I have is the authentication via an API Key which allows me to consume the resources the service account has access to).
However, what I want is the user to authenticate via my application to his Google account and only consume from the resources the user has access to. For example, if I am showing data from BigQuery table and the user doesn't have access to it, then he won't be able to work with my application.
I don't have to generate an API key for each user or client, neither I want all the users to consume the same API Key. I would like to have each user authenticated in my application so that I can know which user did what.
Is there any way to do this automatically? Prompt a login interface and have access to the users's Google Cloud resources.
By the way, I am new to the Google Cloud world, so maybe there is some trivial solution but I don't know which is the right way.
I saw in the documentation a lot of ways authenticating but most of the require downloading a json configuration for my own Google Cloud account and I guess this won't work for other users from other organizations, and I don't want to generate a json for each possible user using my application).