Azure AD B2C Linkedin声称提供商

时间:2017-08-28 15:27:41

标签: azure-ad-b2c

我正在通过自定义政策实施Linkedin注册/登录,但是当我点击LinkedinExchange按钮时,我从用户旅程播放器中获得以下异常:

  

在向网址" https://api.linkedin.com/v1/people/~:(id,first-name,last-name,formatted-name,email-address)"提出请求时发现了异常。使用方法" Get"。异常状态代码是" ProtocolError"带有以下消息:远程服务器返回错误:(401)未经授权..   远程服务器返回错误:(401)未经授权。

这是我提出的Linkedin的ClaimProvider:

<ClaimsProvider>
  <Domain>linkedin.com</Domain>
  <DisplayName>Linkedin</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="Linkedin-OAUTH">
      <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="AccessTokenResponseFormat">json</Item>
        <Item Key="ClaimsEndpoint">https://api.linkedin.com/v1/people/~:(id,first-name,last-name,formatted-name,email-address)?format=json</Item>
        <Item Key="HttpBinding">POST</Item>
        <Item Key="UsePolicyInRedirectUri">0</Item>
        <Item Key="client_id">XXXXXXXXXXXX</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="client_secret" StorageReferenceId="B2C_1A_LinkedinSecret" />
      </CryptographicKeys>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="socialIdpUserId" PartnerClaimType="id" />
        <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="emailAddress" />
        <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="firstName" />
        <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="lastName" />
        <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="formattedName" />
        <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="Linkedin" />
        <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="Linkedin" />
      </OutputClaims>
      <OutputClaimsTransformations>
        <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
        <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
        <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
        <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" />
      </OutputClaimsTransformations>
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

有人看到我做错了吗?

1 个答案:

答案 0 :(得分:1)

要通过自定义策略在Azure AD B2C中将LinkedIn添加为身份提供程序,请确保在ClaimsProvider的<Metadata>部分中包含以下条目:

<Item Key="ClaimsEndpointAccessTokenName">oauth2_access_token</Ite‌​m>