Azure AD Connect 同期を使用したパスワード ハッシュ同期の実装Implement password hash synchronization with Azure AD Connect sync

この記事では、オンプレミスの Active Directory インスタンスから、クラウドベースの Azure Active Directory (Azure AD) インスタンスへの、ユーザー パスワードの同期に必要な情報を提供します。This article provides information that you need to synchronize your user passwords from an on-premises Active Directory instance to a cloud-based Azure Active Directory (Azure AD) instance.

パスワード ハッシュ同期のしくみHow password hash synchronization works

Active Directory ドメイン サービスは、実際のユーザー パスワードをハッシュ値表現の形式で格納します。The Active Directory domain service stores passwords in the form of a hash value representation, of the actual user password. ハッシュ値は、一方向の数学関数 ("ハッシュ アルゴリズム") の結果として求められます。A hash value is a result of a one-way mathematical function (the hashing algorithm). 一方向の関数の結果をパスワードのプレーンテキスト バージョンに戻す方法はありません。There is no method to revert the result of a one-way function to the plain text version of a password.

パスワードを同期するには、Azure AD Connect 同期でオンプレミスの Active Directory インスタンスからパスワード ハッシュを抽出します。To synchronize your password, Azure AD Connect sync extracts your password hash from the on-premises Active Directory instance. Azure Active Directory 認証サービスに同期される前に、パスワード ハッシュには、追加のセキュリティ処理が行われます。Extra security processing is applied to the password hash before it is synchronized to the Azure Active Directory authentication service. パスワードは、ユーザーごとに、時間順に同期されます。Passwords are synchronized on a per-user basis and in chronological order.

パスワード ハッシュ同期処理の実際のデータ フローは、ユーザー データの同期と似ています。The actual data flow of the password hash synchronization process is similar to the synchronization of user data. ただし、パスワードは、他の属性に対する標準のディレクトリ同期ウィンドウよりも頻繁に同期されます。However, passwords are synchronized more frequently than the standard directory synchronization window for other attributes. パスワード ハッシュ同期プロセスは 2 分間隔で実行されます。The password hash synchronization process runs every 2 minutes. このプロセスの頻度を変更することはできません。You cannot modify the frequency of this process. パスワードを同期すると、既存のクラウド パスワードが上書きされます。When you synchronize a password, it overwrites the existing cloud password.

パスワード ハッシュ同期機能を初めて有効にすると、スコープ内のすべてのユーザーの初回同期が実行されます。The first time you enable the password hash synchronization feature, it performs an initial synchronization of the passwords of all in-scope users. 同期するユーザー パスワードのサブセットを明示的に定義することはできません。You cannot explicitly define a subset of user passwords that you want to synchronize. ただし、複数のコネクタが存在する場合、Set-ADSyncAADPasswordSyncConfiguration コマンドレットを使用してパスワード ハッシュ同期を無効にできるコネクタとできないコネクタがあります。However, if there are multiple connectors, it is possible to disable password hash sync for some connectors but not others using the Set-ADSyncAADPasswordSyncConfiguration cmdlet.

オンプレミス パスワードを変更すると、更新されたパスワードは、多くの場合、ほんの数分で同期されます。When you change an on-premises password, the updated password is synchronized, most often in a matter of minutes. 同期の試行に失敗すると、パスワード ハッシュ同期機能により自動的に再試行が行われます。The password hash synchronization feature automatically retries failed synchronization attempts. パスワード同期の試行中にエラーが発生した場合、イベント ビューアーにエラーが記録されます。If an error occurs during an attempt to synchronize a password, an error is logged in your event viewer.

パスワードの同期によって、現在サインイン中の Azure ユーザーが影響を受けることはありません。The synchronization of a password has no impact on the user who is currently signed in. クラウド サービスにサインインしている間、パスワード変更が同期された場合、現在のクラウド サービス セッションがその影響をすぐに受けることはありません。Your current cloud service session is not immediately affected by a synchronized password change that occurs, while you are signed in, to a cloud service. しかしながら、クラウド サービスで認証が再び要求された場合は、新しいパスワードを指定する必要があります。However, when the cloud service requires you to authenticate again, you need to provide your new password.

ユーザーは、企業ネットワークにサインインしているかどうかに関係なく、Azure AD の認証のために、企業の資格情報をもう一度入力する必要があります。A user must enter their corporate credentials a second time to authenticate to Azure AD, regardless of whether they're signed in to their corporate network. ただし、ユーザーがサインイン時に [サインインしたままにする] (KMSI) チェックボックスをオンにすると、このパターンを最小限に抑えることができます。This pattern can be minimized, however, if the user selects the Keep me signed in (KMSI) check box at sign-in. このチェックボックスをオンにすると、180 日間認証をバイパスするセッション Cookie が設定されます。This selection sets a session cookie that bypasses authentication for 180 days. KMSI の動作は、Azure AD 管理者が有効または無効にすることができます。KMSI behavior can be enabled or disabled by the Azure AD administrator. さらに、ユーザーが企業ネットワークに接続される会社のデバイスを使用するときに、自動的にサインインを行うシームレス SSO をオンにすることで、パスワード プロンプトを削減できます。In addition, you can reduce password prompts by turning on Seamless SSO, which automatically signs users in when they are on their corporate devices connected to your corporate network.

注意

パスワード同期は、Active Directory でオブジェクトの種類がユーザーであるオブジェクトのみがサポートされます。Password sync is only supported for the object type user in Active Directory. オブジェクトの種類が INetOrgPerson であるオブジェクトはサポートされません。It is not supported for the iNetOrgPerson object type.

パスワード ハッシュ同期のしくみの詳しい説明Detailed description of how password hash synchronization works

次のセクションでは、Active Directory と Azure AD の間のパスワード ハッシュ同期のしくみを詳しく説明します。The following section describes, in-depth, how password hash synchronization works between Active Directory and Azure AD.

パスワードの詳細なフロー

  1. AD Connect サーバー上のパスワード ハッシュ同期エージェントは、保存されたパスワード ハッシュ (unicodePwd 属性) を 2 分ごとに DC に要求します。Every two minutes, the password hash synchronization agent on the AD Connect server requests stored password hashes (the unicodePwd attribute) from a DC. この要求は、DC 間でデータを同期するために使用される標準の MS-DRSR レプリケーション プロトコルを介して行われます。This request is via the standard MS-DRSR replication protocol used to synchronize data between DCs. サービス アカウントには、パスワード ハッシュを取得するために、Replicate Directory Changes (ディレクトリの変更のレプリケート) と Replicate Directory Changes All AD (ディレクトリの変更をすべての AD にレプリケート) の権限が必要になります (インストール時に既定で付与されます)。The service account must have Replicate Directory Changes and Replicate Directory Changes All AD permissions (granted by default on installation) to obtain the password hashes.
  2. DC は、送信する前に、RPC セッション キーの MD5 ハッシュであるキーと salt を使用して MD4 パスワード ハッシュを暗号化します。Before sending, the DC encrypts the MD4 password hash by using a key that is a MD5 hash of the RPC session key and a salt. 次に、この結果を RPC 経由でパスワード ハッシュ同期エージェントに送信します。It then sends the result to the password hash synchronization agent over RPC. DC は、DC のレプリケーション プロトコルを使用して同期エージェントにも salt を渡すので、エージェントはエンベロープの暗号化を解除できます。The DC also passes the salt to the synchronization agent by using the DC replication protocol, so the agent will be able to decrypt the envelope.
  3. パスワード ハッシュ同期エージェントは、暗号化されたエンベロープを受け取ると、MD5CryptoServiceProvider と salt を使用して、受信したデータの暗号化を解除し元の MD4 形式に戻すためのキーを生成します。After the password hash synchronization agent has the encrypted envelope, it uses MD5CryptoServiceProvider and the salt to generate a key to decrypt the received data back to its original MD4 format. パスワード ハッシュ同期エージェントが、クリア テキストのパスワードにアクセスすることはありません。The password hash synchronization agent never has access to the clear text password. パスワード ハッシュ同期エージェントによる MD5 の使用は、DC とレプリケーション プロトコルとの互換性の維持に限定されており、DC とパスワード ハッシュ同期エージェントの間でオンプレミスでのみ使用されます。The password hash synchronization agent’s use of MD5 is strictly for replication protocol compatibility with the DC, and it is only used on premises between the DC and the password hash synchronization agent.
  4. パスワード ハッシュ同期エージェントは、最初にハッシュを 32 バイトの 16 進数文字列に変換し、次にこの文字列を UTF-16 エンコーディングでバイナリに変換することで、16 バイトのバイナリ パスワード ハッシュを 64 バイトに拡張します。The password hash synchronization agent expands the 16-byte binary password hash to 64 bytes by first converting the hash to a 32-byte hexadecimal string, then converting this string back into binary with UTF-16 encoding.
  5. パスワード ハッシュ同期エージェントは、10 バイト長の salt で構成されるユーザーごとの salt を、64 バイトの バイナリに追加し、 元のハッシュの保護を強化します。The password hash synchronization agent adds a per user salt, consisting of a 10-byte length salt, to the 64-byte binary to further protect the original hash.
  6. それから、パスワード ハッシュ同期エージェントは、MD4 ハッシュとユーザーごとのsalt を結合し、それを PBKDF2 関数に入力します。The password hash synchronization agent then combines the MD4 hash plus the per user salt, and inputs it into the PBKDF2 function. HMAC-SHA256 キー付きハッシュ アルゴリズムの 1000 のイテレーションが使用されます。1000 iterations of the HMAC-SHA256 keyed hashing algorithm are used.
  7. パスワードハッシュ同期エージェントは、返された 32 バイトのハッシュを受け取り、(Azure AD で使用するために) ユーザーごとの salt と SHA256 のイテレーションの数の両方を連結し、SSL 経由で Azure AD Connect から Azure AD にこの文字列を送信します。The password hash synchronization agent takes the resulting 32-byte hash, concatenates both the per user salt and the number of SHA256 iterations to it (for use by Azure AD), then transmits the string from Azure AD Connect to Azure AD over SSL.
  8. ユーザーが Azure AD にサインインしようとして自分のパスワードを入力すると、パスワードは同じ MD4 + salt + PBKDF2 + HMAC - SHA256 のプロセスを通じて処理されます。When a user attempts to sign in to Azure AD and enters their password, the password is run through the same MD4+salt+PBKDF2+HMAC-SHA256 process. 返されたハッシュが Azure AD に格納されたハッシュに一致する場合、ユーザーは正しいパスワードを入力しており、認証も済んでいます。If the resulting hash matches the hash stored in Azure AD, the user has entered the correct password and is authenticated.

注意

元の MD4 ハッシュは Azure AD に送信されません。The original MD4 hash is not transmitted to Azure AD. 代わりに、元の MD4 ハッシュの SHA256 ハッシュが送信されます。Instead, the SHA256 hash of the original MD4 hash is transmitted. その結果、Azure AD に格納されているハッシュを取得しても、このハッシュをオンプレミスの Pass-the-Hash 攻撃で使用することはできません。As a result, if the hash stored in Azure AD is obtained, it cannot be used in an on-premises pass-the-hash attack.

セキュリティに関する考慮事項Security considerations

パスワードを同期するとき、ユーザーのプレーンテキスト形式のパスワードは、パスワード ハッシュ同期機能にも、Azure AD や関連するどのサービスにも公開されません。When synchronizing passwords, the plain-text version of your password is not exposed to the password hash synchronization feature, to Azure AD, or any of the associated services.

ユーザー認証は、組織の独自の Active Directory インスタンスではなく、Azure AD に対して行われます。User authentication takes place against Azure AD rather than against the organization's own Active Directory instance. Azure AD に格納された SHA256 パスワード データ (元の MD4 ハッシュのハッシュ) は、Active Directory に格納されるものよりもセキュリティで保護されます。The SHA256 password data stored in Azure AD--a hash of the original MD4 hash--is more secure than what is stored in Active Directory. さらに、SHA256 ハッシュの暗号化は解除できないため、組織の Active Directory 環境に戻して、Pass-the-Hash 攻撃で有効なユーザーのパスワードとして表示することはできません。Further, because this SHA256 hash cannot be decrypted, it cannot be brought back to the organization's Active Directory environment and presented as a valid user password in a pass-the-hash attack.

パスワード ポリシーの考慮事項Password policy considerations

パスワード ハッシュ同期を有効にすることによって影響を受ける 2 種類のパスワード ポリシーがあります。There are two types of password policies that are affected by enabling password hash synchronization:

  • パスワードの複雑性のポリシーPassword complexity policy
  • パスワードの有効期限のポリシーPassword expiration policy

パスワードの複雑性のポリシーPassword complexity policy

パスワード ハッシュ同期が有効になっている場合、オンプレミスの Active Directory インスタンスでのパスワードの複雑性ポリシーによって、同期済みユーザーに対するクラウドでの複雑性ポリシーがオーバーライドされます。When password hash synchronization is enabled, the password complexity policies in your on-premises Active Directory instance override complexity policies in the cloud for synchronized users. オンプレミスの Active Directory インスタンスからの有効なパスワードすべてを、Azure AD サービスへのアクセスに使用することができます。You can use all of the valid passwords from your on-premises Active Directory instance to access Azure AD services.

注意

クラウド内で直接作成されたユーザーのパスワードには、引き続きクラウドで定義されているパスワード ポリシーが適用されます。Passwords for users that are created directly in the cloud are still subject to password policies as defined in the cloud.

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

ユーザーがパスワード ハッシュ同期のスコープ内にいる場合、既定でクラウド アカウントのパスワードは "期限なし" に設定されます。If a user is in the scope of password hash synchronization, by default the cloud account password is set to Never Expire.

オンプレミス環境で期限切れになった同期パスワードを利用し、引き続きクラウド サービスにサインインできます。You can continue to sign in to your cloud services by using a synchronized password that is expired in your on-premises environment. クラウドのパスワードは、次にオンプレミス環境でパスワードを変更したときに更新されます。Your cloud password is updated the next time you change the password in the on-premises environment.

EnforceCloudPasswordPolicyForPasswordSyncedUsers 機能 (パブリック プレビュー)Public preview of the EnforceCloudPasswordPolicyForPasswordSyncedUsers feature

Azure AD 統合サービスのみを操作し、パスワードの有効期限ポリシーに準拠している必要がある同期済みユーザーがいる場合は、EnforceCloudPasswordPolicyForPasswordSyncedUsers 機能を有効にすることで、Azure AD パスワードの有効期限ポリシーに強制的に準拠させることができます。If there are synchronized users that only interact with Azure AD integrated services and must also comply with a password expiration policy, you can force them to comply with your Azure AD password expiration policy by enabling the EnforceCloudPasswordPolicyForPasswordSyncedUsers feature.

EnforceCloudPasswordPolicyForPasswordSyncedUsers が無効になっている場合 (既定の設定)、Azure AD Connect では、同期済みユーザーの PasswordPolicies 属性は "DisablePasswordExpiration" に設定されます。When EnforceCloudPasswordPolicyForPasswordSyncedUsers is disabled (which is the default setting), Azure AD Connect sets the PasswordPolicies attribute of synchronized users to "DisablePasswordExpiration". これは、ユーザーのパスワードが同期されるたびに実行され、そのユーザーのクラウド パスワードの有効期限ポリシーを無視するように Azure AD へ指示されます。This is done every time a user's password is synchronized and instructs Azure AD to ignore the cloud password expiration policy for that user. Azure AD PowerShell モジュールを使用して、次のコマンドを使って属性の値を確認できます。You can check the value of the attribute using the Azure AD PowerShell module with the following command:

(Get-AzureADUser -objectID <User Object ID>).passwordpolicies

EnforceCloudPasswordPolicyForPasswordSyncedUsers 機能を有効にするには、下に示すように、MSOnline PowerShell モジュールを使用して次のコマンドを実行します。To enable the EnforceCloudPasswordPolicyForPasswordSyncedUsers feature, run the following command using the MSOnline PowerShell module as shown below. 場合によっては、下に示すように、Enable パラメーターに「yes」と入力する必要があります。You would have to type yes for the Enable parameter as shown below :

`Set-MsolDirSyncFeature -Feature EnforceCloudPasswordPolicyForPasswordSyncedUsers`
`cmdlet Set-MsolDirSyncFeature at command pipeline position 1`
`Supply values for the following parameters:`
`Enable: yes`
`Confirm`
`Continue with this operation?`
`[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y`

有効にすると、Azure AD では、PasswordPolicies 属性から DisablePasswordExpiration 値を削除するために、同期済みの各ユーザーに移動することがなくなります。Once enabled, Azure AD does not go to each synchronized user to remove the DisablePasswordExpiration value from the PasswordPolicies attribute. 代わりに、オンプレミス AD 上で次にパスワードを変更するときに、次のパスワードの同期中に、ユーザーごとに値が None に設定されます。Instead, the value is set to None during the next password sync for each user when they next change their password in on-premises AD.

パスワード ハッシュの初期同期によってユーザーの PasswordPolicies 属性に DisablePasswordExpiration 値が追加されないように、パスワード ハッシュ同期を有効にする前に、EnforceCloudPasswordPolicyForPasswordSyncedUsers を有効にすることをお勧めします。It is recommended to enable EnforceCloudPasswordPolicyForPasswordSyncedUsers, prior to enabling password hash sync, so that the initial sync of password hashes does not add the DisablePasswordExpiration value to the PasswordPolicies attribute for the users.

既定の Azure AD パスワード ポリシーでは、90 日ごとにパスワードを変更するようにユーザーへ要求します。The default Azure AD password policy requires users to change their passwords every 90 days. AD でのポリシーも 90 日になっている場合は、2 つのポリシーが一致しているはずです。If your policy in AD is also 90 days, the two policies should match. しかし、AD のポリシーが 90 日でない場合は、Set-MsolPasswordPolicy PowerShell コマンドを使用して、Azure AD パスワード ポリシーが一致するように更新できます。However, if the AD policy is not 90 days, you can update the Azure AD password policy to match by using the Set-MsolPasswordPolicy PowerShell command.

Azure AD では、登録されたドメインごとに、個別のパスワード有効期限ポリシーがサポートされます。Azure AD supports a separate password expiration policy per registered domain.

注意:有効期限内のパスワードを保持している必要がある同期済みアカウントが Azure AD 上にある場合、Azure AD 上でそのユーザー ブジェクトの PasswordPolicies 属性に DisablePasswordExpiration 値を明示的に追加する必要があります。Caveat: If there are synchronized accounts that need to have non-expiring passwords in Azure AD, you must explicitly add the DisablePasswordExpiration value to the PasswordPolicies attribute of the user object in Azure AD. これを行うには、次のコマンドを実行します。You can do this by running the following command.

Set-AzureADUser -ObjectID <User Object ID> -PasswordPolicies "DisablePasswordExpiration"

注意

この機能は現在、パブリック プレビュー段階にあります。This feature is in Public Preview right now.

一時パスワードと "次回ログオン時にパスワード変更を適用" を同期する (パブリック プレビュー)Public Preview of synchronizing temporary passwords and "Force Password Change on Next Logon"

通常は、最初のログオン時、特に管理者によるパスワードのリセットが行われた後に、ユーザーにパスワードの変更を強制します。It is typical to force a user to change their password during their first logon, especially after an admin password reset occurs. 一般的に "一時" パスワードの設定と呼ばれており、Active Directory (AD) では、ユーザー オブジェクト上の [ユーザーは次回ログオン時にパスワード変更が必要] フラグのチェックをオンにすることで実現できます。It is commonly known as setting a "temporary" password and is completed by checking the "User must change password at next logon" flag on a user object in Active Directory (AD).

一時パスワード機能を使用すると、資格情報の所有権の譲渡が初回使用時に確実に完了し、複数の個人がその資格情報に関する知識を持つ期間を最小限に抑えることができます。The temporary password functionality helps to ensure that the transfer of ownership of the credential is completed on first use, to minimize the duration of time in which more than one individual has knowledge of that credential.

同期済みユーザーに対して Azure AD 上で一時パスワードをサポートするには、Azure AD Connect サーバー上で次のコマンドを実行して ForcePasswordChangeOnLogOn 機能を有効にします。To support temporary passwords in Azure AD for synchronized users, you can enable the ForcePasswordChangeOnLogOn feature, by running the following command on your Azure AD Connect server:

Set-ADSyncAADCompanyFeature  -ForcePasswordChangeOnLogOn $true

注意

次回ログオン時のパスワード変更をユーザーに強制すると、同時でのパスワード変更が必要になります。Forcing a user to change their password on next logon requires a password change at the same time. AD Connect では、パスワードの強制変更フラグは、パスワード ハッシュの同期中に行われた検出済みのパスワード変更に対する補足であり、単独では取得されません。AD Connect will not pick up the force password change flag by itself; it is supplemental to the detected password change that occurs during password hash sync.

注意事項

Azure AD 上でセルフサービス パスワード リセット (SSPR) を有効にしていない場合、Azure AD 上でパスワードをリセットしてから、新しいパスワードを使用して Active Directory にサインインしようとすると、Active Directory では新しいパスワードが有効ではないため、混乱が生じます。If you do not enable Self-service Password Reset (SSPR) in Azure AD users will have a confusing experience when they reset their password in Azure AD and then attempt to sign in in Active Directory with the new password, as the new password isn’t valid in Active Directory. この機能は、テナント上で SSPR とパスワード ライトバックが有効になっている場合にのみ使用してください。You should only use this feature when SSPR and Password Writeback is enabled on the tenant.

注意

この機能は現在、パブリック プレビュー段階にあります。This feature is in public preview right now.

アカウントの有効期限Account expiration

組織でユーザー アカウント管理の一環として accountExpires 属性を使用する場合、この属性は Azure AD に同期されません。If your organization uses the accountExpires attribute as part of user account management, this attribute is not synchronized to Azure AD. この結果、パスワード ハッシュ同期用に構成された環境の期限切れの Active Directory アカウントが、Azure AD では引き続きアクティブなままとなります。As a result, an expired Active Directory account in an environment configured for password hash synchronization will still be active in Azure AD. アカウントが期限切れの場合はユーザーの Azure AD アカウントを無効にする PowerShell スクリプトをワークフロー アクションでトリガーすることをお勧めします (Set-AzureADUser コマンドレットを使用)。We recommend that if the account is expired, a workflow action should trigger a PowerShell script that disables the user's Azure AD account (use the Set-AzureADUser cmdlet). 逆に、アカウントを有効にしたときは、Azure AD インスタンスを有効にする必要があります。Conversely, when the account is turned on, the Azure AD instance should be turned on.

同期されたパスワードの上書きOverwrite synchronized passwords

管理者は Windows PowerShell を使用してパスワードを手動でリセットできます。An administrator can manually reset your password by using Windows PowerShell.

この場合、新しいパスワードによって同期されたパスワードは上書きされ、クラウドで定義されているすべてのパスワード ポリシーが新しいパスワードに適用されます。In this case, the new password overrides your synchronized password, and all password policies defined in the cloud are applied to the new password.

オンプレミスのパスワードを再び変更した場合、新しいパスワードはクラウドに同期され、手動で更新したパスワードを上書きします。If you change your on-premises password again, the new password is synchronized to the cloud, and it overrides the manually updated password.

パスワードの同期によって、サインイン中の Azure ユーザーが影響を受けることはありません。The synchronization of a password has no impact on the Azure user who is signed in. クラウド サービスにログインしている間、パスワード変更が同期された場合、現在のクラウド サービス セッションがその影響をすぐに受けることはありません。Your current cloud service session is not immediately affected by a synchronized password change that occurs while you're signed in to a cloud service. KMSI を使用すると、この差異のある期間が長くなります。KMSI extends the duration of this difference. クラウド サービスで認証が再び要求された場合は、新しいパスワードを指定する必要があります。When the cloud service requires you to authenticate again, you need to provide your new password.

その他の利点Additional advantages

  • 通常、パスワード ハッシュ同期は、フェデレーション サービスよりも実装が簡単です。Generally, password hash synchronization is simpler to implement than a federation service. パスワード同期は追加のサーバーを必要としないため、ユーザーを認証するために高可用性フェデレーション サービスに依存するという状況を解消できるからです。It doesn't require any additional servers, and eliminates dependence on a highly available federation service to authenticate users.
  • フェデレーションだけでなく、パスワード ハッシュ同期を有効にすることもできます。Password hash synchronization can also be enabled in addition to federation. これは、フェデレーション サービスで障害が発生した場合に、フォールバックとして使用できます。It may be used as a fallback if your federation service experiences an outage.

Azure AD Domain Services のパスワード ハッシュ同期プロセスPassword hash sync process for Azure AD Domain Services

Azure AD Domain Services を使用して、Kerberos、LDAP、または NTLM を使用する必要があるアプリケーションやサービスにレガシ認証を提供する場合、追加のプロセスがパスワード ハッシュ同期フローに含まれます。If you use Azure AD Domain Services to provide legacy authentication for applications and services that need to use Kerberos, LDAP, or NTLM, some additional processes are part of the password hash synchronization flow. Azure AD Connect は、次の追加プロセスを使用して、Azure AD Domain Services で使用するためにパスワード ハッシュを Azure AD に同期します。Azure AD Connect uses the additional following process to synchronize password hashes to Azure AD for use in Azure AD Domain Services:

重要

Azure AD Connect は、オンプレミスの AD DS 環境との同期のためにのみインストールおよび構成する必要があります。Azure AD Connect should only be installed and configured for synchronization with on-premises AD DS environments. オブジェクトを Azure AD に同期するために、Azure AD DS マネージド ドメインに Azure AD Connect をインストールすることはサポートされていません。It's not supported to install Azure AD Connect in an Azure AD DS managed domain to synchronize objects back to Azure AD.

Azure AD Connect によってレガシ パスワード ハッシュが同期されるのは、Azure AD DS を Azure AD テナントに対して有効にしたときだけです。Azure AD Connect only synchronizes legacy password hashes when you enable Azure AD DS for your Azure AD tenant. Azure AD Connect を使用してオンプレミス AD DS 環境と Azure AD の同期しか行わない場合、次の手順は使用されません。The following steps aren't used if you only use Azure AD Connect to synchronize an on-premises AD DS environment with Azure AD.

レガシ アプリケーションが NTLM 認証または LDAP simple bind を使用していない場合は、Azure AD DS の NTLM パスワード ハッシュ同期を無効にすることをお勧めします。If your legacy applications don't use NTLM authentication or LDAP simple binds, we recommend that you disable NTLM password hash synchronization for Azure AD DS. 詳しくは、「弱い暗号スイートと NTLM 資格情報ハッシュの同期を無効にする」をご覧ください。For more information, see Disable weak cipher suites and NTLM credential hash synchronization.

  1. Azure AD Connect はテナントの Azure AD Domain Services インスタンスの公開キーを取得します。Azure AD Connect retrieves the public key for the tenant's instance of Azure AD Domain Services.
  2. ユーザーがパスワードを変更すると、オンプレミスのドメイン コントローラーは、パスワード変更 (ハッシュ) の結果を次の 2 つの属性に格納します。When a user changes their password, the on-premises domain controller stores the result of the password change (hashes) in two attributes:
    • unicodePwd: NTLM パスワード ハッシュ。unicodePwd for the NTLM password hash.
    • supplementalCredentials: Kerberos パスワード ハッシュ。supplementalCredentials for the Kerberos password hash.
  3. Azure AD Connect では、ディレクトリ レプリケーション チャネル 介してパスワードの変更が検出されます (他のドメイン コントローラーにレプリケートする必要がある属性の変更)。Azure AD Connect detects password changes through the directory replication channel (attribute changes needing to replicate to other domain controllers).
  4. パスワードが変更されたユーザーごとに、Azure AD Connect が次の手順を実行します。For each user whose password has changed, Azure AD Connect performs the following steps:
    • ランダムな AES 256 ビット対称キーを生成します。Generates a random AES 256-bit symmetric key.
    • 暗号化の最初のラウンドに必要なランダムな初期化ベクターを生成します。Generates a random initialization vector needed for the first round of encryption.
    • Kerberos パスワードハッシュを supplementalCredentials 属性から抽出します。Extracts Kerberos password hashes from the supplementalCredentials attributes.
    • Azure AD Domain Services セキュリティ構成の SyncNtlmPasswords 設定を確認します。Checks the Azure AD Domain Services security configuration SyncNtlmPasswords setting.
      • この設定が無効になっている場合、ランダムな高エントロピ NTLM ハッシュ (ユーザーのパスワードとは異なる) が生成されます。If this setting is disabled, generates a random, high-entropy NTLM hash (different from the user's password). このハッシュは、supplementalCrendetials 属性から抽出された Kerberos パスワード ハッシュと結合されて 1 つのデータ構造になります。This hash is then combined with the exacted Kerberos password hashes from the supplementalCrendetials attribute into one data structure.
      • 有効になっている場合は、unicodePwd属性の値と supplementalCredentials から抽出された Kerberos パスワード ハッシュが結合されて 1 つのデータ構造になります。If enabled, combines the value of the unicodePwd attribute with the extracted Kerberos password hashes from the supplementalCredentials attribute into one data structure.
    • AES 対称キーを使用して 1 つのデータ構造を暗号化します。Encrypts the single data structure using the AES symmetric key.
    • テナントの Azure AD Domain Services 公開キーを使用して AES 対称キーを暗号化します。Encrypts the AES symmetric key using the tenant's Azure AD Domain Services public key.
  5. Azure AD Connect は、暗号化された AES 対称キー、暗号化されたデータ構造 (パスワード ハッシュを含む)、および初期化ベクターを Azure AD に送信します。Azure AD Connect transmits the encrypted AES symmetric key, the encrypted data structure containing the password hashes, and the initialization vector to Azure AD.
  6. Azure AD は、暗号化された AES 対称キー、暗号化されたデータ構造、および初期化ベクターをユーザーについて格納します。Azure AD stores the encrypted AES symmetric key, the encrypted data structure, and the initialization vector for the user.
  7. Azure AD は、暗号化された HTTP セッション上で内部同期メカニズムを使用して、暗号化された AES 対称キー、暗号化されたデータ構造、および初期化ベクターを Azure AD Domain Services にプッシュします。Azure AD pushes the encrypted AES symmetric key, the encrypted data structure, and the initialization vector using an internal synchronization mechanism over an encrypted HTTP session to Azure AD Domain Services.
  8. Azure AD Domain Services は、テナントのインスタンスの秘密キーを Azure Key Vault から取得します。Azure AD Domain Services retrieves the private key for the tenant's instance from Azure Key vault.
  9. 暗号化されたデータのセット (1 人のユーザーのパスワード変更を表す) ごとに、Azure AD Domain Services は次の手順を実行します。For each encrypted set of data (representing a single user's password change), Azure AD Domain Services then performs the following steps:
    • 秘密キーを使用して AES 対称キーを復号化します。Uses its private key to decrypt the AES symmetric key.
    • AES 対称キーを初期化ベクターと共に使用し、暗号化されたデータ構造 (パスワード ハッシュが含まれる) を復号化します。Uses the AES symmetric key with the initialization vector to decrypt the encrypted data structure that contains the password hashes.
    • 受け取った Kerberos パスワード ハッシュを Azure AD Domain Services ドメイン コントローラーに書き込みます。Writes the Kerberos password hashes it receives to the Azure AD Domain Services domain controller. ハッシュは、ユーザー オブジェクトの supplementalCredentials 属性 (Azure AD Domain Services ドメイン コントローラーの公開キーに暗号化される) に保存されます。The hashes are saved into the user object's supplementalCredentials attribute that is encrypted to the Azure AD Domain Services domain controller's public key.
    • Azure AD Domain Services は、受け取った NTLM パスワード ハッシュを Azure AD Domain Services ドメイン コントローラーに書き込みます。Azure AD Domain Services writes the NTLM password hash it received to the Azure AD Domain Services domain controller. ハッシュは、ユーザー オブジェクトの unicodePwd 属性 (Azure AD Domain Services ドメイン コントローラーの公開キーに暗号化される) に保存されます。The hash is saved into the user object's unicodePwd attribute that is encrypted to the Azure AD Domain Services domain controller's public key.

パスワード ハッシュ同期を有効にするEnable password hash synchronization

重要

AD FS (または他のフェデレーション テクノロジ) からパスワード ハッシュの同期に移行する場合は、こちらに公開されている詳細なデプロイ ガイドに従うことを強くお勧めします。If you are migrating from AD FS (or other federation technologies) to Password Hash Synchronization, we highly recommend that you follow our detailed deployment guide published here.

簡単設定オプションを使用して Azure AD Connect をインストールすると、パスワード ハッシュ同期が自動的に有効になります。When you install Azure AD Connect by using the Express Settings option, password hash synchronization is automatically enabled. 詳細については、「簡単設定を使用した Azure AD Connect の開始」を参照してください。For more information, see Getting started with Azure AD Connect using express settings.

Azure AD Connect のインストール時にカスタム設定を使用すると、ユーザー サインイン ページでパスワード ハッシュ同期が使用可能になります。If you use custom settings when you install Azure AD Connect, password hash synchronization is available on the user sign-in page. 詳細については、「Azure AD Connect のカスタム インストール」をご覧ください。For more information, see Custom installation of Azure AD Connect.

パスワード ハッシュ同期を有効にする

パスワード ハッシュ同期と FIPSPassword hash synchronization and FIPS

Federal Information Processing Standard (FIPS) に従ってサーバーがロックされた場合、MD5 は無効になります。If your server has been locked down according to Federal Information Processing Standard (FIPS), then MD5 is disabled.

パスワード ハッシュ同期で MD5 を有効にするには、次の手順を実行します。To enable MD5 for password hash synchronization, perform the following steps:

  1. %programfiles%\Azure AD Sync\Bin に移動します。Go to %programfiles%\Azure AD Sync\Bin.
  2. miiserver.exe.config を開きます。Open miiserver.exe.config.
  3. ファイルの末尾にある configuration/runtime ノードに移動します。Go to the configuration/runtime node at the end of the file.
  4. <enforceFIPSPolicy enabled="false"/>Add the following node: <enforceFIPSPolicy enabled="false"/>
  5. 変更を保存します。Save your changes.

参考までに、このスニペットは次のようになります。For reference, this snippet is what it should look like:

    <configuration>
        <runtime>
            <enforceFIPSPolicy enabled="false"/>
        </runtime>
    </configuration>

セキュリティと FIPS の詳細については、Azure AD のパスワード ハッシュ同期、暗号化、および FIPS コンプライアンスに関するページを参照してください。For information about security and FIPS, see Azure AD password hash sync, encryption, and FIPS compliance.

パスワード ハッシュ同期のトラブルシューティングTroubleshoot password hash synchronization

パスワード ハッシュ同期に問題がある場合は、パスワード ハッシュ同期のトラブルシューティングに関するページをご覧ください。If you have problems with password hash synchronization, see Troubleshoot password hash synchronization.

次のステップNext steps