Back to Zitadel

LinkedIn OAuth Identity Provider in ZITADEL

apps/docs/content/guides/integrate/identity-providers/linkedin_oauth.mdx

5.0.0-base2.9 KB
Original Source

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
  1. Verify the app as your company
  2. In the Auth - OAuth 2.0 scopes section you should see openid, profile and email listed
  3. 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
https://github.com/zitadel/actions/blob/main/examples/linkedin_identity_provider.js