Konfigurowanie rejestracji i logowania przy użyciu konta linkedin przy użyciu usługi Azure Active Directory B2C

Przed rozpoczęciem użyj selektora Wybierz typ zasad, aby wybrać typ konfigurowanych zasad. Usługa Azure Active Directory B2C oferuje dwie metody definiowania sposobu interakcji użytkowników z aplikacjami: za pomocą wstępnie zdefiniowanych przepływów użytkowników lub w pełni konfigurowalnych zasad niestandardowych. Kroki wymagane w tym artykule są różne dla każdej metody.

Uwaga

W usłudze Azure Active Directory B2C zasady niestandardowe są przeznaczone głównie do rozwiązywania złożonych scenariuszy. W przypadku większości scenariuszy zalecamy używanie wbudowanych przepływów użytkownika. Jeśli nie zostało to zrobione, dowiedz się więcej o niestandardowym pakiecie startowym zasad w temacie Wprowadzenie do zasad niestandardowych w usłudze Active Directory B2C.

Wymagania wstępne

Tworzenie aplikacji LinkedIn

Aby włączyć logowanie dla użytkowników przy użyciu konta LinkedIn w usłudze Azure Active Directory B2C (Azure AD B2C), musisz utworzyć aplikację w witrynie internetowej LinkedIn Developers. Aby uzyskać więcej informacji, zobacz Przepływ kodu autoryzacji. Jeśli nie masz jeszcze konta serwisu LinkedIn, możesz zarejestrować się pod adresem https://www.linkedin.com/.

  1. Zaloguj się do witryny internetowej LinkedIn Developers przy użyciu poświadczeń konta LinkedIn.
  2. Wybierz Moje aplikacje, a następnie kliknij pozycję Utwórz aplikację.
  3. Wprowadź nazwę aplikacji, stronę linkedin, adres URL zasad ochrony prywatności i logo aplikacji.
  4. Zaakceptuj warunki użytkowania interfejsu API serwisu LinkedIn i kliknij pozycję Utwórz aplikację.
  5. Wybierz kartę Uwierzytelnianie. W obszarze Klucze uwierzytelniania skopiuj wartości identyfikatora klienta i klucza tajnego klienta. Oba te elementy będą potrzebne do skonfigurowania usługi LinkedIn jako dostawcy tożsamości w dzierżawie. Klucz tajny klienta to ważne poświadczenia zabezpieczeń.
  6. Wybierz ołówek edycji obok pozycji Autoryzowane adresy URL przekierowania dla aplikacji, a następnie wybierz pozycję Dodaj adres URL przekierowania. Wprowadź https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp. Jeśli używasz domeny niestandardowej, wprowadź .https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp Zastąp your-tenant-name ciąg nazwą dzierżawy i your-domain-name domeną niestandardową. Podczas wprowadzania nazwy dzierżawy należy użyć wszystkich małych liter, nawet jeśli dzierżawa jest zdefiniowana z wielkimi literami w usłudze Azure AD B2C. Wybierz Aktualizuj.
  7. Domyślnie aplikacja LinkedIn nie jest zatwierdzona dla zakresów związanych z logowaniem. Aby zażądać przeglądu, wybierz kartę Produkty , a następnie wybierz pozycję Zaloguj się za pomocą serwisu LinkedIn. Po zakończeniu przeglądu wymagane zakresy zostaną dodane do aplikacji.

    Uwaga

    Zakresy, które są obecnie dozwolone dla aplikacji, można wyświetlić na karcie Uwierzytelnianie w sekcji Zakresy protokołu OAuth 2.0.

Konfigurowanie usługi LinkedIn jako dostawcy tożsamości

  1. Zaloguj się w witrynie Azure Portal jako administrator globalny dzierżawy usługi Azure AD B2C.
  2. Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się do dzierżawy usługi Azure AD B2C z menu Katalogi i subskrypcje.
  3. Wybierz pozycję Wszystkie usługi w lewym górnym rogu witryny Azure Portal, a następnie wyszukaj i wybierz usługę Azure AD B2C.
  4. Wybierz pozycję Dostawcy tożsamości, a następnie wybierz pozycję LinkedIn.
  5. Wprowadź nazwę. Na przykład LinkedIn.
  6. W polu Identyfikator klienta wprowadź identyfikator klienta utworzonej wcześniej aplikacji LinkedIn.
  7. W polu Klucz tajny klienta wprowadź zarejestrowany klucz tajny klienta.
  8. Wybierz pozycję Zapisz.

Dodawanie dostawcy tożsamości LinkedIn do przepływu użytkownika

Na tym etapie skonfigurowano dostawcę tożsamości LinkedIn, ale nie jest jeszcze dostępny na żadnej ze stron logowania. Aby dodać dostawcę tożsamości LinkedIn do przepływu użytkownika:

  1. W dzierżawie usługi Azure AD B2C wybierz pozycję Przepływy użytkownika.
  2. Kliknij przepływ użytkownika, który chcesz dodać dostawcę tożsamości LinkedIn.
  3. W obszarze Dostawcy tożsamości społecznościowych wybierz pozycję LinkedIn.
  4. Wybierz pozycję Zapisz.
  5. Aby przetestować zasady, wybierz pozycję Uruchom przepływ użytkownika.
  6. W polu Aplikacja wybierz aplikację internetową o nazwie testapp1 , która została wcześniej zarejestrowana. Adres URL odpowiedzi powinien zawierać wartość https://jwt.ms.
  7. Wybierz przycisk Uruchom przepływ użytkownika.
  8. Na stronie rejestracji lub logowania wybierz pozycję LinkedIn , aby zalogować się przy użyciu konta LinkedIn.

Jeśli proces logowania zakończy się pomyślnie, przeglądarka zostanie przekierowana do https://jwt.msusługi , która wyświetla zawartość tokenu zwróconego przez usługę Azure AD B2C.

Tworzenie klucza zasad

Musisz przechowywać wpis tajny klienta, który został wcześniej zarejestrowany w dzierżawie usługi Azure AD B2C.

  1. Zaloguj się w witrynie Azure Portal.
  2. Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się do dzierżawy usługi Azure AD B2C z menu Katalogi i subskrypcje.
  3. Wybierz pozycję Wszystkie usługi w lewym górnym rogu witryny Azure Portal, a następnie wyszukaj i wybierz usługę Azure AD B2C.
  4. Na stronie Przegląd wybierz pozycję Identity Experience Framework.
  5. Wybierz pozycję Klucze zasad, a następnie wybierz pozycję Dodaj.
  6. W obszarze Opcje wybierz pozycję Manual.
  7. Wprowadź nazwę klucza zasad. Na przykład LinkedInSecret. Prefiks B2C_1A_ jest dodawany automatycznie do nazwy klucza.
  8. W obszarze Wpis tajny wprowadź wcześniej zarejestrowany wpis tajny klienta.
  9. W obszarze Użycie klucza wybierz pozycję Signature.
  10. Kliknij pozycję Utwórz.

Konfigurowanie usługi LinkedIn jako dostawcy tożsamości

Aby umożliwić użytkownikom logowanie się przy użyciu konta linkedin, należy zdefiniować konto jako dostawcę oświadczeń, z którym usługa Azure AD B2C może komunikować się za pośrednictwem punktu końcowego. Punkt końcowy udostępnia zestaw oświadczeń używanych przez usługę Azure AD B2C do sprawdzania, czy określony użytkownik został uwierzytelniony.

Zdefiniuj konto LinkedIn jako dostawcę oświadczeń, dodając je do elementu ClaimsProviders w pliku rozszerzenia zasad.

  1. Otwórz plik SocialAndLocalAccounts/TrustFrameworkExtensions.xml w edytorze. Ten plik znajduje się w pobranym pakiecie startowym zasad niestandardowych w ramach jednego z wymagań wstępnych.

  2. Znajdź element ClaimsProviders. Jeśli nie istnieje, dodaj go pod elementem głównym.

  3. Dodaj nowy element ClaimsProvider w następujący sposób:

    <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>
    
  4. Zastąp wartość client_id identyfikatorem klienta zarejestrowanej wcześniej aplikacji LinkedIn.

  5. Zapisz plik.

Dodawanie przekształceń oświadczeń

Profil techniczny LinkedIn wymaga , aby przekształcenia oświadczeń ExtractGivenNameFromLinkedInResponse i ExtractSurNameFromLinkedInResponse zostały dodane do listy claimsTransformations. Jeśli nie masz elementu ClaimsTransformations zdefiniowanego w pliku, dodaj nadrzędne elementy XML, jak pokazano poniżej. Przekształcenia oświadczeń wymagają również nowego typu oświadczenia zdefiniowanego o nazwie nullStringClaim.

Dodaj element BuildingBlocks w górnej części pliku TrustFrameworkExtensions.xml. Zobacz przykład 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>

Dodawanie podróży użytkownika

W tym momencie dostawca tożsamości został skonfigurowany, ale nie jest jeszcze dostępny na żadnej ze stron logowania. Jeśli nie masz własnej podróży użytkownika niestandardowego, utwórz duplikat istniejącej podróży użytkownika szablonu, w przeciwnym razie przejdź do następnego kroku.

  1. Otwórz plik TrustFrameworkBase.xml z pakietu startowego.
  2. Znajdź i skopiuj całą zawartość elementu UserJourney , który zawiera Id="SignUpOrSignIn"element .
  3. Otwórz plik TrustFrameworkExtensions.xml i znajdź element UserJourneys . Jeśli element nie istnieje, dodaj go.
  4. Wklej całą zawartość elementu UserJourney skopiowaną jako element podrzędny elementu UserJourneys .
  5. Zmień nazwę identyfikatora podróży użytkownika. Na przykład Id="CustomSignUpSignIn".

Dodawanie dostawcy tożsamości do podróży użytkownika

Teraz, gdy masz podróż użytkownika, dodaj nowego dostawcę tożsamości do podróży użytkownika. Najpierw dodaj przycisk logowania, a następnie połącz przycisk z akcją. Akcja to utworzony wcześniej profil techniczny.

  1. Znajdź element kroku aranżacji, który zawiera Type="CombinedSignInAndSignUp"element , lub Type="ClaimsProviderSelection" w podróży użytkownika. Zazwyczaj jest to pierwszy krok aranżacji. Element ClaimsProviderSelections zawiera listę dostawców tożsamości, za pomocą których użytkownik może się zalogować. Kolejność elementów kontroluje kolejność przycisków logowania przedstawionych użytkownikowi. Dodaj element ClaimsProviderSelection XML. Ustaw wartość TargetClaimsExchangeId na przyjazną nazwę.

  2. W następnym kroku aranżacji dodaj element ClaimsExchange . Ustaw identyfikator na wartość identyfikatora wymiany oświadczeń docelowych. Zaktualizuj wartość TechnicalProfileReferenceId na identyfikator utworzonego wcześniej profilu technicznego.

Poniższy kod XML przedstawia dwa pierwsze kroki orkiestracji podróży użytkownika z dostawcą tożsamości:

<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>

Konfigurowanie zasad jednostki uzależnionej

Zasady jednostki uzależnionej, na przykład SignUpSignIn.xml, określają podróż użytkownika, który będzie wykonywany przez usługę Azure AD B2C. Znajdź element DefaultUserJourney w ramach jednostki uzależnionej. Zaktualizuj identyfikator ReferenceId , aby był zgodny z identyfikatorem podróży użytkownika, w którym dodano dostawcę tożsamości.

W poniższym przykładzie CustomSignUpSignIn dla podróży użytkownika identyfikator ReferenceId jest ustawiony na :CustomSignUpSignIn

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Przekazywanie zasad niestandardowych

  1. Zaloguj się w witrynie Azure Portal.
  2. Wybierz ikonę Katalog i subskrypcja na pasku narzędzi portalu, a następnie wybierz katalog zawierający dzierżawę usługi Azure AD B2C.
  3. W witrynie Azure Portal wyszukaj i wybierz pozycję Azure AD B2C.
  4. W obszarze Zasady wybierz pozycję Identity Experience Framework.
  5. Wybierz pozycję Przekaż zasady niestandardowe, a następnie przekaż dwa zmienione pliki zasad w następującej kolejności: zasady rozszerzenia, na przykład TrustFrameworkExtensions.xml, a następnie zasady jednostki uzależnionej, takie jak SignUpSignIn.xml.

Testowanie zasad niestandardowych

  1. Wybierz zasady jednostki uzależnionej, na przykład B2C_1A_signup_signin.
  2. W polu Aplikacja wybierz wcześniej zarejestrowaną aplikację internetową. Adres URL odpowiedzi powinien zawierać wartość https://jwt.ms.
  3. Wybierz przycisk Uruchom teraz.
  4. Na stronie rejestracji lub logowania wybierz pozycję LinkedIn , aby zalogować się przy użyciu konta LinkedIn.

Jeśli proces logowania zakończy się pomyślnie, przeglądarka zostanie przekierowana do https://jwt.msusługi , która wyświetla zawartość tokenu zwróconego przez usługę Azure AD B2C.

Migracja z wersji 1.0 do wersji 2.0

LinkedIn niedawno zaktualizował swoje interfejsy API z wersji 1.0 do wersji 2.0. Aby przeprowadzić migrację istniejącej konfiguracji do nowej konfiguracji, skorzystaj z informacji w poniższych sekcjach, aby zaktualizować elementy w profilu technicznym.

Zastępowanie elementów w metadanych

W istniejącym elemencie Metadata pliku TechnicalProfile zaktualizuj następujące elementy elementu :

<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>

Dodawanie elementów do metadanych

W metadanychpliku TechnicalProfile dodaj następujące elementy elementu:

<Item Key="external_user_identity_claim_id">id</Item>
<Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item>
<Item Key="ResolveJsonPathsInJsonTokens">true</Item>

Aktualizowanie elementu OutputClaims

W istniejących elementach OutputClaims pliku TechnicalProfile zaktualizuj następujące elementy OutputClaim :

<OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="firstName" />
<OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="lastName" />

Do:

<OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="firstName.localized" />
<OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="lastName.localized" />

Dodawanie nowych elementów OutputClaimsTransformation

W obszarze OutputClaimsTransformations pliku TechnicalProfile dodaj następujące elementy OutputClaimsTransformation :

<OutputClaimsTransformation ReferenceId="ExtractGivenNameFromLinkedInResponse" />
<OutputClaimsTransformation ReferenceId="ExtractSurNameFromLinkedInResponse" />

Definiowanie nowych przekształceń oświadczeń i typu oświadczenia

W ostatnim kroku dodano nowe przekształcenia oświadczeń, które należy zdefiniować. Aby zdefiniować przekształcenia oświadczeń, dodaj je do listy ClaimsTransformations. Jeśli nie masz elementu ClaimsTransformations zdefiniowanego w pliku, dodaj nadrzędne elementy XML, jak pokazano poniżej. Przekształcenia oświadczeń wymagają również nowego typu oświadczenia zdefiniowanego o nazwie nullStringClaim.

Element BuildingBlocks powinien zostać dodany w górnej części pliku. Zobacz przykład 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>

Uzyskiwanie adresu e-mail

W ramach migracji usługi LinkedIn z wersji 1.0 do wersji 2.0 do innego interfejsu API jest wymagane dodatkowe wywołanie do innego interfejsu API w celu uzyskania adresu e-mail. Jeśli podczas rejestracji musisz uzyskać adres e-mail, wykonaj następujące czynności:

  1. Wykonaj powyższe kroki, aby zezwolić usłudze Azure AD B2C na federację z usługą LinkedIn, aby zezwolić użytkownikowi na logowanie. W ramach federacji usługa Azure AD B2C otrzymuje token dostępu dla usługi LinkedIn.

  2. Zapisz token dostępu serwisu LinkedIn w oświadczeniu. Zapoznaj się z instrukcjami dostępnymi tutaj.

  3. Dodaj następującego dostawcę oświadczeń, który wysyła żądanie do interfejsu /emailAddress API serwisu LinkedIn. Aby autoryzować to żądanie, potrzebny jest token dostępu serwisu 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&amp;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>
    
  4. Dodaj następujący krok aranżacji do podróży użytkownika, aby dostawca oświadczeń interfejsu API był wyzwalany po zalogowaniu się użytkownika przy użyciu serwisu LinkedIn. Pamiętaj, aby odpowiednio zaktualizować Order numer. Dodaj ten krok bezpośrednio po kroku aranżacji, który wyzwala profil techniczny serwisu 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>
    

Uzyskanie adresu e-mail z serwisu LinkedIn podczas rejestracji jest opcjonalne. Jeśli zdecydujesz się nie uzyskać wiadomości e-mail z serwisu LinkedIn, ale wymagaj jej podczas rejestracji, użytkownik będzie musiał ręcznie wprowadzić adres e-mail i zweryfikować go.

Pełny przykład zasad korzystających z dostawcy tożsamości LinkedIn można znaleźć w temacie Custom Policy Starter Pack (Pakiet startowy zasad niestandardowych).

Migracja z wersji 1.0 do wersji 2.0

LinkedIn niedawno zaktualizował swoje interfejsy API z wersji 1.0 do wersji 2.0. W ramach migracji usługa Azure AD B2C może uzyskać tylko pełną nazwę użytkownika serwisu LinkedIn podczas rejestracji. Jeśli adres e-mail jest jednym z atrybutów zbieranych podczas rejestracji, użytkownik musi ręcznie wprowadzić adres e-mail i zweryfikować go.