重要
2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください。
開始する前にこのページの上部にある ポリシーの種類 セレクターを使用して、設定するポリシーの種類を選択します。 Azure Active Directory B2C には、ユーザーがアプリケーションを操作する方法を定義する 2 つの方法 (定義済みのユーザー フローを使用する、または完全に構成可能なカスタム ポリシーを使用する) があります。 この記事で必要な手順は、方法ごとに異なります。
Azure Active Directory B2C (Azure AD B2C) では、アカウントの作成時にエンド ユーザーが指定するパスワードの複雑さの要件の変更がサポートされています。 既定では、Azure AD B2C は 強力な パスワードを使用します。 Azure AD B2C では、お客様が使用できるパスワードの複雑さを制御するための構成オプションもサポートされています。
[前提条件]
- ユーザーが サインアップしてアプリケーションにサインインできるように、ユーザー フローを作成します。
- Web アプリケーションを登録します。
- 「Active Directory B2C でのカスタム ポリシーの概要」の手順を完了してください。 このチュートリアルでは、Azure AD B2C テナント構成を使用するようにカスタム ポリシー ファイルを更新する方法について説明します。
- Web アプリケーションを登録します。
パスワードルールの適用
サインアップまたはパスワードのリセット時に、エンド ユーザーは複雑さのルールを満たすパスワードを入力する必要があります。 パスワードの複雑さのルールは、ユーザー フローごとに適用されます。 1 つのユーザー フローではサインアップ時に 4 桁の PIN が必要であり、別のユーザー フローではサインアップ時に 8 文字の文字列が必要な場合があります。 たとえば、大人用と子供用でパスワードの複雑さが異なるユーザー フローを使用できます。
パスワードの複雑さは、サインイン時に強制されることはありません。 ユーザーは、現在の複雑さの要件を満たしていないため、サインイン中にパスワードの変更を求められることはありません。
パスワードの複雑さは、次の種類のユーザー フローで構成できます。
- ユーザー登録またはログインのユーザーフロー
- パスワード リセットのユーザー フロー
カスタムポリシーを使用している場合は、 カスタムポリシーでパスワードの複雑さを設定できます。
パスワードの複雑さを構成する
- Azure portal にサインインします。
- 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
- Azure portal で、 [Azure AD B2C] を検索して選択します。
- ユーザーフローを選択します。
- ユーザー フローを選択し、 プロパティ を選択します。
- [パスワードの複雑さ] で、このユーザー フローのパスワードの複雑さを [シンプル]、[強力]、または [カスタム] に変更します。
比較チャート
複雑さ | 説明 |
---|---|
簡単 | 8 文字から 64 文字以上のパスワード。 |
強 | 8 文字から 64 文字以上のパスワード。 小文字、大文字、数字、記号の 4 つのうち 3 つが必要です。 |
習慣 | このオプションでは、パスワードの複雑さのルールを最も詳細に制御できます。 カスタムの長さを設定できます。 また、番号のみのパスワード(PIN)を受け入れることもできます。 |
カスタムオプション
文字セット
数字のみ(ピン)または完全な文字セットを受け入れることができます。
- 数字は 、パスワードの入力時に数字(0〜9)のみを許可します。
- すべて で、任意の文字、数字、または記号を使用できます。
長さ
パスワードの長さ要件を制御できます。
- 最小長 は 4 以上である必要があります。
- 最大長 は最小長以上で、最大で 256 文字です。
文字クラス
パスワードで使用されるさまざまな文字タイプを制御できます。
2 of 4: 小文字、大文字、数字 (0-9)、記号 パスワードに少なくとも 2 つの文字タイプが含まれていることを確認します。 たとえば、数字と小文字などです。
3 of 4: 小文字、大文字、数字 (0-9)、記号 パスワードに少なくとも 3 つの文字タイプが含まれていることを確認します。 たとえば、数字、小文字、大文字などです。
4/4: 小文字、大文字、数字 (0 から 9)、記号 は、パスワードに 4 つの文字の種類がすべて含まれていることを確認します。
注
4 の 4 を要求すると、エンドユーザーの不満が生じる可能性があります。 いくつかの研究では、この要件はパスワードエントロピーを改善しないことが示されています。 NIST パスワード ガイドラインを参照してください。
パスワード条件の検証
パスワードの複雑さを設定するには、newPassword
型と reenterPassword
クレーム型 を 条件検証の参照としてオーバーライドします。 PredicateValidations 要素は、一連の述語をグループ化して、要求の種類に適用できるユーザー入力検証を形成します。 ポリシーの拡張ファイルを開きます。 たとえば、SocialAndLocalAccounts/
TrustFrameworkExtensions.xml
のようにします。
BuildingBlocks 要素を検索します。 要素が存在しない場合は、追加します。
ClaimsSchema 要素を見つけます。 要素が存在しない場合は、追加します。
newPassword
とreenterPassword
の要求を ClaimsSchema 要素に追加します。<!-- <BuildingBlocks> <ClaimsSchema> --> <ClaimType Id="newPassword"> <PredicateValidationReference Id="CustomPassword" /> </ClaimType> <ClaimType Id="reenterPassword"> <PredicateValidationReference Id="CustomPassword" /> </ClaimType> <!-- </ClaimsSchema> </BuildingBlocks>-->
述語 は、要求の種類の値を確認するための基本的な検証を定義し、true または false を返します。 検証は、指定されたメソッド要素と、メソッドに関連する一連のパラメーターを使用して行われます。 次の述語を BuildingBlocks 要素に追加します。これは、
</ClaimsSchema>
要素が閉じた直後です。<!-- <BuildingBlocks>--> <Predicates> <Predicate Id="LengthRange" Method="IsLengthRange"> <UserHelpText>The password must be between 6 and 64 characters.</UserHelpText> <Parameters> <Parameter Id="Minimum">6</Parameter> <Parameter Id="Maximum">64</Parameter> </Parameters> </Predicate> <Predicate Id="Lowercase" Method="IncludesCharacters"> <UserHelpText>a lowercase letter</UserHelpText> <Parameters> <Parameter Id="CharacterSet">a-z</Parameter> </Parameters> </Predicate> <Predicate Id="Uppercase" Method="IncludesCharacters"> <UserHelpText>an uppercase letter</UserHelpText> <Parameters> <Parameter Id="CharacterSet">A-Z</Parameter> </Parameters> </Predicate> <Predicate Id="Number" Method="IncludesCharacters"> <UserHelpText>a digit</UserHelpText> <Parameters> <Parameter Id="CharacterSet">0-9</Parameter> </Parameters> </Predicate> <Predicate Id="Symbol" Method="IncludesCharacters"> <UserHelpText>a symbol</UserHelpText> <Parameters> <Parameter Id="CharacterSet">@#$%^&*\-_+=[]{}|\\:',.?/`~"();!</Parameter> </Parameters> </Predicate> </Predicates> <!-- </BuildingBlocks>-->
次の述語検証を BuildingBlocks 要素に追加します。これは、
</Predicates>
要素が閉じられた直後です。<!-- <BuildingBlocks>--> <PredicateValidations> <PredicateValidation Id="CustomPassword"> <PredicateGroups> <PredicateGroup Id="LengthGroup"> <PredicateReferences MatchAtLeast="1"> <PredicateReference Id="LengthRange" /> </PredicateReferences> </PredicateGroup> <PredicateGroup Id="CharacterClasses"> <UserHelpText>The password must have at least 3 of the following:</UserHelpText> <PredicateReferences MatchAtLeast="3"> <PredicateReference Id="Lowercase" /> <PredicateReference Id="Uppercase" /> <PredicateReference Id="Number" /> <PredicateReference Id="Symbol" /> </PredicateReferences> </PredicateGroup> </PredicateGroups> </PredicateValidation> </PredicateValidations> <!-- </BuildingBlocks>-->
強力なパスワードを無効にする
次の技術プロファイルは、Microsoft Entra ID に対するデータの読み取りと書き込みを行う Active Directory 技術プロファイルです。 拡張ファイル内のこれらの技術プロファイルをオーバーライドします。
PersistedClaims
を使用して、強力なパスワードポリシーを無効にします。
ClaimsProviders 要素を検索します。 次のクレームプロバイダーを以下のように追加してください。
<!--
<ClaimsProviders>-->
<ClaimsProvider>
<DisplayName>Azure Active Directory</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="AAD-UserWriteUsingLogonEmail">
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration, DisableStrongPassword"/>
</PersistedClaims>
</TechnicalProfile>
<TechnicalProfile Id="AAD-UserWritePasswordUsingObjectId">
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration, DisableStrongPassword"/>
</PersistedClaims>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<!--
</ClaimsProviders>-->
ユーザー名ベースのサインイン ポリシーを使用する場合は、AAD-UserWriteUsingLogonEmail
ポリシーを使用して、AAD-UserWritePasswordUsingObjectId
、LocalAccountWritePasswordUsingObjectId
、 の技術プロファイルを更新します。
ポリシー・ファイルを保存します。
ポリシーのテスト
ファイルをアップロードする
- Azure portal にサインインします。
- 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
- Azure portal の左上隅にある [すべてのサービス] を選択してから、[Azure AD B2C] を検索して選択します。
- [Identity Experience Framework] を選択します。
- [カスタムポリシー] ページで、[ ポリシーのアップロード] を選択します。
- [ポリシーが存在する場合は上書きする] を選択し、TrustFrameworkExtensions.xml ファイルを検索して選択します。
- [アップロード] を選択します。
ポリシーを実行する
- サインアップまたはサインイン ポリシー ( B2C_1A_signup_signin など) を開きます。
-
[アプリケーション] で、以前に登録したアプリケーションを選択します。 トークンを表示するには、 応答 URL に
https://jwt.ms
が表示されます。 - [今すぐ実行] を選択します。
- [ 今すぐサインアップ] を選択し、メール アドレスを入力して、新しいパスワードを入力します。 パスワードの制限に関するガイダンスが示されています。 ユーザー情報の入力を完了し、 作成 を選択します。 返されたトークンの内容が表示されます。
関連コンテンツ
- Azure Active Directory B2C でパスワード変更を構成する方法について説明します。
- Predicates 要素と PredicateValidations 要素の詳細については、IEF リファレンスを参照してください。