diff --git a/docusaurus/docs/cms/configurations/guides/configure-sso.md b/docusaurus/docs/cms/configurations/guides/configure-sso.md
index dc8346153e..5ce2bf87eb 100644
--- a/docusaurus/docs/cms/configurations/guides/configure-sso.md
+++ b/docusaurus/docs/cms/configurations/guides/configure-sso.md
@@ -71,6 +71,17 @@ export default ({ env }) => ({
## Setting up provider configuration
+Parts of the documentation below assume that some steps have been done previously both in Strapi and in your identity provider. If these steps are skipped, the login button might appear on the Strapi login page but the flow will fail with a redirect or "invalid client" error. Make sure to follow all the steps of the checklist before moving onto the rest of the documentation.
+
+
+ [Enable SSO in Strapi](/cms/features/sso#admin-panel-settings) Go to Global settings > Single Sign-On in the admin panel and set up the feature (e.g. toggle auto-registration and choose the default role).
+ Register Strapi in your identity provider In the provider's dashboard (e.g. Azure AD, Okta, Google, GitHub), create a new OAuth/OIDC application for Strapi. Copy the client ID and client secret generated by the provider.
+ [Add the Strapi callback URL to the provider](#the-createstrategy-factory) Set the redirect/callback URL in the provider configuration to the value generated by {"strapi.admin.services.passport.getStrategyCallbackURL('')"} (e.g. /admin/connect/google if the UID is google). The provider must accept this URL or the login will be blocked.
+ [Provide credentials to Strapi](#configuring-the-provider) Add the client ID and client secret as environment variables (e.g. GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRET) so they can be read in {"/config/admin.js|ts"}.
+ [Configure the provider in code](#configuring-the-provider) Import the provider's Passport strategy and add it to auth.providers.
+ Rebuild and restart Strapi Run yarn build && yarn develop or npm run build && npm run develop so the new provider appears on the login page. If the admin panel is hosted separately, also ensure the url setting matches the deployed admin URL (see [Host, port and path](/cms/admin-panel-customization/host-port-path).
+
+
A provider's configuration is a JavaScript object built with the following properties:
| Name | Required | Type | Description |
diff --git a/docusaurus/src/components/Checklist/Checklist.jsx b/docusaurus/src/components/Checklist/Checklist.jsx
new file mode 100644
index 0000000000..e77c1cb4fb
--- /dev/null
+++ b/docusaurus/src/components/Checklist/Checklist.jsx
@@ -0,0 +1,39 @@
+import React, { useState, useId } from 'react';
+import clsx from 'clsx';
+
+export function ChecklistItem({ children }) {
+ const id = useId();
+ const [checked, setChecked] = useState(false);
+
+ return (
+