Nastavení registrace a přihlášení pomocí účtu LinkedIn pomocí Azure Active Directory B2C
Než začnete, pomocí selektoru Zvolit typ zásady zvolte typ zásady, kterou nastavujete. Azure Active Directory B2C nabízí dvě metody pro definování způsobu interakce uživatelů s vašimi aplikacemi: prostřednictvím předdefinovaných toků uživatelů nebo prostřednictvím plně konfigurovatelných vlastních zásad. Kroky vyžadované v tomto článku se pro každou metodu liší.
Poznámka:
V Azure Active Directory B2C jsou vlastní zásady navržené především pro řešení složitých scénářů. Ve většině scénářů doporučujeme používat integrované toky uživatelů. Pokud jste to neudělali, přečtěte si informace o úvodním balíčku vlastních zásad v tématu Začínáme s vlastními zásadami ve službě Active Directory B2C.
Předpoklady
- Vytvořte tok uživatele, aby se uživatelé mohli zaregistrovat a přihlásit k vaší aplikaci.
- Zaregistrujte webovou aplikaci.
Vytvoření aplikace LinkedIn
Pokud chcete uživatelům s účtem LinkedIn v Azure Active Directory B2C (Azure AD B2C) povolit přihlášení, musíte vytvořit aplikaci na webu LinkedIn Developers. Další informace najdete v tématu Tok autorizačního kódu. Pokud ještě nemáte účet LinkedIn, můžete se zaregistrovat na adrese https://www.linkedin.com/.
- Přihlaste se k webu LinkedIn Developers pomocí svých přihlašovacích údajů k účtu LinkedIn.
- Vyberte Moje aplikace a potom klikněte na Vytvořit aplikaci.
- Zadejte název aplikace, stránku LinkedIn, adresu URL zásad ochrany osobních údajů a logo aplikace.
- Odsouhlaste podmínky použití rozhraní LinkedIn API a klikněte na Vytvořit aplikaci.
- Vyberte kartu Ověřování. V části Ověřovací klíče zkopírujte hodnoty pro ID klienta a tajný klíč klienta. Budete je potřebovat ke konfiguraci LinkedInu jako zprostředkovatele identity ve vašem tenantovi. Tajný klíč klienta je důležitými přihlašovacími údaji zabezpečení.
- Vyberte tužku pro úpravy vedle adres URL pro autorizované přesměrování vaší aplikace a pak vyberte Přidat adresu URL pro přesměrování. Zadejte
https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp
. Pokud používáte vlastní doménu, zadejtehttps://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp
. Nahraďteyour-tenant-name
názvem vašeho tenanta ayour-domain-name
vlastní doménou. Při zadávání názvu tenanta musíte použít všechna malá písmena, i když je tenant definovaný velkými písmeny v Azure AD B2C. Vyberte Aktualizovat. - Ve výchozím nastavení není vaše aplikace LinkedIn schválená pro obory související s přihlášením. Pokud chcete požádat o kontrolu, vyberte kartu Produkty a pak vyberte Přihlásit se pomocí LinkedInu. Po dokončení kontroly se do vaší aplikace přidají požadované obory.
Poznámka:
Obory, které jsou pro vaši aplikaci aktuálně povolené, můžete zobrazit na kartě Ověřování v části Obory OAuth 2.0.
Konfigurace LinkedInu jako zprostředkovatele identity
- Přihlaste se k webu Azure Portal jako globální správce vašeho tenanta Azure AD B2C.
- Pokud máte přístup k více tenantům, v horní nabídce vyberte ikonu Nastavení a v nabídce Adresáře a předplatná přepněte do svého tenanta Azure AD B2C.
- Zvolte Všechny služby v levém horním rohu portálu Azure Portal a vyhledejte a vyberte Azure AD B2C.
- Vyberte zprostředkovatele identity a pak vyberte LinkedIn.
- Zadejte Název. Například LinkedIn.
- Jako ID klienta zadejte ID klienta aplikace LinkedIn, kterou jste vytvořili dříve.
- Jako tajný klíč klienta zadejte tajný klíč klienta, který jste si poznamenali.
- Zvolte Uložit.
Přidání zprostředkovatele identity LinkedIn do toku uživatele
V tuto chvíli je zprostředkovatele identity LinkedIn nastavený, ale zatím není k dispozici na žádné přihlašovací stránce. Přidání zprostředkovatele identity LinkedIn do toku uživatele:
- V tenantovi Azure AD B2C vyberte Toky uživatelů.
- Klikněte na tok uživatele, který chcete přidat zprostředkovatele identity LinkedIn.
- V části Zprostředkovatelé sociálních identit vyberte LinkedIn.
- Zvolte Uložit.
- Pokud chcete zásady otestovat, vyberte Spustit tok uživatele.
- V části Aplikace vyberte webovou aplikaci s názvem testapp1 , kterou jste předtím zaregistrovali. Adresa URL odpovědi by se měla zobrazit
https://jwt.ms
. - Vyberte tlačítko Spustit tok uživatele.
- Na registrační nebo přihlašovací stránce vyberte LinkedIn a přihlaste se pomocí účtu LinkedIn.
Pokud je proces přihlášení úspěšný, prohlížeč se přesměruje na https://jwt.ms
obsah tokenu vráceného službou Azure AD B2C.
Vytvoření klíče zásad
Musíte uložit tajný klíč klienta, který jste předtím zaznamenali ve svém tenantovi Azure AD B2C.
- Přihlaste se k portálu Azure.
- Pokud máte přístup k více tenantům, v horní nabídce vyberte ikonu Nastavení a v nabídce Adresáře a předplatná přepněte do svého tenanta Azure AD B2C.
- V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
- Na stránce Přehled vyberte rozhraní Identity Experience Framework.
- Vyberte Klíče zásad a pak vyberte Přidat.
- V nabídce Možnosti zvolte
Manual
. - Zadejte název klíče zásady. Například,
LinkedInSecret
. Předpona B2C_1A_ se automaticky přidá do názvu klíče. - Do pole Tajný kód zadejte tajný klíč klienta, který jste předtím zaznamenali.
- V případě použití klíče vyberte
Signature
. - Klikněte na Vytvořit.
Konfigurace LinkedInu jako zprostředkovatele identity
Pokud chcete uživatelům umožnit přihlášení pomocí účtu LinkedIn, musíte ho definovat jako zprostředkovatele deklarací identity, se kterým může Azure AD B2C komunikovat prostřednictvím koncového bodu. Koncový bod poskytuje sadu deklarací identity, které Azure AD B2C používá k ověření ověření konkrétního uživatele.
Definujte účet LinkedIn jako zprostředkovatele deklarací tím, že ho přidáte do elementu ClaimsProviders v souboru s příponou vaší zásady.
Otevřete soubor SocialAndLocalAccounts/TrustFrameworkExtensions.xml v editoru. Tento soubor je součástí úvodní sady vlastních zásad, kterou jste stáhli jako součást některého z požadavků.
Vyhledejte element ClaimsProviders . Pokud neexistuje, přidejte ho pod kořenový prvek.
Přidejte nový ClaimsProvider následujícím způsobem:
<ClaimsProvider> <Domain>linkedin.com</Domain> <DisplayName>LinkedIn</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="LinkedIn-OAuth2"> <DisplayName>LinkedIn</DisplayName> <Protocol Name="OAuth2" /> <Metadata> <Item Key="ProviderName">linkedin</Item> <Item Key="authorization_endpoint">https://www.linkedin.com/oauth/v2/authorization</Item> <Item Key="AccessTokenEndpoint">https://www.linkedin.com/oauth/v2/accessToken</Item> <Item Key="ClaimsEndpoint">https://api.linkedin.com/v2/me</Item> <Item Key="scope">r_emailaddress r_liteprofile</Item> <Item Key="HttpBinding">POST</Item> <Item Key="external_user_identity_claim_id">id</Item> <Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item> <Item Key="ResolveJsonPathsInJsonTokens">true</Item> <Item Key="UsePolicyInRedirectUri">false</Item> <Item Key="client_id">Your LinkedIn application client ID</Item> </Metadata> <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_LinkedInSecret" /> </CryptographicKeys> <InputClaims /> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="id" /> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="firstName.localized" /> <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="lastName.localized" /> <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="linkedin.com" AlwaysUseDefaultValue="true" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="ExtractGivenNameFromLinkedInResponse" /> <OutputClaimsTransformation ReferenceId="ExtractSurNameFromLinkedInResponse" /> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" /> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" /> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" /> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" /> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Nahraďte hodnotu client_id ID klienta aplikace LinkedIn, kterou jste si předtím poznamenali.
Soubor uložte.
Přidání transformací deklarací identity
Technický profil LinkedIn vyžaduje přidání transformací deklarací identity ExtractGivenNameFromLinkedInResponse a ExtractSurNameFromLinkedInResponse do seznamu ClaimsTransformations. Pokud nemáte v souboru definovaný element ClaimsTransformations, přidejte nadřazené elementy XML, jak je znázorněno níže. Transformace deklarací identity také potřebují nový typ deklarace identity definovaný s názvem nullStringClaim.
Přidejte element BuildingBlocks v horní části souboru TrustFrameworkExtensions.xml. Příklad najdete v souboru TrustFrameworkBase.xml .
<BuildingBlocks>
<ClaimsSchema>
<!-- Claim type needed for LinkedIn claims transformations -->
<ClaimType Id="nullStringClaim">
<DisplayName>nullClaim</DisplayName>
<DataType>string</DataType>
<AdminHelpText>A policy claim to store output values from ClaimsTransformations that aren't useful. This claim should not be used in TechnicalProfiles.</AdminHelpText>
<UserHelpText>A policy claim to store output values from ClaimsTransformations that aren't useful. This claim should not be used in TechnicalProfiles.</UserHelpText>
</ClaimType>
</ClaimsSchema>
<ClaimsTransformations>
<!-- Claim transformations needed for LinkedIn technical profile -->
<ClaimsTransformation Id="ExtractGivenNameFromLinkedInResponse" TransformationMethod="GetSingleItemFromJson">
<InputClaims>
<InputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="inputJson" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="nullStringClaim" TransformationClaimType="key" />
<OutputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="value" />
</OutputClaims>
</ClaimsTransformation>
<ClaimsTransformation Id="ExtractSurNameFromLinkedInResponse" TransformationMethod="GetSingleItemFromJson">
<InputClaims>
<InputClaim ClaimTypeReferenceId="surname" TransformationClaimType="inputJson" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="nullStringClaim" TransformationClaimType="key" />
<OutputClaim ClaimTypeReferenceId="surname" TransformationClaimType="value" />
</OutputClaims>
</ClaimsTransformation>
</ClaimsTransformations>
</BuildingBlocks>
Přidání cesty uživatele
V tuto chvíli je zprostředkovatele identity nastavený, ale zatím není k dispozici na žádné přihlašovací stránce. Pokud nemáte vlastní cestu uživatele, vytvořte duplikát existující cesty uživatele šablony, jinak pokračujte dalším krokem.
- Otevřete soubor TrustFrameworkBase.xml z úvodní sady.
- Najděte a zkopírujte celý obsah prvku UserJourney , který obsahuje
Id="SignUpOrSignIn"
. - Otevřete TrustFrameworkExtensions.xml a najděte element UserJourneys. Pokud prvek neexistuje, přidejte ho.
- Vložte celý obsah elementu UserJourney , který jste zkopírovali jako podřízený prvek UserJourneys .
- Přejmenujte ID cesty uživatele. Například,
Id="CustomSignUpSignIn"
.
Přidání zprostředkovatele identity do cesty uživatele
Teď, když máte cestu uživatele, přidejte do cesty uživatele nového zprostředkovatele identity. Nejdřív přidáte tlačítko pro přihlášení a pak tlačítko propočítáte s akcí. Akce je technický profil, který jste vytvořili dříve.
Najděte prvek kroku orchestrace, který zahrnuje
Type="CombinedSignInAndSignUp"
neboType="ClaimsProviderSelection"
na cestě uživatelem. Obvykle se jedná o první krok orchestrace. Element ClaimsProviderSelections obsahuje seznam zprostředkovatelů identity, se kterými se uživatel může přihlásit. Pořadí prvků řídí pořadí tlačítek pro přihlášení, která jsou uživateli prezentována. Přidejte element XML ClaimsProviderSelection. Nastavte hodnotu TargetClaimsExchangeId na popisný název.V dalším kroku orchestrace přidejte element ClaimsExchange . Nastavte ID na hodnotu ID cílové výměny deklarací identity. Aktualizujte hodnotu TechnicalProfileReferenceId na ID technického profilu, který jste vytvořili dříve.
Následující KÓD XML ukazuje první dva kroky orchestrace cesty uživatele se zprostředkovatelem identity:
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
...
<ClaimsProviderSelection TargetClaimsExchangeId="LinkedInExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="LinkedInExchange" TechnicalProfileReferenceId="LinkedIn-OAuth2" />
</ClaimsExchanges>
</OrchestrationStep>
Konfigurace zásad předávající strany
Zásady předávající strany, například SignUpSignIn.xml, určují cestu uživatele, kterou azure AD B2C spustí. Najděte element DefaultUserJourney v rámci předávající strany. Aktualizujte ID reference tak, aby odpovídalo ID cesty uživatele, do kterého jste přidali zprostředkovatele identity.
V následujícím příkladu CustomSignUpSignIn
je pro cestu uživatele nastavena hodnota ReferenceId na CustomSignUpSignIn
:
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
Nahrání vlastních zásad
- Přihlaste se k portálu Azure.
- Na panelu nástrojů portálu vyberte ikonu Adresář a předplatné a pak vyberte adresář, který obsahuje vašeho tenanta Azure AD B2C.
- Na webu Azure Portal vyhledejte a vyberte Azure AD B2C.
- V části Zásady vyberte Architekturu prostředí identit.
- Vyberte Nahrát vlastní zásady a potom nahrajte dva soubory zásad, které jste změnili, v následujícím pořadí: zásady rozšíření, například
TrustFrameworkExtensions.xml
, pak zásady předávající strany, napříkladSignUpSignIn.xml
.
Testování vlastních zásad
- Vyberte například zásadu
B2C_1A_signup_signin
předávající strany. - V části Aplikace vyberte webovou aplikaci, kterou jste předtím zaregistrovali. Adresa URL odpovědi by se měla zobrazit
https://jwt.ms
. - Vyberte tlačítko Spustit hned.
- Na registrační nebo přihlašovací stránce vyberte LinkedIn a přihlaste se pomocí účtu LinkedIn.
Pokud je proces přihlášení úspěšný, prohlížeč se přesměruje na https://jwt.ms
obsah tokenu vráceného službou Azure AD B2C.
Migrace z verze 1.0 na verzi 2.0
LinkedIn nedávno aktualizoval svá rozhraní API z verze 1.0 na verzi 2.0. Pokud chcete migrovat stávající konfiguraci na novou konfiguraci, aktualizujte prvky v technickém profilu pomocí informací v následujících částech.
Nahrazení položek v metadatech
V existujícím prvku Metadata technicalProfile aktualizujte následující prvky položky z:
<Item Key="ClaimsEndpoint">https://api.linkedin.com/v1/people/~:(id,first-name,last-name,email-address,headline)</Item>
<Item Key="scope">r_emailaddress r_basicprofile</Item>
Do:
<Item Key="ClaimsEndpoint">https://api.linkedin.com/v2/me</Item>
<Item Key="scope">r_emailaddress r_liteprofile</Item>
Přidání položek do metadat
Do metadat technicalProfile přidejte následující prvky položky:
<Item Key="external_user_identity_claim_id">id</Item>
<Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item>
<Item Key="ResolveJsonPathsInJsonTokens">true</Item>
Aktualizace outputClaims
V existující OutputClaims TechnicalProfile aktualizujte následující outputClaim elementy z:
<OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="firstName" />
<OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="lastName" />
Do:
<OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="firstName.localized" />
<OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="lastName.localized" />
Přidání nových elementů OutputClaimsTransformation
Do outputClaimsTransformations TechnicalProfile přidejte následující OutputClaimsTransformation elementy:
<OutputClaimsTransformation ReferenceId="ExtractGivenNameFromLinkedInResponse" />
<OutputClaimsTransformation ReferenceId="ExtractSurNameFromLinkedInResponse" />
Definování nových transformací deklarací identity a typu deklarace identity
V posledním kroku jste přidali nové transformace deklarací identity, které je potřeba definovat. Pokud chcete definovat transformace deklarací identity, přidejte je do seznamu deklarací IdentityTransformations. Pokud nemáte v souboru definovaný element ClaimsTransformations, přidejte nadřazené elementy XML, jak je znázorněno níže. Transformace deklarací identity také potřebují nový typ deklarace identity definovaný s názvem nullStringClaim.
Prvek BuildingBlocks by měl být přidán v horní části souboru. Příklad najdete v souboru TrustframeworkBase.xml .
<BuildingBlocks>
<ClaimsSchema>
<!-- Claim type needed for LinkedIn claims transformations -->
<ClaimType Id="nullStringClaim">
<DisplayName>nullClaim</DisplayName>
<DataType>string</DataType>
<AdminHelpText>A policy claim to store unuseful output values from ClaimsTransformations. This claim should not be used in a TechnicalProfiles.</AdminHelpText>
<UserHelpText>A policy claim to store unuseful output values from ClaimsTransformations. This claim should not be used in a TechnicalProfiles.</UserHelpText>
</ClaimType>
</ClaimsSchema>
<ClaimsTransformations>
<!-- Claim transformations needed for LinkedIn technical profile -->
<ClaimsTransformation Id="ExtractGivenNameFromLinkedInResponse" TransformationMethod="GetSingleItemFromJson">
<InputClaims>
<InputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="inputJson" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="nullStringClaim" TransformationClaimType="key" />
<OutputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="value" />
</OutputClaims>
</ClaimsTransformation>
<ClaimsTransformation Id="ExtractSurNameFromLinkedInResponse" TransformationMethod="GetSingleItemFromJson">
<InputClaims>
<InputClaim ClaimTypeReferenceId="surname" TransformationClaimType="inputJson" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="nullStringClaim" TransformationClaimType="key" />
<OutputClaim ClaimTypeReferenceId="surname" TransformationClaimType="value" />
</OutputClaims>
</ClaimsTransformation>
</ClaimsTransformations>
</BuildingBlocks>
Získání e-mailové adresy
Při migraci z v1.0 na verzi 2.0 se k získání e-mailové adresy vyžaduje další volání jiného rozhraní API. Pokud potřebujete získat e-mailovou adresu během registrace, postupujte takto:
Provedením výše uvedených kroků povolíte službě Azure AD B2C federovat s LinkedInem, aby se uživatel mohl přihlásit. V rámci federace azure AD B2C obdrží přístupový token pro LinkedIn.
Uložte přístupový token LinkedIn do deklarace identity. Pokyny najdete tady.
Přidejte následující zprostředkovatele deklarací identity, který požadavek odešle do rozhraní API linkedin
/emailAddress
. K autorizaci této žádosti potřebujete přístupový token LinkedIn.<ClaimsProvider> <DisplayName>REST APIs</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="API-LinkedInEmail"> <DisplayName>Get LinkedIn email</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <Metadata> <Item Key="ServiceUrl">https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))</Item> <Item Key="AuthenticationType">Bearer</Item> <Item Key="UseClaimAsBearerToken">identityProviderAccessToken</Item> <Item Key="SendClaimsIn">Url</Item> <Item Key="ResolveJsonPathsInJsonTokens">true</Item> </Metadata> <InputClaims> <InputClaim ClaimTypeReferenceId="identityProviderAccessToken" /> </InputClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="elements[0].handle~.emailAddress" /> </OutputClaims> <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Přidejte do cesty uživatele následující krok orchestrace, aby se zprostředkovatel deklarací identity rozhraní API aktivoval, když se uživatel přihlásí pomocí LinkedInu. Nezapomeňte číslo odpovídajícím způsobem aktualizovat
Order
. Tento krok přidejte ihned po kroku orchestrace, který aktivuje technický profil LinkedIn.<!-- Extra step for LinkedIn to get the email --> <OrchestrationStep Order="3" Type="ClaimsExchange"> <Preconditions> <Precondition Type="ClaimsExist" ExecuteActionsIf="false"> <Value>identityProvider</Value> <Action>SkipThisOrchestrationStep</Action> </Precondition> <Precondition Type="ClaimEquals" ExecuteActionsIf="false"> <Value>identityProvider</Value> <Value>linkedin.com</Value> <Action>SkipThisOrchestrationStep</Action> </Precondition> </Preconditions> <ClaimsExchanges> <ClaimsExchange Id="GetEmail" TechnicalProfileReferenceId="API-LinkedInEmail" /> </ClaimsExchanges> </OrchestrationStep>
Získání e-mailové adresy z LinkedInu během registrace je volitelné. Pokud se rozhodnete e-mail z LinkedInu nezístit, ale během registrace ho potřebujete, musí uživatel zadat e-mailovou adresu ručně a ověřit ji.
Úplnou ukázku zásad, které používají zprostředkovatele identity LinkedIn, najdete v úvodní sadě Vlastních zásad.
Migrace z verze 1.0 na verzi 2.0
LinkedIn nedávno aktualizoval svá rozhraní API z verze 1.0 na verzi 2.0. V rámci migrace dokáže Azure AD B2C získat během registrace pouze úplný název uživatele LinkedIn. Pokud je e-mailová adresa jedním z atributů shromážděných během registrace, musí uživatel ručně zadat e-mailovou adresu a ověřit ji.