mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-30 02:52:16 +00:00
## What
Shorten the `title` frontmatter on 20 docs pages so that the rendered
`<title>` tag stays within the 70-character SEO limit.
The root layout appends ` | ZITADEL Docs` (15 chars) to every page
title, meaning the raw frontmatter `title` must be ≤ 55 characters. A
site scan flagged all 20 pages for the "Title too long" warning (titles
ranged from 71 to 92 characters in the final rendered tag).
## Why
Search engines may truncate or ignore `<title>` tags longer than 70
characters, hurting click-through rates and keyword relevance in search
results.
## How
Each title was rewritten to:
- Fit within 55 characters (leaving room for ` | ZITADEL Docs`)
- Front-load the primary search keyword (product name, protocol, or
feature)
- Include "ZITADEL" where users realistically search for `{feature}
ZITADEL`
- Avoid generic filler words ("Configure", "Set up", "Support for")
All 20 files already have a `sidebar_label` field that preserves the
original descriptive title for sidebar navigation — no navigation
changes result from this PR.
## Pages updated
| Page | Before (chars) | After (chars) |
|---|---|---|
| concepts/features/passkeys | 82 | 64 |
| guides/integrate/identity-providers/openldap | 72 | 58 |
| guides/solution-scenarios/b2b | 78 | 59 |
| guides/integrate/services/cloudflare-oidc | 86 | 54 |
| guides/integrate/login/hosted-login | 71 | 55 |
| guides/integrate/service-accounts/private-key-jwt | 76 | 56 |
| guides/integrate/service-accounts/client-credentials | 78 | 60 |
| guides/integrate/services/google-cloud | 92 | 57 |
| guides/solution-scenarios/saas | 88 | 65 |
| guides/migrate/sources/auth0 | 73 | 65 |
| guides/integrate/login-ui/oidc-standard | 81 | 55 |
| guides/integrate/login-ui/username-password | 73 | 59 |
| guides/integrate/login-ui/device-auth | 78 | 60 |
| guides/integrate/identity-providers/linkedin_oauth | 72 | 58 |
| guides/integrate/identity-providers/pingfederate-saml | 74 | 61 |
| guides/integrate/service-accounts/personal-access-token | 82 | 62 |
| legal/service-description/cloud-service-description | 76 | 61 |
| guides/integrate/login/login-users | 83 | 55 |
| guides/integrate/identity-providers/migrate | 74 | 65 |
| guides/manage/console/projects-overview | 71 | 62 |
All final `<title>` values are between 54 and 66 characters (well under
the 70-char limit).
84 lines
3.2 KiB
Plaintext
84 lines
3.2 KiB
Plaintext
---
|
|
title: LinkedIn OAuth Identity Provider in ZITADEL
|
|
description: "Configure LinkedIn as an OAuth Identity Provider in ZITADEL to enable secure login with LinkedIn credentials"
|
|
sidebar_label: LinkedIn generic OAuth
|
|
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';
|
|
|
|
<Intro components={props.components} provider="LinkedIn"/>
|
|
|
|
## 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"
|
|
- Login V1: `${CUSTOM_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`
|
|
- Login V2: `${CUSTOM_DOMAIN}/idps/callback`
|
|
- In this case the url would look like this: `https://acme.zitadel.cloud/idps/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 Setup
|
|
|
|
### Add custom login policy
|
|
|
|
<CustomLoginPolicy components={props.components} />
|
|
|
|
### Go to the IdP Providers Overview
|
|
|
|
<IDPsOverview components={props.components} templates="Generic OAuth"/>
|
|
|
|
### Create a new Generic OAuth Provider
|
|
|
|
<GenericOAuth components={props.components}
|
|
name=": e.g. LinkedIn"
|
|
authendpoint="https://www.linkedin.com/oauth/v2/authorization"
|
|
tokenendpoint="https://www.linkedin.com/oauth/v2/accessToken"
|
|
userendpoint="https://api.linkedin.com/v2/userinfo"
|
|
id="sub"
|
|
clientid=": Client id from the application previously created in your LinkedIn account"
|
|
clientsecret=": Client Secret from the application previously created in your LinkedIn account"
|
|
/>
|
|
|
|
<GeneralConfigDescription components={props.components} provider_account="LinkedIn account" />
|
|
|
|

|
|
|
|
### Activate IdP
|
|
|
|
<Activate components={props.components} />
|
|
|
|

|
|
|
|
## Test the setup
|
|
|
|
<TestSetup components={props.components} loginscreen="your LinkedIn login"/>
|
|
|
|

|
|
|
|

|
|
|
|
## Optional: Add ZITADEL action to autofill userdata
|
|
|
|
<PrefillAction components={props.components} fields="firstname, lastname, username, email and email verified" provider="LinkedIn"/>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/linkedin_identity_provider.js
|
|
```
|