Azure Active Directory B2C でサインイン フローを設定する

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

サインイン フローの概要

サインイン ポリシーによって、ユーザーは以下を実行できます。

  • ユーザーは Azure AD B2C ローカルアカウントでサインインできる
  • ソーシャル アカウントでサインアップまたはサインインする
  • パスワードのリセット
  • ユーザーは Azure AD B2C ローカル アカウントにサインインできません。 アカウントを作成するために、管理者は Azure portal、または MS Graph API を使用できます。

プロファイル編集フロー

[前提条件]

サインイン ユーザー フローを作成する

サインイン ポリシーを追加するには:

  1. Azure portal にサインインします。

  2. ポータルのツール バーで [Directories + Subscriptions](ディレクトリ + サブスクリプション) アイコンを選択します。

  3. [ポータルの設定] | [Directories + subscriptions](ディレクトリ + サブスクリプション) ページの [ディレクトリ名] の一覧で自分の Azure AD B2C ディレクトリを見つけて、 [切り替え] を選択します。

  4. Azure portal で、 [Azure AD B2C] を検索して選択します。

  5. [ポリシー] で、 [ユーザー フロー] を選択し、 [新しいユーザー フロー] を選択します。

  6. [ユーザー フローを作成する] ページで、 [サインイン] ユーザー フローを選択します。

  7. [バージョンの選択][Recommended](推奨) を選択して、 [作成] を選択します。 (ユーザー フローのバージョンに関する詳細情報)。

  8. ユーザー フローの [名前] を入力します。 たとえば、「signupsignin1」と入力します。

  9. [ID プロバイダー] で、少なくとも 1 つの ID プロバイダーを選択します。

    • [ローカル アカウント] で、 [Email signin](メールでのサインイン)[User ID signin](ユーザー ID でのサインイン)[Phone signin](電話でのサインイン)[Phone/Email signin](電話とメールでのサインイン)[User ID/Email signin](ユーザー ID とメールでのサインイン)[None](なし) のいずれかを選択します。 詳細については、こちらを参照してください
    • [ソーシャル ID プロバイダ] で、既に設定してある外部のソーシャル ID プロバイダまたはエンタープライズ ID プロバイダーをどれか選択します。 詳細については、こちらを参照してください
  10. 第 2 の認証方法で ID を証明することをユーザーに要求したい場合は、 [多要素認証] で、認証方法の種類を選択し、さらに、いつ多要素認証 (MFA) を適用するかを選択します。 詳細については、こちらを参照してください

  11. Azure AD B2C テナントに条件付きアクセス ポリシーを設定していて、それをこのユーザー フローで有効にする場合は、 [Conditional access](条件付きアクセス)[Enforce conditional access policies](条件付きアクセス ポリシーを有効にする) チェック ボックスに印を入れます。 ポリシー名を指定する必要はありません。 詳細については、こちらを参照してください

  12. アプリケーションにトークンで返す要求を [アプリケーション要求] で選択します。 すべての値を表示するために [Show more](詳細表示) を選択して値を選び、 [OK] を選択します。

    注意

    Azure AD B2C テナントで使用するためのカスタム属性を作成することもできます。

  13. [作成] をクリックして、ユーザー フローを追加します。 B2C_1 というプレフィックスが自動的に名前に追加されます。

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

  1. 作成したユーザー フローを選択してその概要ページを開き、 [ユーザー フローの実行] を選択します。
  2. [アプリケーション] で、以前に登録した webapp1 という名前の Web アプリケーションを選択します。 [応答 URL]https://jwt.ms と表示されます。
  3. [ユーザー フローを実行します] をクリックします。
  4. サインアップ リンクなしで、(MS Graph API を使用して) 作成したアカウントでサインインできるはずです。 返されたトークンには、選択した要求が含まれています。

SelfAsserted-LocalAccountSignin-Email 技術プロファイルは セルフアサートであり、サインアップまたはサインイン フローの間に呼び出されます。 サインアップ リンクを削除するには、setting.showSignupLink メタデータを false に設定します。 拡張ファイルで SelfAsserted-LocalAccountSignin-Email 技術プロファイルを上書きします。

  1. お使いのポリシーの拡張ファイルを開きます。 たとえば、SocialAndLocalAccounts/ TrustFrameworkExtensions.xml です。

  2. ClaimsProviders 要素を見つけます。 要素が存在しない場合は追加します。

  3. 次のクレーム プロバイダーを ClaimsProviders 要素に追加します。

    <!--
    <ClaimsProviders> -->
      <ClaimsProvider>
        <DisplayName>Local Account</DisplayName>
        <TechnicalProfiles>
          <TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
            <Metadata>
              <Item Key="setting.showSignupLink">false</Item>
            </Metadata>
          </TechnicalProfile>
        </TechnicalProfiles>
      </ClaimsProvider>
    <!--
    </ClaimsProviders> -->
    
  4. <BuildingBlocks> 要素内で、1.2.0 以降のデータ URI を参照するように次の ContentDefinition を追加します。

    <!-- 
    <BuildingBlocks> 
      <ContentDefinitions>-->
        <ContentDefinition Id="api.localaccountsignup">
          <DataUri>urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:1.2.0</DataUri>
        </ContentDefinition>
      <!--
      </ContentDefinitions>
    </BuildingBlocks> -->
    

ポリシーを更新してテストする

  1. Azure portal にサインインします。
  2. ポータルのツールバーにある [ディレクトリ + サブスクリプション] アイコンを選択して、Azure AD テナントを含むディレクトリを使っていることを確認します。
  3. [ポータルの設定] | [Directories + subscriptions](ディレクトリ + サブスクリプション) ページで Azure AD ディレクトリを [ディレクトリ名] リストで見つけ、 [スイッチ] を選択します。
  4. Azure portal の左上隅にある [すべてのサービス] を選択し、 [アプリの登録] を検索して選択します。
  5. [Identity Experience Framework] を選択します。
  6. [カスタム ポリシーのアップロード] を選択し、変更したポリシー ファイルである TrustFrameworkExtensions.xml をアップロードします。
  7. アップロードしたサインイン ポリシーを選択し、 [今すぐ実行] ボタンをクリックします。
  8. サインアップ リンクなしで、(MS Graph API を使用して) 作成したアカウントでサインインできるはずです。

次のステップ