Configure Google OAuth2 Authentication
To enable Google OAuth2, you must register a new application with Google.
Create Google OAuth2 Keys
In the Google environment, follow these steps:
-
Navigate to the Google Credentials page.
-
Click Create credentials > OAuth client ID.
-
Select the Web application type.
-
Enter Name , such as Kloudfuse.
-
Enter URL of the kloudfuse installation in the Authorized JavaScript Origins.
Example:
kloudfuse.yourcompany.com
-
Enter URL that has the
/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.Save it for next steps.
Option 1: Use Client ID and Secret
In your custom-values.yaml
file, add google client ID and secret:
kfuse-auth:
oauth2-proxy:
config:
clientID: "REPLACE_CLIENT_ID"
clientSecret: "REPLACE_CLIENT_SECRET"
Option 2: Use Kubernetes secrets
In the kfuse namespace, create 2 kubernetes secrets:
-
Create a secret called
kfuse-auth-users
as mentioned here. -
Create a new kubernetes secret,
kfuse-auth-users
; you can also update an existing secret.Use the output of
cat users.txt| base64
as the value ofusers.txt
entry in the secret.Use the
edit
command if editing an existing secret.
kubectl edit secret kfuse-auth-users
apiVersion: v1
data:
users.txt: |-
<base64-encoded-value-from-above>
kind: Secret
metadata:
name: kfuse-auth-users
type: Opaque
-
Create a new kubernetes secret,
kfuse-auth-google
.Use base64-encoded values for client id and client secret from
kfuse-auth-users
secret.To generate cookie secret, see the OAuth2 Proxy documentation for Generating a Cookie Secret.
Create kubernetes secret kfuse-auth-googleapiVersion: 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
yaml -
Include the two secrets in your
custom-values.yaml
file:Add secrets tocustom-values.yaml
kfuse-auth: oauth2-proxy: config: existingSecret: "kfuse-auth-google" htpasswdFile: existingSecret: "kfuse-auth-users"
yaml