次の方法で共有


Azure Active Directory B2C を使用して Weibo アカウントでサインアップとサインインを設定する

重要

2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください

開始する前にこのページの上部にある ポリシーの種類 セレクターを使用して、設定するポリシーの種類を選択します。 Azure Active Directory B2C には、ユーザーがアプリケーションを操作する方法を定義する 2 つの方法 (定義済みのユーザー フローを使用する、または完全に構成可能なカスタム ポリシーを使用する) があります。 この記事で必要な手順は、方法ごとに異なります。

この機能はパブリック プレビュー段階にあります。

[前提条件]

Weibo アプリケーションを作成する

Azure Active Directory B2C (Azure AD B2C) で Weibo アカウントを持つユーザーのサインインを有効にするには、Weibo 開発者ポータルでアプリケーションを作成する必要があります。 Weibo アカウントをまだお持ちでない場合は、 https://weibo.comでサインアップできます。

  1. Weibo アカウントの資格情報を使用して Weibo 開発者ポータルにサインインします。
  2. サインインした後、右上隅にある表示名を選択します。
  3. ドロップダウンで、 编辑开发者信息 (開発者情報の編集) を選択します。
  4. 必要な情報を入力し、 提交 (送信) を選択します。
  5. 電子メールの確認プロセスを完了します。
  6. ID 確認ページに移動します。
  7. 必要な情報を入力し、 提交 (送信) を選択します。

Weibo アプリケーションを登録する

  1. 新しい Weibo アプリ登録ページに移動します。
  2. 必要なアプリケーション情報を入力します。
  3. 创建 (作成) を選択します。
  4. アプリ キーアプリ シークレットの値をコピーします。 ID プロバイダーをテナントに追加するには、これら両方が必要です。
  5. 必要な写真をアップロードし、必要な情報を入力します。
  6. [保存以上信息 (保存)] を選択します。
  7. 高级信息 (詳細情報) を選択します。
  8. OAuth2.0 授权设置 (リダイレクト URL) のフィールドの横にある编辑 (編集) を選択します。
  9. OAuth2.0 授权设置 (リダイレクト URL) には、「 https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp」と入力します。 カスタム ドメインを使用する場合は、「https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp」と入力します。 your-tenant-nameをテナントの名前に置き換え、your-domain-nameをカスタム ドメインに置き換えます。
  10. 提交 (送信) を選択します。

ID プロバイダーとして Weibo を構成する

  1. 少なくとも外部 ID プロバイダー管理者特権を持つアカウントで Azure portal にサインインします。
  2. 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
  3. Azure portal の左上隅にある [ すべてのサービス ] を選択し、 Azure AD B2C を検索して選択します。
  4. ID プロバイダーを選択し、Weibo (プレビュー) を選択します。
  5. 名前を入力します。 たとえば、 Weibo です。
  6. クライアント ID には、先ほど作成した Weibo アプリケーションのアプリ キーを入力します。
  7. クライアント シークレットの場合は、記録したアプリ シークレットを入力します。
  8. 保存 を選択します。

Weibo ID プロバイダーをユーザー フローに追加する

  1. Azure AD B2C テナントで、[ ユーザー フロー] を選択します。
  2. Weibo ID プロバイダーを追加するユーザー フローをクリックします。
  3. [ソーシャル ID プロバイダー] で[Weibo] を選択します。
  4. 保存 を選択します。
  5. ポリシーをテストするには、[ ユーザー フローの実行] を選択します。
  6. [アプリケーション] で、以前に登録した testapp1 という名前の Web アプリケーションを選択します。 応答 URLhttps://jwt.msが表示されます。
  7. [ ユーザー フローの実行 ] ボタンを選択します。
  8. サインアップまたはサインイン ページで、Weibo アカウントでサインインする Weibo を選択します。

サインイン プロセスが成功すると、ブラウザーは https://jwt.ms にリダイレクトされ、Azure AD B2C によって返されるトークンの内容が表示されます。

ポリシー キーを作成する

以前に Azure AD B2C テナントに記録したクライアント シークレットを格納する必要があります。

  1. Azure portal にサインインします。
  2. 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
  3. Azure portal の左上隅にある [すべてのサービス] を選択してから、[Azure AD B2C] を検索して選択します。
  4. [概要] ページで、[Identity Experience Framework] を選びます。
  5. [ポリシー キー] を選択し、[追加] を選びます。
  6. [オプション] で、[Manual] を選択します。
  7. ポリシー キーの名前を入力します。 たとえば、WeiboSecret のようにします。 プレフィックス B2C_1A_ がキーの名前に自動的に追加されます。
  8. [ シークレット] に、前に記録したクライアント シークレットを入力します。
  9. [ キーの使用法] で、[ Signature] を選択します。
  10. Create をクリックしてください。

ID プロバイダーとして Weibo を構成する

ユーザーが Weibo アカウントを使用してサインインできるようにするには、Azure AD B2C がエンドポイント経由で通信できるクレーム プロバイダーとしてアカウントを定義する必要があります。 エンドポイントは、特定のユーザーが認証されたことを確認するために Azure AD B2C によって使用されるクレームのセットを提供します。

Weibo アカウントをクレーム プロバイダーとして定義するには、ポリシーの拡張ファイルの ClaimsProviders 要素に追加します。

  1. TrustFrameworkExtensions.xmlを開きます。

  2. ClaimsProviders 要素を検索します。 存在しない場合は、ルート要素の下に追加します。

  3. 次のように新しい ClaimsProvider を追加します。

    <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>
    
  4. client_idアプリケーション登録のアプリケーション ID に設定します。

  5. ファイルを保存します。

要求変換の追加

GitHub 技術プロファイルでは、 CreateIssuerUserId 要求変換を ClaimsTransformations の一覧に追加する必要があります。 ファイルに ClaimsTransformations 要素が定義されていない場合は、次に示すように親 XML 要素を追加します。 要求変換には、 numericUserId という名前で定義された新しい要求の種類も必要です。

  1. BuildingBlocks 要素を検索します。 要素が存在しない場合は、追加します。
  2. ClaimsSchema 要素を見つけます。 要素が存在しない場合は、追加します。
  3. ClaimsSchema 要素に numericUserId 要求を追加します。
  4. ClaimsTransformations 要素を見つけます。 要素が存在しない場合は、追加します。
  5. CreateIssuerUserId 要求変換を ClaimsTransformations 要素に追加します。
<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>

ユーザー体験を追加する

この時点で、ID プロバイダーは設定されていますが、どのサインイン ページでもまだ使用できません。 独自のカスタム ユーザー体験がない場合は、既存のテンプレート ユーザー体験の複製を作成します。それ以外の場合は、次の手順に進みます。

  1. スターター パックから TrustFrameworkBase.xml ファイルを開きます。
  2. を含む Id="SignUpOrSignIn" 要素の内容全体を検索してコピーします。
  3. TrustFrameworkExtensions.xml を開き、UserJourneys 要素を見つけます。 要素が存在しない場合は、要素を追加します。
  4. UserJourneys 要素の子としてコピーした UserJourney 要素の内容全体を貼り付けます。
  5. ユーザージャーニーの ID を変更します。 たとえば、Id="CustomSignUpSignIn" のようにします。

ID プロバイダーをユーザー体験に追加する

これでユーザー体験が作成されたので、新しい ID プロバイダーをユーザー体験に追加します。 最初にサインイン ボタンを追加し、そのボタンをアクションにリンクします。 あなたが以前に作成した技術プロファイルがこのアクションです。

  1. ユーザー体験に Type="CombinedSignInAndSignUp"または Type="ClaimsProviderSelection" を含むオーケストレーション ステップ要素を見つけます。 通常は、オーケストレーションの最初の手順です。 ClaimsProviderSelections 要素には、ユーザーがサインインできる ID プロバイダーの一覧が含まれています。 要素の順序は、ユーザーに表示されるサインイン ボタンの順序を制御します。 ClaimsProviderSelection XML 要素を追加します。 TargetClaimsExchangeId の値をフレンドリ名に設定します。

  2. 次のオーケストレーション手順で、 ClaimsExchange 要素を追加します。 Id をターゲット要求交換 ID の値に設定します。TechnicalProfileReferenceId の値を、先ほど作成した技術プロファイルの ID に更新します。

次の XML は、ID プロバイダーを使用したユーザー体験の最初の 2 つのオーケストレーション手順を示しています。

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

依存先パーティーポリシーを構成する

証明書利用者ポリシー ( SignUpSignIn.xmlなど) は、Azure AD B2C が実行するユーザー体験を指定します。 依存するパーティー内で DefaultUserJourney 要素を検索します。 追加した ID プロバイダーのユーザージャーニー ID と一致するように ReferenceId を更新します。

次の例では、 CustomSignUpSignIn ユーザー体験の ReferenceIdCustomSignUpSignInに設定されています。

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

カスタム ポリシーをアップロードする

  1. Azure portal にサインインします。
  2. ポータル のツール バーで [ディレクトリ + サブスクリプション ] アイコンを選択し、Azure AD B2C テナントが含まれているディレクトリを選択します。
  3. Azure portal で、 [Azure AD B2C] を検索して選択します。
  4. [ ポリシー] で、[ Identity Experience Framework] を選択します。
  5. [ カスタム ポリシーのアップロード] を選択し、変更した 2 つのポリシー ファイルを次の順序でアップロードします。拡張機能ポリシー ( TrustFrameworkExtensions.xmlなど)、証明書利用者ポリシー ( SignUpSignIn.xmlなど)。

カスタム ポリシーをテストする

  1. 関連パーティポリシー(例: B2C_1A_signup_signin)を選択してください。
  2. [ アプリケーション] で、 以前に登録した Web アプリケーションを選択します。 応答 URLhttps://jwt.msが表示されます。
  3. [ 今すぐ実行 ] ボタンを選択します。
  4. サインアップまたはサインイン ページで、Weibo アカウントでサインインする Weibo を選択します。

サインイン プロセスが成功すると、ブラウザーは https://jwt.ms にリダイレクトされ、Azure AD B2C によって返されるトークンの内容が表示されます。