UI_BAKERY_SSO_CONFIGURATION variable accepts a JSON array of configuration objects. Each object represents one SSO connection, whether it's OAuth or SAML.
Optionally, you can define a unique role mapping for each provider. If a configuration object lacks role syncing settings, the values from the corresponding environment variable will be used.
Configuration for OAuth provider
{"type": "oauth2","name": "okta_login",// required, equilient to UI_BAKERY_OAUTH_CLIENT_ID env variable"oauthClientId": "",// required, equilient to UI_BAKERY_OAUTH_SECRET env variable"oauthClientSecret": "",// required, equilient to UI_BAKERY_OAUTH_AUTH_URL env variable"oauthAuthorizationUrl": "",// required, equilient to UI_BAKERY_OAUTH_TOKEN_URL env variable"oauthTokenUrl": "",// required if "oauthGetClaimsFromToken" is false,// equilient to UI_BAKERY_OAUTH_USERINFO_URL env variable"oauthUserInfoUrl": "",// equilient to UI_BAKERY_OAUTH_GET_CLAIMS_FROM_TOKEN env variable"oauthGetClaimsFromToken": false,// required, equilient to UI_BAKERY_OAUTH_SCOPE env variable"oauthScope": "profile email openid",// equilient to UI_BAKERY_OAUTH_EMAIL_KEY env variable"oauthEmailKey": "email",// equilient to UI_BAKERY_OAUTH_ID_KEY env variable"oauthIdKey": "sub",// equilient to UI_BAKERY_OAUTH_TOKEN_URL_ADDITIONAL_PARAMS env variable"oauthTokenUrlAdditionalParams": { "param":"value"},// equilient to UI_BAKERY_OAUTH_SIGN_OUT_WHEN_TOKEN_EXPIRED env variable"oauthSignOutWhenTokenExpired": false,// equilient to UI_BAKERY_OAUTH_FORCE_TOKEN_REFRESH env variable"oauthForceTokenRefresh": false,// equilient to UI_BAKERY_OAUTH_SYNC_ROLES_ON_TOKEN_REFRESH env variable"oauthSyncRolesOnTokenRefresh": false,// equilient to UI_BAKERY_AUTH_RESTRICTED_DOMAIN env variable"restrictedDomain": "example.com",// equilient to UI_BAKERY_LOGOUT_REDIRECT"logoutRedirect": "https://example.com/logout"}
Configuration for SAML provider
For SAML providers, when registering SSO integration with JSON, the Sign-On URL should match: https://YOUR_INSTANCE/api/auth/login/{samlSSO}, where {samlSSO} is the name provided in the UI Bakery configuration.
{"type": "saml","name": "samlSSO",// required, equilient to UI_BAKERY_SAML_ENTITY_ID env variable"samlEntityId": "string",// required required if "metadataXML" is not provided,// equilient to UI_BAKERY_SAML_METADATA_URL env variable "samlMetadataURL": "https://provider/metadata.xml",// required if "metadataURL" is not provided "samlMetadataXML": "<xml ..."}
Common settings for OAuth and SAML integrations
{// required, can be "oauth2" or "saml""type": "oauth2",// required, unique name, can contain words, digits, "_" or "-""name": "ssoName",// is sync roles enabled for the described configuration// equilient to UI_BAKERY_SSO_SYNC_ROLES env variable "syncRoles": false,// equilient to UI_BAKERY_SSO_SYNC_ROLES_BY_NAME env variable "syncRolesByName": false,// equilient to UI_BAKERY_SSO_SYNC_ROLES_ON_LOGIN env variable "syncRolesOnLogin": false,// equilient to UI_BAKERY_SSO_HARD_SYNC_ROLES env variable "hardRoleSync": false,// equilient to UI_BAKERY_SSO_SYNC_ROLES_FOR_EDITOR_AND_ADMIN env variable "syncRoleForEditorAndAdmin": false,// equilient to UI_BAKERY_ROLE_MAPPING env variable "roleMapping": "role1->editor,role2->admin",// equilient to UI_BAKERY_SSO_ROLE_CLAIM env variable "roleClaim": "role",// equilient to UI_BAKERY_SSO_NAME_CLAIM env variable "nameClaim": "name",// equilient to UI_BAKERY_LOGOUT_REDIRECT env variable,// requires UI_BAKERY_SSO_BROADCAST_TOKEN=true"logoutRedirect": "https://example.com/logout",// equilient to UI_BAKERY_BRANDING_AUTH_SSO_BTN_TEXT env variable "buttonText": "Login with SSO",// equilient to UI_BAKERY_BRANDING_AUTH_SSO_BTN_STYLES env variable "buttonStyles": "height 16px; color: red;",// equilient to UI_BAKERY_BRANDING_AUTH_SSO_BTN_ICON env variable "buttonIcon": "ICON URL",// equilient to UI_BAKERY_BRANDING_AUTH_SSO_BTN_ICON_STYLES env variable "buttonIconStyles": "height 16px; width: 16px"}