Design a way for SSO values to be easily created/consumed inside of the extension. With each package having different values for SSO, it may not be possible for "unknown" apps. But, we could create a more unified value set for defining the SSO on the existing apps we have. Our values seem to be inconsistent.
Edited
Designs
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related or that one is blocking others.
Learn more.
I think we need to move all of the IdP specific SSO details to the sso section so that all packages can use them. I see a lot of IdP endpoint hardcoding throughout the templates, which we don't want our mission apps to do. I think this set of yaml will get us what we need:
# -- Global SSO values used for BigBang deployments when sso is enabled, can be overridden by individual packages.sso:# -- Name of the identity providername:keycloak# -- Hostname of the identity providerhost:login.dso.mil# -- Port of the identify provider serviceport:443# -- Identity provider realmrealm:baby-yoda# -- URL for the identity provider. Must use {{ tpl .Values.sso.url . }} to generateurl:"https://{{.Values.sso.provider.host}}/auth/realms/{{.Values.sso.provider.realm}}"saml:# -- SAML authorization relative pathauthorization:"protocol/saml"# -- SAML metadata relative pathmetadata:"protocol/saml/descriptor"# -- OIDC endpoints can be retrieved from `{{ .Values.sso.url }}/.well-known/openid-configuration`oidc:# -- OIDC authorization relative pathauthorization:"protocol/openid-connect/auth"# -- OIDC logout / end session relative pathendSession:"protocol/openid-connect/logout"# -- OIDC JSON Web Key Set (JWKS) relative pathjwks:"protocol/openid-connect/certs"# -- OIDC token relative pathtoken:"protocol/openid-connect/token"# -- OIDC user information relative pathuser:"protocol/openid-connect/userinfo"claims:# -- Claim referring to email address of the useremail:email# -- Claim referring to the name of the username:name# -- Claim referring to the first name of the userfirstname:given_name# -- Claim referring to the last name of the userlastname:family_name# -- Claim referring to the username of the useruser:preferred_username
The current authservice template is using the json string for jwks. We probably don't want to have our users doing this. Instead, we should be able to dynamically retrieve jwks through the endpoint (authservice supports this). Since the jwks shouldn't be changing often, we can set the interval to be large (hourly? daily?). We can support jwks overrides still if the user wants to paste it via values.
One mod to the original plan. The paths for SAML and OIDC will now be absolute. I looked at the doc for using google OIDC and each endpoint is at a different base URL. So, this was needed to support that possibility.