Configure SAML and OIDC providers for Chalk
Before configuring SAML, please ensure that you have the information for configuring your SAML provider. For Okta, please view this documentation.
To configure SAML for your Chalk deployment, you will need to add the following information to your values.yaml:
chalk:
metadata:
frontend:
custom_auth_providers: '[{"id":"YOUR TEAM ID","type":"saml","name":"Okta"}]'
saml_issuer: SAML_ISSUER
saml_login_url: SAML_LOGIN_URL
saml_logout_url: SAML_LOGOUT_URL
saml_team: YOUR TEAM ID
idp_saml_cert: |
-----BEGIN CERTIFICATE-----
<your saml cert here>
-----END CERTIFICATE-----
additional_saml_applications:
- saml_issuer: SECONDARY_SAML_ISSUER
saml_login_url: SECONDARY_SAML_LOGIN_URL
saml_logout_url: SECONDARY_SAML_LOGOUT_URL
saml_team: SECONDARY_TEAM_ID
idp_saml_cert: |
-----BEGIN CERTIFICATE-----
<your secondary saml cert here>
-----END CERTIFICATE-----
Use additional_saml_applications for additional SAML applications. Each
entry must provide its issuer, login URL, logout URL, team, and IdP
certificate. Set is_primary_config: true on one configuration when a team
has multiple SAML applications and users should be directed to that
application by the SSO login flow.
IDP SAML cert is the certificate that your SAML provider uses to sign the SAML responses. This is typically found in, e.g., the Okta web UI.
Note: this configuration must be aligned with the SAML_CERT and SAML_KEY that you used to configure your SAML
provider. By default, Chalk automatically generates a unique SAML_CERT and SAML_KEY in the chalk-generated-secrets
secret object.
Custom Auth Providers is a JSON field that specifies what authentication providers are available on the /login page. This controls what providers are displayed, providers that are specified in the YAML but not listed here will be hidden but still function via Identity Provider-initiated SSO.
Custom Auth Providers is a list, where each object can take in the following fields:
id (required): The Chalk Team ID that this provider will authenticate to.type (required): Either “saml” or “oauth”When the type is “saml”, we support:
name (required): The name of the identity provider being configured. For multiple SAML applications, this can be further diambiguated to “Okta (FedRAMP)”, “Okta (Staging)”, etc.entityId: This should match the issuer that this option should send the user to. Required if there are multiple SAML configurations for the same team.When the type is “oauth”, we support:
name (required): One of “google”, “azure-ad”, “github”, or “keycloak”. To configure OIDC for your Chalk deployment, you will need to add the following information to your values.yaml:
chalk:
metadata:
frontend:
custom_auth_providers: '[{"id":"YOUR TEAM ID","type":"oauth","name":"PROVIDER NAME"}]'
where PROVIDER NAME is the name of the provider you are configuring. The acceptable values for PROVIDER NAME are:
googleazure-adgithubkeycloakYou will also need to add the following information to your chalk-frontend-secrets secret:
GOOGLE_CLIENT_ID=YOUR_GOOGLE_CLIENT_ID
GOOGLE_CLIENT_SECRET=YOUR_GOOGLE_CLIENT_SECRET
AZURE_AD_CLIENT_ID=YOUR_AZURE_AD_CLIENT_ID
AZURE_AD_CLIENT_SECRET=YOUR_AZURE_AD
AZURE_AD_TENANT_ID=YOUR_AZURE_AD_TENANT_ID
GH_CLIENT_ID=YOUR_GITHUB_CLIENT_ID
GH_CLIENT_SECRET=YOUR_GITHUB_CLIENT_SECRET
Note: this configuration is for Keycloak operating as an OIDC provider, rather than a SAML provider.
KEYCLOAK_CLIENT_ID=YOUR_KEYCLOAK_CLIENT_ID
KEYCLOAK_CLIENT_SECRET=YOUR_KEYCLOAK_CLIENT_SECRET