From ff2c8d017f5368e84d862696c46ccaa3210e1b81 Mon Sep 17 00:00:00 2001 From: Vladyslav Matsiiako Date: Fri, 5 Apr 2024 14:29:50 -0700 Subject: [PATCH 1/5] add automatic SAML redirect --- docs/self-hosting/configuration/envars.mdx | 4 ++++ .../Login/components/InitialStep/InitialStep.tsx | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/docs/self-hosting/configuration/envars.mdx b/docs/self-hosting/configuration/envars.mdx index dae2e8044..db8034199 100644 --- a/docs/self-hosting/configuration/envars.mdx +++ b/docs/self-hosting/configuration/envars.mdx @@ -335,6 +335,10 @@ To login into Infisical with OAuth providers such as Google, configure the assoc Requires enterprise license. Please contact team@infisical.com to get more information. + + Configure SAML organization slug to automatically redirect all users of your Infisical instance to the identity provider. + + diff --git a/frontend/src/views/Login/components/InitialStep/InitialStep.tsx b/frontend/src/views/Login/components/InitialStep/InitialStep.tsx index 2e2d8f79b..fb191e372 100644 --- a/frontend/src/views/Login/components/InitialStep/InitialStep.tsx +++ b/frontend/src/views/Login/components/InitialStep/InitialStep.tsx @@ -32,6 +32,18 @@ export const InitialStep = ({ setStep, email, setEmail, password, setPassword }: const { config } = useServerConfig(); const queryParams = new URLSearchParams(window.location.search); + useEffect(() => { + if (process.env.NEXT_PUBLIC_SAML_ORG_SLUG) { + const callbackPort = queryParams.get("callback_port"); + window.open( + `/api/v1/sso/redirect/saml2/organizations/${process.env.NEXT_PUBLIC_SAML_ORG_SLUG}${ + callbackPort ? `?callback_port=${callbackPort}` : "" + }` + ); + window.close(); + } + }) + const handleLogin = async (e: FormEvent) => { e.preventDefault(); try { From 74fefa9879b5dd7e48b896ed260af663bbaa9845 Mon Sep 17 00:00:00 2001 From: Vladyslav Matsiiako Date: Fri, 5 Apr 2024 14:39:31 -0700 Subject: [PATCH 2/5] add automatic SAML redirect --- .../src/views/Login/components/InitialStep/InitialStep.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/views/Login/components/InitialStep/InitialStep.tsx b/frontend/src/views/Login/components/InitialStep/InitialStep.tsx index fb191e372..26acc97c7 100644 --- a/frontend/src/views/Login/components/InitialStep/InitialStep.tsx +++ b/frontend/src/views/Login/components/InitialStep/InitialStep.tsx @@ -1,4 +1,4 @@ -import { FormEvent, useState } from "react"; +import { FormEvent, useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import Link from "next/link"; import { useRouter } from "next/router"; @@ -256,7 +256,7 @@ export const InitialStep = ({ setStep, email, setEmail, password, setPassword }: ) : ( -
+
)}
From 055fd34c33cbe60c364a87a985d5860d5051ee11 Mon Sep 17 00:00:00 2001 From: Vladyslav Matsiiako Date: Fri, 5 Apr 2024 17:25:25 -0700 Subject: [PATCH 3/5] added baked env var --- Dockerfile.standalone-infisical | 3 +++ frontend/Dockerfile | 3 +++ frontend/scripts/initialize-standalone-build.sh | 2 ++ frontend/scripts/start.sh | 2 ++ 4 files changed, 10 insertions(+) diff --git a/Dockerfile.standalone-infisical b/Dockerfile.standalone-infisical index 1ece89639..3f90e709b 100644 --- a/Dockerfile.standalone-infisical +++ b/Dockerfile.standalone-infisical @@ -100,6 +100,9 @@ ENV NEXT_PUBLIC_POSTHOG_API_KEY=$POSTHOG_API_KEY \ ARG INTERCOM_ID=intercom-id ENV NEXT_PUBLIC_INTERCOM_ID=$INTERCOM_ID \ BAKED_NEXT_PUBLIC_INTERCOM_ID=$INTERCOM_ID +ARG SAML_ORG_SLUG +ENV NEXT_PUBLIC_SAML_ORG_SLUG=$SAML_ORG_SLUG \ + BAKED_NEXT_PUBLIC_SAML_ORG_SLUG=$SAML_ORG_SLUG WORKDIR / diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 2060c214a..9090fc603 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -52,6 +52,9 @@ ENV NEXT_PUBLIC_POSTHOG_API_KEY=$POSTHOG_API_KEY \ ARG INTERCOM_ID ENV NEXT_PUBLIC_INTERCOM_ID=$INTERCOM_ID \ BAKED_NEXT_PUBLIC_INTERCOM_ID=$INTERCOM_ID +ARG SAML_ORG_SLUG +ENV NEXT_PUBLIC_SAML_ORG_SLUG=$SAML_ORG_SLUG \ + BAKED_NEXT_PUBLIC_SAML_ORG_SLUG=$SAML_ORG_SLUG ARG NEXT_INFISICAL_PLATFORM_VERSION ENV NEXT_PUBLIC_INFISICAL_PLATFORM_VERSION=$NEXT_INFISICAL_PLATFORM_VERSION diff --git a/frontend/scripts/initialize-standalone-build.sh b/frontend/scripts/initialize-standalone-build.sh index d9138bb77..36c957a2a 100755 --- a/frontend/scripts/initialize-standalone-build.sh +++ b/frontend/scripts/initialize-standalone-build.sh @@ -4,6 +4,8 @@ scripts/replace-standalone-build-variable.sh "$BAKED_NEXT_PUBLIC_POSTHOG_API_KEY scripts/replace-standalone-build-variable.sh "$BAKED_NEXT_PUBLIC_INTERCOM_ID" "$NEXT_PUBLIC_INTERCOM_ID" +scripts/replace-standalone-build-variable.sh "$BAKED_NEXT_SAML_ORG_SLUG" "$NEXT_PUBLIC_SAML_ORG_SLUG" + if [ "$TELEMETRY_ENABLED" != "false" ]; then echo "Telemetry is enabled" scripts/set-standalone-build-telemetry.sh true diff --git a/frontend/scripts/start.sh b/frontend/scripts/start.sh index 1db867e15..1488ad328 100644 --- a/frontend/scripts/start.sh +++ b/frontend/scripts/start.sh @@ -4,6 +4,8 @@ scripts/replace-variable.sh "$BAKED_NEXT_PUBLIC_POSTHOG_API_KEY" "$NEXT_PUBLIC_P scripts/replace-variable.sh "$BAKED_NEXT_PUBLIC_INTERCOM_ID" "$NEXT_PUBLIC_INTERCOM_ID" +scripts/replace-variable.sh "$BAKED_NEXT_SAML_ORG_SLUG" "$NEXT_PUBLIC_SAML_ORG_SLUG" + if [ "$TELEMETRY_ENABLED" != "false" ]; then echo "Telemetry is enabled" scripts/set-telemetry.sh true From 0a52bbd55d91bd4ed536ea63192cf8abbbae2c94 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Sat, 6 Apr 2024 11:40:13 -0700 Subject: [PATCH 4/5] add render once to use effect --- frontend/src/views/Login/components/InitialStep/InitialStep.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/views/Login/components/InitialStep/InitialStep.tsx b/frontend/src/views/Login/components/InitialStep/InitialStep.tsx index 26acc97c7..2d90d68ea 100644 --- a/frontend/src/views/Login/components/InitialStep/InitialStep.tsx +++ b/frontend/src/views/Login/components/InitialStep/InitialStep.tsx @@ -42,7 +42,7 @@ export const InitialStep = ({ setStep, email, setEmail, password, setPassword }: ); window.close(); } - }) + }, []) const handleLogin = async (e: FormEvent) => { e.preventDefault(); From 63a289c3be9522b26405fc77515987a40d5635d1 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Sat, 6 Apr 2024 11:58:50 -0700 Subject: [PATCH 5/5] add saml org clug to standalone --- Dockerfile.standalone-infisical | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile.standalone-infisical b/Dockerfile.standalone-infisical index 3f90e709b..2425e8588 100644 --- a/Dockerfile.standalone-infisical +++ b/Dockerfile.standalone-infisical @@ -35,6 +35,8 @@ ARG INTERCOM_ID ENV NEXT_PUBLIC_INTERCOM_ID $INTERCOM_ID ARG INFISICAL_PLATFORM_VERSION ENV NEXT_PUBLIC_INFISICAL_PLATFORM_VERSION $INFISICAL_PLATFORM_VERSION +ARG SAML_ORG_SLUG +ENV NEXT_PUBLIC_SAML_ORG_SLUG=$SAML_ORG_SLUG # Build RUN npm run build