| title | Set up sign-up and sign-in with a Weibo account |
|---|---|
| titleSuffix | Azure AD B2C |
| description | Provide sign-up and sign-in to customers with Weibo accounts in your applications using Azure Active Directory B2C. |
| author | garrodonnell |
| manager | CelesteDG |
| ms.service | azure-active-directory |
| ms.topic | how-to |
| ms.date | 09/16/2021 |
| ms.author | godonnell |
| ms.subservice | b2c |
| zone_pivot_groups | b2c-policy-type |
[!INCLUDE active-directory-b2c-end-of-sale-notice-b]
[!INCLUDE active-directory-b2c-choose-user-flow-or-custom-policy]
::: zone pivot="b2c-user-flow"
[!INCLUDE active-directory-b2c-public-preview]
::: zone-end
[!INCLUDE active-directory-b2c-customization-prerequisites]
To enable sign-in for users with a Weibo account in Azure Active Directory B2C (Azure AD B2C), you need to create an application in Weibo developer portal. If you don't already have a Weibo account, you can sign up at https://weibo.com.
- Sign in to the Weibo developer portal with your Weibo account credentials.
- After signing in, select your display name in the top-right corner.
- In the dropdown, select 编辑开发者信息 (edit developer information).
- Enter the required information and select 提交 (submit).
- Complete the email verification process.
- Go to the identity verification page.
- Enter the required information and select 提交 (submit).
- Go to the new Weibo app registration page.
- Enter the necessary application information.
- Select 创建 (create).
- Copy the values of App Key and App Secret. You need both of these to add the identity provider to your tenant.
- Upload the required photos and enter the necessary information.
- Select 保存以上信息 (save).
- Select 高级信息 (advanced information).
- Select 编辑 (edit) next to the field for OAuth2.0 授权设置 (redirect URL).
- For the OAuth2.0 授权设置 (redirect URL), enter
https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp. If you use a custom domain, enterhttps://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. Replaceyour-tenant-namewith the name of your tenant, andyour-domain-namewith your custom domain. - Select 提交 (submit).
::: zone pivot="b2c-user-flow"
- Sign in to the Azure portal with an account that has at least External Identity Provider Administrator privileges.
- If you have access to multiple tenants, select the Settings icon in the top menu to switch to your Azure AD B2C tenant from the Directories + subscriptions menu.
- Choose All services in the top-left corner of the Azure portal, search for and select Azure AD B2C.
- Select Identity providers, then select Weibo (Preview).
- Enter a Name. For example, Weibo.
- For the Client ID, enter the App Key of the Weibo application that you created earlier.
- For the Client secret, enter the App Secret that you recorded.
- Select Save.
- In your Azure AD B2C tenant, select User flows.
- Click the user flow that you want to add the Weibo identity provider.
- Under the Social identity providers, select Weibo.
- Select Save.
- To test your policy, select Run user flow.
- For Application, select the web application named testapp1 that you previously registered. The Reply URL should show
https://jwt.ms. - Select the Run user flow button.
- From the sign-up or sign-in page, select Weibo to sign in with Weibo account.
If the sign-in process is successful, your browser is redirected to https://jwt.ms, which displays the contents of the token returned by Azure AD B2C.
::: zone-end
::: zone pivot="b2c-custom-policy"
You need to store the client secret that you previously recorded in your Azure AD B2C tenant.
- Sign in to the Azure portal.
- If you have access to multiple tenants, select the Settings icon in the top menu to switch to your Azure AD B2C tenant from the Directories + subscriptions menu.
- Choose All services in the top-left corner of the Azure portal, and then search for and select Azure AD B2C.
- On the Overview page, select Identity Experience Framework.
- Select Policy Keys and then select Add.
- For Options, choose
Manual. - Enter a Name for the policy key. For example,
WeiboSecret. The prefixB2C_1A_is added automatically to the name of your key. - In Secret, enter your client secret that you previously recorded.
- For Key usage, select
Signature. - Click Create.
To enable users to sign in using a Weibo account, you need to define the account as a claims provider that Azure AD B2C can communicate with through an endpoint. The endpoint provides a set of claims that are used by Azure AD B2C to verify that a specific user has authenticated.
You can define a Weibo account as a claims provider by adding it to the ClaimsProviders element in the extension file of your policy.
-
Open the TrustFrameworkExtensions.xml.
-
Find the ClaimsProviders element. If it does not exist, add it under the root element.
-
Add a new ClaimsProvider as follows:
<ClaimsProvider> <Domain>weibo.com</Domain> <DisplayName>Weibo (Preview)</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Weibo-OAuth2"> <DisplayName>Weibo</DisplayName> <Protocol Name="OAuth2" /> <Metadata> <Item Key="ProviderName">weibo</Item> <Item Key="authorization_endpoint">https://api.weibo.com/oauth2/authorize</Item> <Item Key="AccessTokenEndpoint">https://api.weibo.com/oauth2/access_token</Item> <Item Key="ClaimsEndpoint">https://api.weibo.com/2/account/get_uid.json</Item> <Item Key="scope">email</Item> <Item Key="HttpBinding">POST</Item> <Item Key="external_user_identity_claim_id">uid</Item> <Item Key="client_id">Your Weibo application ID</Item> </Metadata> <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_WeiboSecret" /> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="numericUserId" PartnerClaimType="uid" /> <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="weibo.com" AlwaysUseDefaultValue="true" /> <OutputClaim ClaimTypeReferenceId="displayName" DefaultValue="Weibo User" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> <OutputClaim ClaimTypeReferenceId="UserId" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateIssuerUserId" /> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider> <ClaimsProvider>
-
Set client_id to the application ID from the application registration.
-
Save the file.
The GitHub technical profile requires the CreateIssuerUserId claim transformations to be added to the list of ClaimsTransformations. If you don't have a ClaimsTransformations element defined in your file, add the parent XML elements as shown below. The claims transformations also need a new claim type defined named numericUserId.
- Search for the BuildingBlocks element. If the element doesn't exist, add it.
- Locate the ClaimsSchema element. If the element doesn't exist, add it.
- Add the numericUserId claim to the ClaimsSchema element.
- Locate the ClaimsTransformations element. If the element doesn't exist, add it.
- Add the CreateIssuerUserId claims transformations to the ClaimsTransformations element.
<BuildingBlocks>
<ClaimsSchema>
<ClaimType Id="numericUserId">
<DisplayName>Numeric user Identifier</DisplayName>
<DataType>long</DataType>
</ClaimType>
</ClaimsSchema>
<ClaimsTransformations>
<ClaimsTransformation Id="CreateIssuerUserId" TransformationMethod="ConvertNumberToStringClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="numericUserId" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="issuerUserId" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
</ClaimsTransformations>
</BuildingBlocks>[!INCLUDE active-directory-b2c-add-identity-provider-to-user-journey]
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
...
<ClaimsProviderSelection TargetClaimsExchangeId="WeiboExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="WeiboExchange" TechnicalProfileReferenceId="Weibo-OAuth2" />
</ClaimsExchanges>
</OrchestrationStep>[!INCLUDE active-directory-b2c-configure-relying-party-policy]
- Select your relying party policy, for example
B2C_1A_signup_signin. - For Application, select a web application that you previously registered. The Reply URL should show
https://jwt.ms. - Select the Run now button.
- From the sign-up or sign-in page, select Weibo to sign in with Weibo account.
If the sign-in process is successful, your browser is redirected to https://jwt.ms, which displays the contents of the token returned by Azure AD B2C.
::: zone-end