Skip to content

Commit

Permalink
update authentication flows guide
Browse files Browse the repository at this point in the history
  • Loading branch information
alexisintech committed Nov 19, 2024
1 parent d3e77da commit 7e5fde9
Showing 1 changed file with 10 additions and 21 deletions.
31 changes: 10 additions & 21 deletions docs/authentication/enterprise-connections/authentication-flows.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,17 @@ title: Enterprise SSO authentication flows
description: Learn about the Enterprise SSO authentication flows.
---

Currently, there are two types of Enterprise SSO connections: [EASIE](#easie) and [SAML](#saml).

## EASIE

EASIE Connections support the authentication flows described at [easie.dev](https://easie.dev). With EASIE, your application can provide enterprise-grade SSO through a multi-tenant OpenID provider. This provides an easier alternative to setting up SAML SSO.
EASIE connections support the authentication flows described at [easie.dev](https://easie.dev).

## SAML

The SAML protocol supports two methods to start an SSO flow: Service Provider-initiated (SP-initiated) and Identity Provider-initiated (IdP-initiated).
The SAML protocol supports two methods to start an SSO flow: [Service Provider-initiated (SP-initiated)](#service-provider-initiated-flow-recommended) and [Identity Provider-initiated (IdP-initiated)](#identity-provider-initiated-flow).

For the best security practices, Clerk recommends using the SP-initiated flow wherever possible. If you decide to enable IdP-initiated flows, ensure that proper [security measures](#clerks-security-measures), such as MFA and short validation periods, are in place to mitigate the associated risks.

### Service Provider-initiated flow (recommended)

Expand Down Expand Up @@ -48,22 +52,7 @@ When enabling an IdP-initiated flow, it is possible for Clerk to receive unsolic

To mitigate the risks associated with IdP-initiated flows, Clerk implements several security measures:

##### Unsolicited `InResponseTo` attribute

Clerk ensures that unsolicited responses don't contain an `InResponseTo` attribute, in accordance with the [SAML 2.0 profiles specification](https://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf). This prevents bad actors from stealing a response used in an SP-initiated flow and using it in an IdP-initiated flow.

##### Replay detection

Clerk consumes and remembers each response to prevent re-use. This ensures that bad actors cannot steal and reuse a response to gain access to a user's account.

##### Multi-factor authentication

Clerk supports [multi-factor authentication (MFA)](/docs/authentication/configuration/sign-up-sign-in-options#multi-factor-authentication) for SAML IdP-initiated flows. MFA requires users to provide two or more forms of verification, which significantly enhances security by reducing the risk of unauthorized access.

##### Use small validation periods

Each SAML response contains a timestamp indicating when it was issued and when it will expire. Since IdP-initiated flows are expected to be completed within seconds, validation periods must be as small as possible to prevent attacks. Common IdP providers such as Azure, Google, and Okta handle this by default. However, if you are using a custom IdP, you must ensure that the validation periods are set correctly.

#### Conclusion

For the best security practices, Clerk recommends using the SP-initiated flow wherever possible. If you decide to enable IdP-initiated flows, ensure that proper security measures—such as MFA, replay detection, and short validation periods—are in place to mitigate the associated risks.
- **Unsolicited `InResponseTo` attribute**: Clerk ensures that unsolicited responses don't contain an `InResponseTo` attribute, in accordance with the [SAML 2.0 profiles specification](https://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf). This prevents bad actors from stealing a response used in an SP-initiated flow and using it in an IdP-initiated flow.
- **Replay detection**: Clerk consumes and remembers each response to prevent re-use. This ensures that bad actors cannot steal and reuse a response to gain access to a user's account.
- **Multi-factor authentication**: Clerk supports [multi-factor authentication (MFA)](/docs/authentication/configuration/sign-up-sign-in-options#multi-factor-authentication) for SAML IdP-initiated flows. MFA requires users to provide two or more forms of verification, which significantly enhances security by reducing the risk of unauthorized access.
- **Use small validation periods**: Each SAML response contains a timestamp indicating when it was issued and when it will expire. Since IdP-initiated flows are expected to be completed within seconds, validation periods must be as small as possible to prevent attacks. Common IdP providers such as Azure, Google, and Okta handle this by default. However, if you are using a custom IdP, you must ensure that the validation periods are set correctly.

0 comments on commit 7e5fde9

Please sign in to comment.