diff --git a/docs/documentation/platform/organization.mdx b/docs/documentation/platform/organization.mdx
index d45bb6d4f..5e75f1a3b 100644
--- a/docs/documentation/platform/organization.mdx
+++ b/docs/documentation/platform/organization.mdx
@@ -21,20 +21,19 @@ The **Settings** page lets you manage information about your organization includ

-
-- Security and Authentication: A set of setting to enforce or manage [SAML](/documentation/platform/sso/overview), [SCIM](/documentation/platform/scim/overview), [LDAP](/documentation/platform/ldap/overview), and other authentication configurations.
+- Security and Authentication: A set of setting to enforce or manage [SAML](/documentation/platform/sso/overview), [OIDC](/documentation/platform/sso/overview), [SCIM](/documentation/platform/scim/overview), [LDAP](/documentation/platform/ldap/overview), and other authentication configurations.

## Access Control
-The **Access Control** page is where you can manage identities (both people and machines) that are part of your organization.
+The **Access Control** page is where you can manage identities (both people and machines) that are part of your organization.
You can add or remove additional members as well as modify their permissions.


-In the **Organization Roles** tab, you can edit current or create new custom roles for members within the organization.
+In the **Organization Roles** tab, you can edit current or create new custom roles for members within the organization.
Note that Role-Based Access Management (RBAC) is partly a paid feature.
@@ -42,13 +41,14 @@ In the **Organization Roles** tab, you can edit current or create new custom rol
Infisical provides immutable roles like `admin`, `member`, etc.
at the organization and project level for free.
- If you're using Infisical Cloud, the ability to create custom roles is available under the **Pro Tier**.
- If you're self-hosting Infisical, then you should contact sales@infisical.com to purchase an enterprise license to use it.
+If you're using Infisical Cloud, the ability to create custom roles is available under the **Pro Tier**.
+If you're self-hosting Infisical, then you should contact sales@infisical.com to purchase an enterprise license to use it.
+

-As you can see next, Infisical supports granular permissions that you can tailor to each role.
+As you can see next, Infisical supports granular permissions that you can tailor to each role.
If you need certain members to only be able to access billing details, for example, then you can
assign them that permission only.
@@ -66,4 +66,4 @@ This includes the following items:
- Receipts: The receipts of monthly/annual invoices.
- Billing: The billing details of your organization including payment methods on file, tax IDs (if applicable), etc.
-
\ No newline at end of file
+
diff --git a/docs/documentation/platform/sso/keycloak-oidc.mdx b/docs/documentation/platform/sso/keycloak-oidc.mdx
new file mode 100644
index 000000000..a800fb62c
--- /dev/null
+++ b/docs/documentation/platform/sso/keycloak-oidc.mdx
@@ -0,0 +1,92 @@
+---
+title: "Keycloak OIDC"
+description: "Learn how to configure Keycloak OIDC for Infisical SSO."
+---
+
+
+ Keycloak OIDC SSO is a paid feature. If you're using Infisical Cloud, then it
+ is available under the **Pro Tier**. If you're self-hosting Infisical, then
+ you should contact sales@infisical.com to purchase an enterprise license to
+ use it.
+
+
+
+
+ 1.1. In your realm, navigate to the **Clients** tab and click **Create client** to create a new client application.
+
+ 
+
+
+ You don’t typically need to make a realm dedicated to Infisical. We recommend adding Infisical as a client to your primary realm.
+
+
+ 1.2. In the General Settings step, set **Client type** to **OpenID Connect**, the **Client ID** field to an appropriate identifier, and the **Name** field to a friendly name like **Infisical**.
+
+ 
+
+ 1.3. Next, in the Capability Config step, ensure that **Client Authentication** is set to On and that **Standard flow** is enabled in the Authentication flow section.
+
+ 
+
+ 1.4. In the Login Settings step, set the appropriate values for the following:
+ - Root URL (base URL of Infisical)
+ - Home URL (base URL of Infisical)
+ - Valid Redirect URIs (`${INFISICAL_BASE_URL}/api/v1/sso/oidc/callback`)
+ - Web origins (base URL of Infisical)
+
+ 
+
+ If you’re self-hosting Infisical, then you will want to replace https://app.infisical.com (base URL) with your own domain.
+
+
+ 1.5. Next, navigate to the **Client scopes** tab and select the client's dedicated scope.
+
+ 
+
+ 1.6. Next, click **Add predefined mapper**.
+
+ 
+
+ 1.7. Select the **email**, **given name**, **family name** attributes and click **Add**.
+
+ 
+ 
+
+ Once you've completed the above steps, the list of mappers should look like the following:
+ 
+
+
+
+ 2.1. Back in Keycloak, navigate to Configure > Realm settings > General tab > Endpoints > OpenID Endpoint Configuration and copy the opened URL. This is what is to referred to as the Discovery Document URL and it takes the form: `https://keycloak-mysite.com/realms/myrealm/.well-known/openid-configuration`.
+ 
+
+ 2.2. From the Clients page, navigate to the Credential tab and copy the value of Client secret for use in the preceding steps.
+ 
+
+
+
+ 3.1. Back in Infisical, in the Organization settings > Security > OIDC, click Manage
+ 
+
+ 3.2. For configuration type, select Discovery URL. Then, set the appropriate values for **Discovery Document URL**, **Client ID**, and **Client Secret**.
+ 
+
+ Once you've done that, press **Update** to complete the required configuration.
+
+
+
+ Enabling OIDC SSO allows members in your organization to log into Infisical via Keycloak.
+
+ 
+
+
+
+
+
+ If you're configuring OIDC SSO on a self-hosted instance of Infisical, make
+ sure to set the `AUTH_SECRET` and `SITE_URL` environment variable for it to
+ work: - `AUTH_SECRET`: A secret key used for signing and verifying JWT. This
+ can be a random 32-byte base64 string generated with `openssl rand -base64
+ 32`. - `SITE_URL`: The URL of your self-hosted instance of Infisical - should
+ be an absolute URL including the protocol (e.g. https://app.infisical.com)
+
diff --git a/docs/documentation/platform/sso/overview.mdx b/docs/documentation/platform/sso/overview.mdx
index 9ab0acc3a..fd56a1138 100644
--- a/docs/documentation/platform/sso/overview.mdx
+++ b/docs/documentation/platform/sso/overview.mdx
@@ -13,7 +13,7 @@ description: "Learn how to log in to Infisical via SSO protocols."
with any questions, please reach out to team@infisical.com.
-You can configure your organization in Infisical to have members authenticate with the platform via protocols like [SAML 2.0](https://en.wikipedia.org/wiki/SAML_2.0).
+You can configure your organization in Infisical to have members authenticate with the platform via protocols like [SAML 2.0](https://en.wikipedia.org/wiki/SAML_2.0) or [OpenID Connect](https://openid.net/specs/openid-connect-core-1_0.html).
To note, Infisical's SSO implementation decouples the **authentication** and **decryption** steps – which implies that no
Identity Provider can have access to the decryption key needed to decrypt your secrets (this also implies that Infisical requires entering the user's Master Password on top of authenticating with SSO).
@@ -30,6 +30,7 @@ Infisical supports these and many other identity providers:
- [JumpCloud SAML](/documentation/platform/sso/jumpcloud)
- [Keycloak SAML](/documentation/platform/sso/keycloak-saml)
- [Google SAML](/documentation/platform/sso/google-saml)
+- [Keycloak OIDC](/documentation/platform/sso/keycloak-oidc)
If your required identity provider is not shown in the list above, please reach out to [team@infisical.com](mailto:team@infisical.com) for assistance.
diff --git a/docs/images/sso/keycloak-oidc/client-scope-complete-overview.png b/docs/images/sso/keycloak-oidc/client-scope-complete-overview.png
new file mode 100644
index 000000000..a0965db0b
Binary files /dev/null and b/docs/images/sso/keycloak-oidc/client-scope-complete-overview.png differ
diff --git a/docs/images/sso/keycloak-oidc/client-scope-list.png b/docs/images/sso/keycloak-oidc/client-scope-list.png
new file mode 100644
index 000000000..c35a7691f
Binary files /dev/null and b/docs/images/sso/keycloak-oidc/client-scope-list.png differ
diff --git a/docs/images/sso/keycloak-oidc/client-scope-mapper-menu.png b/docs/images/sso/keycloak-oidc/client-scope-mapper-menu.png
new file mode 100644
index 000000000..141bc5dd0
Binary files /dev/null and b/docs/images/sso/keycloak-oidc/client-scope-mapper-menu.png differ
diff --git a/docs/images/sso/keycloak-oidc/client-secret.png b/docs/images/sso/keycloak-oidc/client-secret.png
new file mode 100644
index 000000000..c91ddb164
Binary files /dev/null and b/docs/images/sso/keycloak-oidc/client-secret.png differ
diff --git a/docs/images/sso/keycloak-oidc/clients-list.png b/docs/images/sso/keycloak-oidc/clients-list.png
new file mode 100644
index 000000000..50e4e49cb
Binary files /dev/null and b/docs/images/sso/keycloak-oidc/clients-list.png differ
diff --git a/docs/images/sso/keycloak-oidc/create-client-capability.png b/docs/images/sso/keycloak-oidc/create-client-capability.png
new file mode 100644
index 000000000..72aa50850
Binary files /dev/null and b/docs/images/sso/keycloak-oidc/create-client-capability.png differ
diff --git a/docs/images/sso/keycloak-oidc/create-client-general-settings.png b/docs/images/sso/keycloak-oidc/create-client-general-settings.png
new file mode 100644
index 000000000..87ec8d837
Binary files /dev/null and b/docs/images/sso/keycloak-oidc/create-client-general-settings.png differ
diff --git a/docs/images/sso/keycloak-oidc/create-client-login-settings.png b/docs/images/sso/keycloak-oidc/create-client-login-settings.png
new file mode 100644
index 000000000..1c839f8d4
Binary files /dev/null and b/docs/images/sso/keycloak-oidc/create-client-login-settings.png differ
diff --git a/docs/images/sso/keycloak-oidc/create-oidc.png b/docs/images/sso/keycloak-oidc/create-oidc.png
new file mode 100644
index 000000000..358af1330
Binary files /dev/null and b/docs/images/sso/keycloak-oidc/create-oidc.png differ
diff --git a/docs/images/sso/keycloak-oidc/enable-oidc.png b/docs/images/sso/keycloak-oidc/enable-oidc.png
new file mode 100644
index 000000000..6518319c4
Binary files /dev/null and b/docs/images/sso/keycloak-oidc/enable-oidc.png differ
diff --git a/docs/images/sso/keycloak-oidc/manage-org-oidc.png b/docs/images/sso/keycloak-oidc/manage-org-oidc.png
new file mode 100644
index 000000000..e6346cd24
Binary files /dev/null and b/docs/images/sso/keycloak-oidc/manage-org-oidc.png differ
diff --git a/docs/images/sso/keycloak-oidc/realm-setting-oidc-config.png b/docs/images/sso/keycloak-oidc/realm-setting-oidc-config.png
new file mode 100644
index 000000000..9d3866c7e
Binary files /dev/null and b/docs/images/sso/keycloak-oidc/realm-setting-oidc-config.png differ
diff --git a/docs/images/sso/keycloak-oidc/scope-predefined-mapper-1.png b/docs/images/sso/keycloak-oidc/scope-predefined-mapper-1.png
new file mode 100644
index 000000000..8b1cb16c4
Binary files /dev/null and b/docs/images/sso/keycloak-oidc/scope-predefined-mapper-1.png differ
diff --git a/docs/images/sso/keycloak-oidc/scope-predefined-mapper-2.png b/docs/images/sso/keycloak-oidc/scope-predefined-mapper-2.png
new file mode 100644
index 000000000..189cb34b2
Binary files /dev/null and b/docs/images/sso/keycloak-oidc/scope-predefined-mapper-2.png differ
diff --git a/docs/mint.json b/docs/mint.json
index 1caad0715..b93478fd5 100644
--- a/docs/mint.json
+++ b/docs/mint.json
@@ -178,7 +178,8 @@
"documentation/platform/sso/azure",
"documentation/platform/sso/jumpcloud",
"documentation/platform/sso/keycloak-saml",
- "documentation/platform/sso/google-saml"
+ "documentation/platform/sso/google-saml",
+ "documentation/platform/sso/keycloak-oidc"
]
},
{