-
Notifications
You must be signed in to change notification settings - Fork 153
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add guides for common OIDC providers #3917
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
--- | ||
title: Common OIDC provider configurations | ||
makkes marked this conversation as resolved.
Show resolved
Hide resolved
|
||
--- | ||
|
||
This page provides guides for configuring Weave GitOps with the most common OIDC providers. | ||
|
||
|
||
Google's identity provider does not support the groups scope which Weave GitOps requests by default. That's why in | ||
this example the `customScopes` field is set to only request the `openid` and `email` scopes. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 👍🏻 |
||
|
||
1. Obtain the client ID and secret by following the [official guide](https://developers.google.com/identity/openid-connect/openid-connect) | ||
from Google. | ||
1. Configure Weave GitOps: | ||
|
||
```yaml | ||
apiVersion: v1 | ||
kind: Secret | ||
metadata: | ||
name: oidc-auth | ||
namespace: WEAVE_GITOPS_NAMESPACE | ||
stringData: | ||
clientID: CLIENT_ID_FROM_STEP_1 | ||
clientSecret: CLIENT_SECRET_FROM_STEP_1 | ||
issuerURL: https://accounts.google.com | ||
redirectURL: BASE_WEAVE_GITOPS_URL/oauth2/callback | ||
customScopes: openid,email | ||
``` | ||
makkes marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
## Azure AD | ||
|
||
1. Obtain the client ID and secret by following the [official guide](https://learn.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app) | ||
from Microsoft. | ||
1. [optional] Configure group claims by following this [official guide](https://learn.microsoft.com/en-us/security/zero-trust/develop/configure-tokens-group-claims-app-roles). | ||
1. Configure Weave GitOps: | ||
|
||
```yaml | ||
apiVersion: v1 | ||
kind: Secret | ||
metadata: | ||
name: oidc-auth | ||
namespace: WEAVE_GITOPS_NAMESPACE | ||
stringData: | ||
clientID: CLIENT_ID_FROM_STEP_1 | ||
clientSecret: CLIENT_SECRET_FROM_STEP_1 | ||
issuerURL: https://login.microsoftonline.com/TENANT_ID/v2.0 | ||
redirectURL: BASE_WEAVE_GITOPS_URL/oauth2/callback | ||
customScopes: openid | ||
claimUsername: sub | ||
``` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe we want to talk about the groups on Azure? And recommend that users use roles https://learn.microsoft.com/en-us/security/zero-trust/develop/configure-tokens-group-claims-app-roles ? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 👍🏻 I will need to set this up one more time to see what specifically is necessary for getting the groups. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Tested this once more and added a step to configure group claims. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Did this get pushed? customScopes: openid There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The funny thing is you don't need to request any other scope if the groups claim is configured. The claim will be pushed nonetheless. 🤷🏻♂️ Microsoft doing Microsoft things. |
||
|
||
## Keycloak | ||
|
||
Keycloak is highly customizable so the steps to obtain client ID and secret will vary depending on your setup. The | ||
general steps are very similar and the following steps point to the appropriate pages in the official Keycloak | ||
documentation: | ||
|
||
1. Log in to the Keycloak admin console and [create a realm](https://www.keycloak.org/docs/latest/server_admin/#configuring-realms). | ||
1. [Create a client application](https://www.keycloak.org/docs/latest/authorization_services/index.html#_resource_server_create_client) | ||
and choose "OpenID Connect" as the client type. | ||
1. Make sure to set the "Client Authenticator" on the "Credentials" tab to "Client Id and Secret" and generate a secret. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we need to say anything about scopes for the client? Do we need to say anything about groups for this? (realm roles?!) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I basically stopped iterating on this part of the page as soon as #4113 arrived because that PR provides all the nitty-gritty details of using WeGO with Keycloak. So I suppose this part will be overridden soon, anyway. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Gotcha, maybe we can remove this? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. And link to the other doc? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, I will as soon as the other doc is merged. |
||
1. Configure Weave GitOps: | ||
|
||
```yaml | ||
apiVersion: v1 | ||
kind: Secret | ||
metadata: | ||
name: oidc-auth | ||
namespace: WEAVE_GITOPS_NAMESPACE | ||
stringData: | ||
clientID: CLIENT_ID_FROM_STEP_2 | ||
clientSecret: CLIENT_SECRET_FROM_STEP_3 | ||
issuerURL: https://KEYCLOAK_DOMAIN/realms/KEYCLOAK_REALM | ||
redirectURL: BASE_WEAVE_GITOPS_URL/oauth2/callback | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💯