diff --git a/docs/docs/guides/integrate/identity-providers/_custom_login_policy.mdx b/docs/docs/guides/integrate/identity-providers/_custom_login_policy.mdx
index 2f6c17344..b9e58129c 100644
--- a/docs/docs/guides/integrate/identity-providers/_custom_login_policy.mdx
+++ b/docs/docs/guides/integrate/identity-providers/_custom_login_policy.mdx
@@ -5,7 +5,7 @@ Organization: Choose the organization in the menu and go to $YOUR-DOMAIN/ui/cons
1. Go to the Settings
2. Modify your login policy in the menu "Login Behavior and Security"
-3. Enable the attribute "External IDP allowed"
+3. Enable the attribute "External Login allowed"
You can also change the settings through the API directly either in the default settings or on a specific organization:
- [Update Default Login Settings](/docs/apis/resources/admin/admin-service-update-login-policy)
diff --git a/docs/docs/guides/integrate/identity-providers/_generic_oauth.mdx b/docs/docs/guides/integrate/identity-providers/_generic_oauth.mdx
new file mode 100644
index 000000000..aa2420648
--- /dev/null
+++ b/docs/docs/guides/integrate/identity-providers/_generic_oauth.mdx
@@ -0,0 +1,12 @@
+The Generic OAuth Provider allows you to configure any OAuth compliant identity providers.
+
+The following information you need to fill out by yourself:
+
+
Name {props.name}
+Authorization Endpoint {props.authendpoint}
+Token Endpoint {props.tokenendpoint}
+User Endpoint {props.userendpoint}
+ID Attribute {props.id}
+Client-ID {props.clientid}
+Client-Secret {props.clientid}
+Scopes: (openid, profile, email is preconfigured)
diff --git a/docs/docs/guides/integrate/identity-providers/linkedin_oauth.mdx b/docs/docs/guides/integrate/identity-providers/linkedin_oauth.mdx
new file mode 100644
index 000000000..93383db2a
--- /dev/null
+++ b/docs/docs/guides/integrate/identity-providers/linkedin_oauth.mdx
@@ -0,0 +1,81 @@
+---
+title: Configure LinkedIn as an OAuth Identity Provider in ZITADEL
+sidebar_label: LinkedIn generic OIDC
+id: linkedin-oauth
+---
+
+import GeneralConfigDescription from './_general_config_description.mdx';
+import Intro from './_intro.mdx';
+import CustomLoginPolicy from './_custom_login_policy.mdx';
+import IDPsOverview from './_idps_overview.mdx';
+import GenericOAuth from './_generic_oauth.mdx';
+import Activate from './_activate.mdx';
+import PrefillAction from './_prefill_action.mdx';
+import TestSetup from './_test_setup.mdx';
+
+
+
+## LinkedIn Configuration
+
+### Register a new client
+
+1. Go to the LinkedIn Developer console and create a new App: https://www.linkedin.com/developers/apps/new
+2. Add your App Name, your Company Page and a Logo
+3. Add "Sign In with LinkedIn using OpenID Connect" by clicking "Request access"
+4. Go to the Auth Settings of the App and add the following URL to the "Authorized redirect URLs"
+ - {your-domain}/ui/login/login/externalidp/callback
+ - Example redirect url for the domain `https://acme.zitadel.cloud` would look like this: `https://acme.zitadel.cloud/ui/login/login/externalidp/callback`
+5. Verify the app as your company
+6. In the Auth - OAuth 2.0 scopes section you should see `openid`, `profile` and `email` listed
+7. Save Client ID and Primary Client Secret from the Application credentials
+
+
+
+## ZITADEL Configuration
+
+### Add custom login policy
+
+
+
+### Go to the IdP Providers Overview
+
+
+
+### Create a new Generic OAuth Provider
+
+
+
+
+
+
+
+
+### Activate IdP
+
+
+
+
+
+## Test the setup
+
+
+
+
+
+
+
+## Optional: Add ZITADEL action to autofill userdata
+
+
+
+```js reference
+https://github.com/zitadel/actions/blob/main/examples/linkedin_identity_provider.js
+```
diff --git a/docs/sidebars.js b/docs/sidebars.js
index c2491abea..27b83db81 100644
--- a/docs/sidebars.js
+++ b/docs/sidebars.js
@@ -344,12 +344,13 @@ module.exports = {
"guides/integrate/identity-providers/apple",
"guides/integrate/identity-providers/ldap",
"guides/integrate/identity-providers/openldap",
- "guides/integrate/identity-providers/migrate",
"guides/integrate/identity-providers/okta-oidc",
"guides/integrate/identity-providers/okta-saml",
"guides/integrate/identity-providers/keycloak",
+ "guides/integrate/identity-providers/linkedin-oauth",
"guides/integrate/identity-providers/mocksaml",
"guides/integrate/identity-providers/jwt-idp",
+ "guides/integrate/identity-providers/migrate",
"guides/integrate/identity-providers/additional-information",
],
},
diff --git a/docs/static/img/guides/linkedin_add_app.png b/docs/static/img/guides/linkedin_add_app.png
new file mode 100644
index 000000000..23b5c4041
Binary files /dev/null and b/docs/static/img/guides/linkedin_add_app.png differ
diff --git a/docs/static/img/guides/linkedin_login.png b/docs/static/img/guides/linkedin_login.png
new file mode 100644
index 000000000..8a310722c
Binary files /dev/null and b/docs/static/img/guides/linkedin_login.png differ
diff --git a/docs/static/img/guides/zitadel_activate_linkedin.png b/docs/static/img/guides/zitadel_activate_linkedin.png
new file mode 100644
index 000000000..9f11f670f
Binary files /dev/null and b/docs/static/img/guides/zitadel_activate_linkedin.png differ
diff --git a/docs/static/img/guides/zitadel_allow_external_idp.png b/docs/static/img/guides/zitadel_allow_external_idp.png
index 22ec28dad..b56b1f147 100644
Binary files a/docs/static/img/guides/zitadel_allow_external_idp.png and b/docs/static/img/guides/zitadel_allow_external_idp.png differ
diff --git a/docs/static/img/guides/zitadel_linkedin_create_provider.png b/docs/static/img/guides/zitadel_linkedin_create_provider.png
new file mode 100644
index 000000000..c1f596e2e
Binary files /dev/null and b/docs/static/img/guides/zitadel_linkedin_create_provider.png differ
diff --git a/docs/static/img/guides/zitadel_login_linkedin.png b/docs/static/img/guides/zitadel_login_linkedin.png
new file mode 100644
index 000000000..f5f0da68d
Binary files /dev/null and b/docs/static/img/guides/zitadel_login_linkedin.png differ