To enable Google OAuth2, you need to register a new application with Google.
If upgrading Kloudfuse release 1.3.4 and earlier, please make sure to follow post upgrade steps after finishing upgrade.
Create Google OAuth2 Keys
Go to the Credentials page.
Click Create credentials > OAuth client ID.
Select the Web application application type.
Enter Name (e.g. Kloudfuse)
Enter URL of the kloudfuse installation in the Authorized JavaScript Origins. Example: kloudfuse.yourcompany.com
Enter URL with /oauth2/callback of the kloudfuse in the Authorized redirect URIs. Example: kloudfuse.yourcompany.com/oauth2/callback
Click Create
Copy the Client ID and Client Secret from the ‘OAuth Client’ modal. It is required for further steps.
Enable Google Auth in Kloudfuse
...
Edit the auth-credentials secret in kfuse namespace of your kloudfuse installation.
Replace/add Client ID, Client Secret and google domain - you will need to do base64 encode the Client ID, Client Secret and the google domain.
Code Block kubectl edit secret auth-credentials -n kfuse
...
Set the authentication type (AUTH_TYPE) in auth config map to “google”
Code Block kubectl edit configmap auth -n kfuse
You can also edit the values.yaml from your original installation of kfuse to add:
Code Block auth: config: AUTH_TYPE: "google"
You will need to do
Code Block helm upgrade --install kfuse -f <values.yaml> -f <gcp/aws>.yaml
...
For the config to take effect
...
Restart the auth service
...
Option 1. Using Client ID & Secret
In your custom values.yaml, add google client ID and secret:
Code Block |
---|
kfuse-auth:
oauth2-proxy:
config:
clientID: "REPLACE_CLIENT_ID"
clientSecret: "REPLACE_CLIENT_SECRET" |
Option 2. Using a Kubernetes secrets.
Create 2 kubernetes secrets in
kfuse
namespace.Create secret called
kfuse-auth-users
as mentioned here.Create secret called
kfuse-auth-google
. Use base64 encoded values of client-id and client-secret from above. To generate cookie secret, use these steps.
Code Block |
---|
apiVersion: v1
data:
client-id: <base 64 encoded google client id>
client-secret: <base 64 encoded google client secret>
cookie-secret: <base 64 encoded random value>
kind: Secret
metadata:
name: kfuse-auth-google
type: Opaque |
and refer it from your custom values.yaml by adding the following
Code Block |
---|
kfuse-auth:
oauth2-proxy:
config:
existingSecret: "kfuse-auth-google"
htpasswdFile:
existingSecret: "kfuse-auth-users" |