Microsoft Entra ID のパスワード ポリシーとアカウント制限

Microsoft Entra ID には、パスワードの複雑さ、長さ、有効期間などの設定を定義するパスワード ポリシーがあります。 また、ユーザー名に使用できる文字と長さを定義するポリシーもあります。

セルフサービス パスワード リセット (SSPR) を使用して Microsoft Entra ID 内のパスワードを変更またはリセットする場合は、パスワード ポリシーが確認されます。 パスワードがポリシーの要件を満たしていない場合、ユーザーは再試行するように求められます。 Azure管理者には、通常のユーザー アカウントとは異なる SSPR の使用に関するいくつかの制限があり、Microsoft Entra IDの試用版と無料版には軽微な例外があります。

この記事では、ユーザー アカウントに関連付けられたパスワード ポリシー設定と複雑さの要件について説明します。 また、PowerShell を使用してパスワードの有効期限設定を確認または設定する方法についても説明します。

ユーザー名ポリシー

Microsoft Entra ID にサインインする必要があるユーザー アカウントはいずれも、一意のユーザー プリンシパル名 (UPN) 属性値がそのアカウントに関連付けられている必要があります。 Microsoft Entra Connect を使用して Microsoft Entra ID に同期されたオンプレミスの Active Directory ドメイン サービス環境を持つハイブリッド環境では、既定で Microsoft Entra ID UPN はオンプレミスの UPN に設定されます。

次の表は、Microsoft Entra ID に同期されているオンプレミスの Microsoft Entra ID アカウントと、Microsoft Entra ID で直接作成されたクラウド専用のユーザー アカウントの両方に適用されるユーザー名ポリシーの概要を示しています。

プロパティ UserPrincipalName の要件
使用できる文字 A-Z
a - z
0-9
'。 - _ ! #^~
使用できない文字 ユーザー名とドメインの間以外にある '@' 文字。
ピリオド文字 '.' を '@' 記号の直前に含めることはできません
長さの制限 全体の長さは 113 文字以内にする必要があります
'@' 記号の前に最大 64 文字まで可能
'@' 記号の後に最大 48 文字まで可能

Microsoft Entra のパスワード ポリシー

パスワード ポリシーは、Microsoft Entra ID で直接作成および管理されるすべてのユーザーおよび管理者のアカウントに適用されます。 これらのパスワード ポリシー設定の一部は変更できませんが、Microsoft Entra のパスワード保護用のカスタム禁止パスワードまたはアカウント ロックアウト パラメーターを構成することができます。

既定では、間違ったパスワードを使用して 10 回サインインに失敗すると、アカウントはロックアウトされます。 ユーザーは 1 分間ロックされます。 さらに不正なサインインを試行すると、ロックアウト期間が長くなります。 スマート ロックアウトでは、直近 3 つの無効なパスワード ハッシュを追跡して、同じパスワードに対するロックアウト カウンターの増分を回避します。 同じ無効なパスワードが複数回入力されても、ロックアウトされることはありません。スマート ロックアウトのしきい値と期間を定義できます。

次の Microsoft Entra パスワード ポリシー オプションが定義されています。 特に明記されていない場合、これらの設定を変更することはできません。

プロパティ 要件
使用できる文字 A-Z
a - z
0-9
@ # $ % ^ & * - _ ! + = [ ] { } | \ : ' , . ? / ` ~ " ( ) ; <>
空白
使用できない文字 Unicode 文字
パスワードの制限 8 文字以上 256 文字以下。
次の 4 種類の文字のうち 3 つが必要です。
- 小文字
- 大文字
- 数値 (0 から 9)
- 記号 (上述のパスワードの制限を参照してください)
パスワードの有効期間 (パスワードの最大有効期間) 既定値: 有効期限なし。 テナントが 2021 より前に作成された場合、既定では 90 日間の有効期限の値が設定されます。 現在のポリシーは Get-MgDomain を使用して確認できます。
この値は、PowerShell 用の Microsoft Graph PowerShell モジュールの Update-MgDomain コマンドレットを使って構成できます。
パスワードの有効期限 (パスワードを無期限にします) 既定値: false (パスワードの有効期限が指定されていることを示します)。
各ユーザー アカウントの値を構成するには、Update-MgUser コマンドレットを使用します。
パスワード変更履歴 ユーザーがパスワードを変更する場合、前回のパスワードを再度使用することはできません
パスワード リセット履歴 ユーザーが忘れたパスワードをリセットする場合、前回のパスワードを再度使用することが ''できます''。

Von Bedeutung

パスワード変更履歴は、パスワード ライトバックに適用されます。 クラウド内のユーザーの場合のみ、Microsoft Entra IDのパスワードのリセットにはユーザーの古いパスワードがないため、パスワードの再利用を確認したり防止したりすることはできません。

EnforceCloudPasswordPolicyForPasswordSyncedUsers を有効にすると、Microsoft Entra のパスワード ポリシーは、Microsoft Entra Connect を使用してオンプレミスから同期されたユーザー アカウントに対して適用されます。 さらに、ユーザーがオンプレミスでパスワードを変更して Unicode 文字を含めると、オンプレミスではパスワードの変更が成功しても、Microsoft Entra ID では成功しない可能性があります。 Microsoft Entra Connect でパスワード ハッシュ同期が有効になっている場合でも、ユーザーはクラウド リソースのアクセス トークンを受け取ることができます。 ただし、テナントがユーザー リスクベースのパスワード変更を有効にした場合、パスワードの変更は高リスクとして報告されます。

ユーザーは、パスワードをもう一度変更するように求められます。 ただし、変更に Unicode 文字が含まれている場合は、スマート ロックアウトも有効になっていると、ロックアウトされる可能性があります。

リスクベースのパスワード リセット ポリシーの制限事項

EnforceCloudPasswordPolicyForPasswordSyncedUsers を有効にすると、リスクが高い場合にクラウド パスワードを変更する必要があります。 ユーザーは、Microsoft Entra ID にサインインするときにパスワードを変更するように求められます。 新しいパスワードは、クラウドとオンプレミスの両方のパスワード ポリシーに準拠している必要があります。

パスワードの変更がオンプレミスの要件を満たしているがクラウドの要件を満たしていない場合、パスワード ハッシュ同期が有効になっていればパスワードの変更は成功します。 たとえば、新しいパスワードに Unicode 文字が含まれている場合、パスワードの変更はオンプレミスでは更新できますが、クラウドでは更新できません。

パスワードがクラウド パスワード要件に準拠していない場合、クラウドで更新されず、アカウントのリスクは減少しません。 ユーザーは引き続きクラウド リソースのアクセス トークンを受け取りますが、次回クラウド リソースにアクセスするときに再度パスワードを変更するように求められます。 選択したパスワードがクラウドの要件を満たしていないことを示すエラーや通知はユーザーには表示されません。

管理者リセット ポリシーの相違点

既定で、管理者アカウントはセルフサービスのパスワード リセットが有効になっており、強力な既定の 2 ゲート パスワード リセット ポリシーが適用されます。 このポリシーは、ユーザーに対して定義したポリシーとは異なる場合があり、このポリシーを変更することはできません。 パスワードのリセット機能は、必ず Azure 管理者ロールが割り当てられていないユーザーとしてテストする必要があります。

2 ゲート ポリシーでは、電子メール アドレス、認証アプリ、電話番号などの 2 つの認証データが必要となり、セキュリティの質問は禁止されます。 Office とモバイルの音声通話は、Microsoft Entra ID の試用版または無料版でも禁止されています。

SSPR 管理者ポリシーは、認証方法ポリシーに依存しません。 たとえば、認証方法ポリシーでサード パーティ製ソフトウェア トークンを無効にした場合でも、管理者アカウントはサード パーティのソフトウェア トークン アプリケーションを登録して使用できますが、SSPR の場合のみ使用できます。

2 ゲート ポリシーは次のような状況で適用されます。

  • 次の管理者ロールが影響を受ける。

    ロール A ~ D ロール D ~ N ロール O ~ Y
    アドホック ライセンス管理者 Dynamics 365 管理者 Office アプリ管理者
    アプリケーション管理者 Dynamics 365 Business Central 管理者 組織ブランド管理者
    アプリケーション プロキシ サービス管理者 Edge 管理者 パートナー レベル 1 のサポート
    攻撃のシミュレーションの管理者 メールで確認済みのユーザー作成者 パートナー レベル 2 のサポート
    属性割り当て管理者 Exchange 管理者 パスワード管理者
    属性定義管理者 Exchange 受信者管理者 アクセス許可管理管理者
    属性ログ管理者 外部IDユーザーフロー管理者 Power BI サービス管理者
    認証管理者 外部 IDユーザー フロー属性管理者 Power Platform 管理者
    認証機能拡張管理者 外部 ID プロバイダー管理者 プリンター管理者
    認証ポリシー管理者 グローバル管理者 特権認証管理者
    Azure DevOps 管理者 グローバルセキュリティで保護されたアクセス管理者 特権ロール管理者
    Azure Information Protection 管理者 グループ管理者 検索管理者
    B2C IEF キーセット管理者 ヘルプデスク管理者 セキュリティ管理者
    B2C IEF ポリシー管理者 ハイブリッド ID の管理者 サービス サポート管理者
    課金管理者 アイデンティティガバナンス管理者 SharePoint 管理者
    Cloud App Security 管理者 Insights 管理者 Skype for Business 管理者
    クラウド デバイス管理者 Intune 管理者 Teams 管理者
    コンプライアンス管理者 ナレッジ管理者 Teams 通信管理者
    コンプライアンス データ管理者 ライセンス管理者 Teams デバイス管理者
    条件付きアクセス管理者 ライフサイクル ワークフロー管理者 ユーザー管理者
    カスタマーロックボックス アクセス承認者 メールボックス管理者 仮想訪問管理者
    デスクトップアナリティクス管理者 Microsoft Entra 参加済みデバイスのローカル管理者 Viva Goals 管理者
    デバイス管理者 Microsoft ハードウェア保証管理者 ビバパルス管理者
    ディレクトリ同期アカウント Microsoft 365 移行管理者 Windows365 管理者
    ディレクトリ ライター Modern Commerce 管理者 ウィンドウズ アップデート デプロイ管理者
    ドメイン名管理者 ネットワーク管理者 Yammer 管理者
  • 評価版サブスクリプションで 30 日間が経過した

    -または-

  • Microsoft Entra テナント用に、contoso.com のようなカスタム ドメインが構成されている

    -または-

  • Microsoft Entra Connect がオンプレミスのディレクトリからの ID を同期している

テナント承認ポリシーの AllowedToUseSspr プロパティの値を false に設定することで、管理者アカウントに対する SSPR の使用を無効にすることができます。 管理者アカウントの SSPR を有効または無効にするポリシーの変更では、反映に最大で 60 分かかることがあります。

Von Bedeutung

管理者のパスワード リセット ポリシーが無効になっている場合、ユーザーのパスワード リセット ポリシーのスコープ内にある場合でも、管理者は SSPR を使用してパスワードをリセットできません。 SSPR 登録が有効になっていて、管理者がユーザーのパスワード リセット ポリシーに含まれている場合、登録を求められますが、メソッドを登録できないことを示すメッセージが表示されます。 このエクスペリエンスを回避するには、管理者のパスワード リセット ポリシーが無効になっている場合に、ユーザーのパスワード リセット ポリシーから管理者を明示的に除外します。

Update-MgPolicyAuthorizationPolicy

Connect-MgGraph -Scopes Policy.ReadWrite.Authorization
Update-MgPolicyAuthorizationPolicy -AllowedToUseSspr:$false

例外

1 ゲート ポリシーには、1 つの認証データが必要です。電子メール アドレスまたは電話番号などです。 1 ゲート ポリシーは次のような状況で適用されます。

  • 試用版サブスクリプションの最初の 30 日以内である

    -または-

  • カスタム ドメインが構成されておらず (テナントで既定の *.onmicrosoft.com を使用している。これは運用環境での使用はお勧めしません)、Microsoft Entra Connect で ID を同期していない。

パスワードの有効期限のポリシー

ユーザー管理者は、Microsoft Graph を使用して、ユーザーのパスワードを有効期限が切れないように設定できます。

また、PowerShell コマンドレットを使用すると、期限が切れない構成を削除したり、期限が切れないように設定されているユーザー パスワードを確認したりすることもできます。

このガイダンスは、Intune や Microsoft 365 などの他のプロバイダーに適用され、これらは ID およびディレクトリ サービスについては Microsoft Entra ID にも依存します。 パスワード有効期限が、ポリシーの変更できる唯一の部分です。

既定では、期限切れにならないように設定できるのは、Microsoft Entra Connect による同期を行っていないユーザー アカウントのパスワードのみです。 ディレクトリ同期の詳細については、「AD と Microsoft Entra ID を接続する」を参照してください。

PowerShell を使用したパスワード ポリシーの設定または確認

操作を開始するには、Microsoft Graph PowerShell モジュールをダウンロードしてインストールし、それをお使いの Microsoft Entra テナントに接続します。

モジュールがインストールされたら、次の手順を使用して、各タスクを必要に応じて完了します。

パスワードの有効期限ポリシーを確認する

  1. PowerShell プロンプトを開き、少なくともユーザー管理者として Microsoft Entra テナントに接続します。

  2. 個々のユーザーまたはすべてのユーザーに対して、次のいずれかのコマンドを実行します。

    • 1 人のユーザーのパスワードが無期限に設定されているかどうかを確認するには、次のコマンドレットを実行します。 <user ID> を、確認したいユーザーのユーザー ID ( など) に置き換えます。

      Get-MgUser -UserId <user ID> -Property UserPrincipalName, PasswordPolicies | Select-Object @{N="PasswordNeverExpires";E={$_.PasswordPolicies -contains "DisablePasswordExpiration"}}
      
    • すべてのユーザーについてパスワードを無期限にする設定を表示するには、次のコマンドレットを実行します。

      Get-MgUser -All -Property UserPrincipalName, PasswordPolicies | Select-Object UserPrincipalName, @{N="PasswordNeverExpires";E={$_.PasswordPolicies -contains "DisablePasswordExpiration"}}
      

パスワードを期限付きに設定する

  1. PowerShell プロンプトを開き、少なくともユーザー管理者として Microsoft Entra テナントに接続します。

  2. 個々のユーザーまたはすべてのユーザーに対して、次のいずれかのコマンドを実行します。

    • 1 人のユーザーのパスワードを期限付きに設定するには、次のコマンドレットを実行します。 <user ID> を、確認したいユーザーのユーザー ID ( など) に置き換えます。

      Update-MgUser -UserId <user ID> -PasswordPolicies None
      
    • 組織内のすべてのユーザーのパスワードを期限付きに設定するには、次のコマンドを使用します。

      Get-MgUser -All | foreach $_ { Update-MgUser -UserId $_.Id -PasswordPolicies None }
      

パスワードを無期限に設定する

  1. PowerShell プロンプトを開き、少なくともユーザー管理者として Microsoft Entra テナントに接続します。

  2. 個々のユーザーまたはすべてのユーザーに対して、次のいずれかのコマンドを実行します。

    • 1 人のユーザーのパスワードを無期限に設定するには、次のコマンドレットを実行します。 <user ID> を、確認したいユーザーのユーザー ID ( など) に置き換えます。

      Update-MgUser -UserId <user ID> -PasswordPolicies DisablePasswordExpiration
      
    • 組織内のすべてのユーザーのパスワードを無期限に設定するには、次のコマンドレットを実行します。

      Get-MgUser -All | foreach $_ { Update-MgUser -UserId $_.Id -PasswordPolicies DisablePasswordExpiration }
      

    警告

    -PasswordPolicies DisablePasswordExpiration を設定したパスワードは、引き続き LastPasswordChangeDateTime 属性に基づいて使用時間が計測されます。 LastPasswordChangeDateTime 属性に基づいて、有効期限を -PasswordPolicies None に変更すると、90 日より古い LastPasswordChangeDateTime を持つすべてのパスワードは、ユーザーが次回サインインで変更する必要があります。 この変更は多数のユーザーに影響を与える可能性があります。

SSPR の使用を始めるには、「チュートリアル: Microsoft Entra のセルフサービス パスワード リセットを使用して、ユーザーが自分のアカウントのロック解除またはパスワードのリセットを実行できるようにする」を参照してください。

SSPR に問題がある場合は、「 セルフサービス パスワード リセットのトラブルシューティング」を参照してください。