次の方法で共有


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

重要

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

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

Azure Active Directory B2C で、カスタム ポリシーは、主に、複雑なシナリオに取り組む用途向けに設計されています。 ほとんどのシナリオで、組み込みユーザー フローを使用することをお勧めします。 まだ行っていない場合は、Active Directory B2C でのカスタム ポリシーの概要に関する記事で、カスタム ポリシー スターター パックの詳細を確認してください。

[前提条件]

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

Azure AD B2C で X アカウントを持つユーザーのサインインを有効にするには、X アプリケーションを作成する必要があります。 まだ X アカウントを持っていない場合は、 https://x.com/signupでサインアップできます。 開発者アカウントを申請する必要もあります。 詳細については、「 アクセスの申請」を参照してください。

  1. X アカウントの資格情報を使用して X 開発者ポータル にサインインします。
  2. [ + プロジェクトの作成 ] ボタンを選択します。
  3. [ プロジェクト名 ] タブで、プロジェクトの優先名を入力し、[ 次へ ] ボタンを選択します。
  4. [ ユース ケース ] タブで、任意のユース ケースを選択し、[ 次へ] を選択します。
  5. [ プロジェクトの説明 ] タブで、プロジェクトの説明を入力し、[ 次へ ] ボタンを選択します。
  6. [ アプリ名 ] タブで、 azureadb2c などのアプリの名前を入力し、[ 次へ ] ボタンを選択します。
  7. [ キーとトークン ] タブで、 API キーと API キー シークレットの値をコピー します。 これらは後で構成に使用します。
  8. [ アプリ設定] を選択してアプリ設定を開きます。
  9. ページの下部にある [ ユーザー認証設定] で、[ 設定] を選択します。
  10. [ アプリの種類] で、 Web アプリなどの適切なアプリの種類を選択します。
  11. [ アプリ情報] の下:
    1. [コールバック URI/リダイレクト URL] にhttps://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/your-policy-id/oauth1/authresp」と入力します。 カスタム ドメインを使用する場合は、「https://your-domain-name/your-tenant-name.onmicrosoft.com/your-user-flow-Id/oauth1/authresp」と入力します。 テナント名とユーザー フロー ID を入力するときは、Azure AD B2C で大文字で定義されている場合でも、すべて小文字を使用します。 次のように置き換えます。
      • your-tenant-name を自分のテナント名に置き換えます。
      • your-domain-name をご自分のカスタム ドメインに置き換えます。
      • your-policy-id ユーザー フローの識別子を指定します。 たとえば、b2c_1a_signup_signin_x のようにします。
    2. [Web サイトの URL] に「https://your-tenant.b2clogin.com」と入力します。 your-tenantをテナントの名前に置き換えます。 たとえば、https://contosob2c.b2clogin.com のようにします。 カスタム ドメインを使用する場合は、「https://your-domain-name」と入力します。
    3. (省略可能) サービス利用規約の URL を入力します (例: http://www.contoso.com/tos)。 ポリシーの URL は、アプリケーションの利用規約を提供するために維持されるページです。
    4. (省略可能) プライバシー ポリシーの URL ( http://www.contoso.com/privacyなど) を入力します。 ポリシーの URL は、アプリケーションのプライバシーに関する情報を提供するために維持されるページです。
  12. 保存 を選択します。
  1. X アカウントの資格情報を使用して X 開発者ポータル にサインインします。
  2. [ + プロジェクトの作成 ] ボタンを選択します。
  3. [ プロジェクト名 ] タブで、プロジェクトの優先名を入力し、[ 次へ ] ボタンを選択します。
  4. [ ユース ケース ] タブで、任意のユース ケースを選択し、[ 次へ] を選択します。
  5. [ プロジェクトの説明 ] タブで、プロジェクトの説明を入力し、[ 次へ ] ボタンを選択します。
  6. [ アプリ名 ] タブで、 azureadb2c などのアプリの名前を入力し、[ 次へ ] ボタンを選択します。
  7. [ キーとトークン ] タブで、後で 使用するために API キーAPI キー シークレット の値をコピーします。 両方を使用して、Azure AD B2C テナントの ID プロバイダーとして X を構成します。
  8. [ アプリ設定] を選択してアプリ設定を開きます。
  9. ページの下部にある [ ユーザー認証設定] で、[ 設定] を選択します。
  10. [ アプリの種類] で、 Web アプリなどの適切なアプリの種類を選択します。
  11. [ アプリ情報] の下:
    1. [コールバック URI/リダイレクト URL] にhttps://your-tenant.b2clogin.com/your-tenant-name.onmicrosoft.com/your-user-flow-name/oauth1/authresp」と入力します。 カスタム ドメインを使用する場合は、「https://your-domain-name/your-tenant-name.onmicrosoft.com/your-user-flow-Id/oauth1/authresp」と入力します。 テナント名とユーザー フロー ID を入力するときは、Azure AD B2C で大文字で定義されている場合でも、すべて小文字を使用します。 次のように置き換えます。
      • your-tenant-name を自分のテナント名に置き換えます。
      • your-domain-name をご自分のカスタム ドメインに置き換えます。
      • your-user-flow-name ユーザー フローの識別子を指定します。 たとえば、b2c_1_signup_signin_x のようにします。
    2. [Web サイトの URL] に「https://your-tenant.b2clogin.com」と入力します。 your-tenantをテナントの名前に置き換えます。 たとえば、https://contosob2c.b2clogin.com のようにします。 カスタム ドメインを使用する場合は、「https://your-domain-name」と入力します。
    3. サービス利用規約の URL を入力します (例: http://www.contoso.com/tos)。 ポリシーの URL は、アプリケーションの利用規約を提供するために維持されるページです。
    4. プライバシー ポリシーの URL (http://www.contoso.com/privacyなど) を入力します。 ポリシーの URL は、アプリケーションのプライバシーに関する情報を提供するために維持されるページです。
  12. 保存 を選択します。

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

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

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

この時点で、X ID プロバイダーは設定されていますが、どのサインイン ページでもまだ使用できません。 X ID プロバイダーをユーザー フローに追加するには:

  1. Azure AD B2C テナントで、[ ユーザー フロー] を選択します。
  2. X ID プロバイダーを追加するユーザー フローを選択します。
  3. [ソーシャル ID プロバイダー] で、Twitter を選択します
  4. 保存 を選択します。

ユーザー フローをテストする

  1. ポリシーをテストするには、[ ユーザー フローの実行] を選択します。
  2. [アプリケーション] で、以前に登録した testapp1 という名前の Web アプリケーションを選択します。 応答 URLhttps://jwt.msが表示されます。
  3. [ ユーザー フローの実行 ] ボタンを選択します。
  4. サインアップまたはサインイン ページで、 Twitter を選択して X アカウントでサインインします。

ポリシー キーを作成する

以前に X アプリ用に記録した秘密鍵を Azure AD B2C テナントに格納する必要があります。

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

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

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

X アカウントをクレーム プロバイダーとして定義するには、ポリシーの拡張ファイルの ClaimsProviders 要素に追加します。 この記事の前提条件でダウンロードしたカスタム ポリシー スターター パックを参照してください。

  1. TrustFrameworkExtensions.xmlを開きます。

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

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

    <ClaimsProvider>
      <Domain>x.com</Domain>
      <DisplayName>X</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Twitter-OAuth1">
          <DisplayName>X</DisplayName>
          <Protocol Name="OAuth1" />
          <Metadata>
            <Item Key="ProviderName">Twitter</Item>
            <Item Key="authorization_endpoint">https://api.twitter.com/oauth/authenticate</Item>
            <Item Key="access_token_endpoint">https://api.twitter.com/oauth/access_token</Item>
            <Item Key="request_token_endpoint">https://api.twitter.com/oauth/request_token</Item>
            <Item Key="ClaimsEndpoint">https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true</Item>
            <Item Key="ClaimsResponseFormat">json</Item>
            <Item Key="client_id">Your X application API key</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_TwitterSecret" />
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="user_id" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="screen_name" />
            <OutputClaim ClaimTypeReferenceId="email" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="twitter.com" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" />
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. client_idの値を、前に記録した API キーに置き換えます。

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

ユーザー体験を追加する

この時点で、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="TwitterExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="TwitterExchange" TechnicalProfileReferenceId="Twitter-OAuth1" />
  </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. サインアップまたはサインイン ページで、 Twitter を選択して X アカウントでサインインします。

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

ヒント

この ID プロバイダーのテスト中に unauthorized エラーが発生した場合は、正しい X API キーと API キー シークレットを使用していることを確認するか、 昇格された アクセスを申請してみてください。 また、機能を利用できる前にアプリを登録した場合は、 X のプロジェクト構造を確認することをお勧めします。