diff --git a/frontend/public/images/sso/Auth0.png b/frontend/public/images/sso/Auth0.png new file mode 100644 index 000000000..e86d76c06 Binary files /dev/null and b/frontend/public/images/sso/Auth0.png differ diff --git a/frontend/public/images/sso/Google.png b/frontend/public/images/sso/Google.png new file mode 100644 index 000000000..b3ed76596 Binary files /dev/null and b/frontend/public/images/sso/Google.png differ diff --git a/frontend/public/images/sso/JumpCloud.png b/frontend/public/images/sso/JumpCloud.png new file mode 100644 index 000000000..94d15f71e Binary files /dev/null and b/frontend/public/images/sso/JumpCloud.png differ diff --git a/frontend/public/images/sso/Keycloak.png b/frontend/public/images/sso/Keycloak.png new file mode 100644 index 000000000..86405f3af Binary files /dev/null and b/frontend/public/images/sso/Keycloak.png differ diff --git a/frontend/public/images/sso/Microsoft Azure.png b/frontend/public/images/sso/Microsoft Azure.png new file mode 100644 index 000000000..c9388d612 Binary files /dev/null and b/frontend/public/images/sso/Microsoft Azure.png differ diff --git a/frontend/public/images/sso/Okta.png b/frontend/public/images/sso/Okta.png new file mode 100644 index 000000000..d742d4347 Binary files /dev/null and b/frontend/public/images/sso/Okta.png differ diff --git a/frontend/src/pages/organization/SettingsPage/components/OrgAuthTab/SSOModal.tsx b/frontend/src/pages/organization/SettingsPage/components/OrgAuthTab/SSOModal.tsx index 9bb793c80..32fa681e2 100644 --- a/frontend/src/pages/organization/SettingsPage/components/OrgAuthTab/SSOModal.tsx +++ b/frontend/src/pages/organization/SettingsPage/components/OrgAuthTab/SSOModal.tsx @@ -20,6 +20,8 @@ import { useToggle } from "@app/hooks"; import { useCreateSSOConfig, useGetSSOConfig, useUpdateSSOConfig } from "@app/hooks/api"; import { UsePopUpState } from "@app/hooks/usePopUp"; +import { SSOModalHeader } from "./SSOModalHeader"; + enum AuthProvider { OKTA_SAML = "okta-saml", AZURE_SAML = "azure-saml", @@ -30,12 +32,32 @@ enum AuthProvider { } const ssoAuthProviders = [ - { label: "Okta SAML", value: AuthProvider.OKTA_SAML }, - { label: "Azure / Entra SAML", value: AuthProvider.AZURE_SAML }, - { label: "JumpCloud SAML", value: AuthProvider.JUMPCLOUD_SAML }, - { label: "Keycloak SAML", value: AuthProvider.KEYCLOAK_SAML }, - { label: "Google SAML", value: AuthProvider.GOOGLE_SAML }, - { label: "Auth0 SAML", value: AuthProvider.AUTH0_SAML } + { label: "Okta SAML", value: AuthProvider.OKTA_SAML, image: "Okta.png", docsUrl: "okta" }, + { + label: "Azure / Entra SAML", + value: AuthProvider.AZURE_SAML, + image: "Microsoft Azure.png", + docsUrl: "azure" + }, + { + label: "JumpCloud SAML", + value: AuthProvider.JUMPCLOUD_SAML, + image: "JumpCloud.png", + docsUrl: "jumpcloud" + }, + { + label: "Keycloak SAML", + value: AuthProvider.KEYCLOAK_SAML, + image: "Keycloak.png", + docsUrl: "keycloak-saml" + }, + { + label: "Google SAML", + value: AuthProvider.GOOGLE_SAML, + image: "Google.png", + docsUrl: "google-saml" + }, + { label: "Auth0 SAML", value: AuthProvider.AUTH0_SAML, image: "Auth0.png", docsUrl: "auth0-saml" } ]; const schema = z @@ -231,6 +253,10 @@ export const SSOModal = ({ popUp, handlePopUpClose, handlePopUpToggle, hideDelet }} > + provider.value === authProvider)!} + isConnected={Boolean(data)} + />
{ + return ( +
+ {`${providerDetails.label} +
+
+ {providerDetails.label} + +
+ + Docs + +
+
+
+

+ {isConnected + ? `${providerDetails.label} Connection` + : `Connect to ${providerDetails.label}`} +

+
+
+ ); +};