Entra クラウド同期について詳しく見てみる

目次
はじめに
クラウドインテグレーション部の峰松です。
前回、Entra クラウド同期の構成方法に関する記事を公開しました。
前回記事: Entra クラウド同期とは
本記事では、前回記事では紹介できなかった機能や設定について紹介します。
前回記事の続きから進めていきますので、そちらを先にご覧いただくとより理解しやすくなっております。
エージェントの高可用性
クラウド同期用のエージェントは高可用性のために複数サーバへインストールすることができます。
エージェントがインストールされたサーバを複数台用意することで、1 台のエージェントに異常が発生した場合でも他のエージェントでサービスを継続させることができます。 Microsoft のドキュメントでは、エージェント 3 台構成が推奨されています。
前回の記事では、1 台の AD サーバへエージェントをインストールしてクラウド同期を構成しました。
この続きから、2 台目の AD サーバにもエージェントをインストールして 2 台構成に拡張してみましょう。
インストール手順は 1 台目と変わりません。
インストール完了後、Entra 管理センターにて 2 台目のエージェントがアクティブになっていることを確認できます。
また、構成済みのクラウド同期にて 2 台目のエージェントが自動的に認識され有効になっています。
2 台目をインストールしたことによって、単一のエージェント障害や AD サーバ障害が発生してもクラウド同期サービスを継続することができます。
なお、なんらかの障害によってエージェントに異常が発生している場合、以下のように「非アクティブ」と表示されます。
また、デフォルト設定ではプロビジョニングを実行するエージェントに優先順位はなく、使用可能な任意のエージェントが使用されます。
優先順位を設定したい場合、エージェントインストールウィザードの「Connect Active Directory」セクションにて、
優先ドメインコントローラ(DC)を設定することによりその DC にインストールされたエージェントが優先されます。
優先順位の設定方法を以下に記載します。
エージェントインストールウィザードを起動し、「Connect Active Directory」セクションにて、[Add Directory] をクリックします。
※ 構成済みのドメイン
[Select domain controller priority] にチェックを入れることで、優先 DC を設定することができます。
(優先順位を反映させるためには、ドメイン管理者の情報を入力し [OK] をクリックします。)
補足
DC 以外のサーバにエージェントをインストールしている場合、そのサーバに対して優先順位を設定することはできないようです。
また優先順位はこのウィザード内でしか設定できませんが、エージェントインストール後でもウィザードを再度開けば設定・変更が可能です。
属性マッピング
Entra 管理センターにて、AD から Entra ID への属性マッピングを確認することができます。
ユーザ、グループ、連絡先オブジェクト別にマッピングが定義されています。
既定ルールを変更したり新しいルールを作成することが可能です。
ここでは、sAMAccountName に従業員 ID を設定してサインインを行っている AD 環境を想定し、sAMAccountName を Entra ID の従業員 ID(EmployeeId)属性にマッピングするルールを作成してみましょう。
なお、AD の従業員 ID(employeeID)属性には値を設定していないため、現時点では Entra ID アカウントの従業員 ID には値がありません。
従業員 ID(EmployeeId)属性に関する既定のルールを確認すると、AD の employeeID 属性からマッピングされていることが確認できます。
このルールを編集するため、編集ボタンをクリックします。
編集画面にて、ソース属性を employeeID から sAMAccountName へ変更し適用します。
■ 変更前
■ 変更後
[スキーマの保存] をクリックし、[OK] をクリックします。
同期が実行されると、Entra ID アカウントの従業員番号に sAMAccountName の値が反映されていることが確認できます。
なお、「式ビルダー」を使うことでより細かなルールを作成することも可能です。
参考: クラウド同期での式ビルダー
アカウントマッチング
同期において、AD アカウントと Entra ID アカウントの紐づけを行うことを「アカウントマッチング」と言います。
このマッチングにより、それぞれのアカウントが同一ユーザのものであるということを識別することができます。
従来の Entra Connect による同期では、以下のルールが存在します。
参考: ソフトマッチによる Azure AD(Office 365)上のユーザーをオンプレミス Active Directory ユーザーと紐付ける方法
1. ソースアンカー(ImmutableID)の値が同じオブジェクトがあるか -> ハードマッチ
2. proxyAddresses/mail の値が同じオブジェクトがあるか -> SMTP ソフトマッチ
3. UPN の値が同じオブジェクトがあるか -> UPN ソフトマッチ
マッチするオブジェクトがある場合は、そのオブジェクトに対して同期が行われます。
マッチするオブジェクトが無い場合は、Azure AD 側に新たにオブジェクトが作成されます。
(ドキュメントへの記載は見つけられませんでしたが)クラウド同期にも同じマッチング順位が適用されています。
このマッチングを検証し確認します。
AD および Entra ID に以下のアカウントを作成します。
■AD アカウント
displayName | userPrincipalName | mS-DS-ConsistencyGuid | 想定マッチング | |
---|---|---|---|---|
cs001 | cs001@<domain> | - | {236, 89, 11, 248, 31, 220, 2, 75, 169, 79, 79, 33, 202, 145, 135, 5} | ハードマッチ |
cs002 | cs002@<domain> | cs002.x2@<domain> | - | SMTP ソフトマッチ |
cs003 | cs003@<domain> | - | - | UPN ソフトマッチ |
cs004 | cs004@<domain> | - | - | 新規作成 |
■Entra ID アカウント
DisplayName | UserPrincipalName | OnPremisesImmutableId | 想定マッチング | |
---|---|---|---|---|
cs001 | cs001.x1@<domain> | - | 7FkL+B/cAkupT08hypGHBQ== | ハードマッチ |
cs002 | cs002.x2@<domain> | cs002.x2@<domain> | - | SMTP ソフトマッチ |
cs003 | cs003@<domain> | - | - | UPN ソフトマッチ |
なお、ハードマッチでは Entra Connect と同様に mS-DS-ConsistencyGuid 属性が使用されるようですが、書き戻し機能は存在しないようです。
Q.
クラウド同期のソース アンカーは変更できますか?
A.
クラウド同期では、既定で、ソース アンカーとして ObjectGUID へのフォールバックが設定された ms-ds-consistency-GUID が使用されます。ソース アンカーを変更するためのサポートされた方法はありません。
================================================================
Q.
クラウド同期では、オブジェクトの ms-ds-consistencyGUID の書き戻しはサポートされていますか?
A.
いいえ。クラウド同期では、いずれのオブジェクト(ユーザー オブジェクトを含む)についても ms-ds-consistencyGUID の書き戻しはサポートされません。
cs001 でハードマッチを構成するため、Entra ID アカウントがもつ OnPremisesImmutableId の値を変換し AD アカウントの mS-DS-ConsistencyGuid に設定しています。
ハードマッチの詳細な構成手順については、私が以前執筆した記事をご覧ください。
この状態で同期が実行されると、cs001-cs003 のマッチングが想定通り行われ、cs004 は新規作成されたことが確認できます。
- 同期が有効になったことで AD の属性情報が上書きされる
- オンプレミスの不変 ID(OnPremisesImmutableId)には以下の値が設定される
- cs001...mS-DS-ConsistencyGuid の Base64 エンコード値
- cs002-cs004...objectGUID の Base64 エンコード値
なお、OnPremisesImmutableId に設定される objectGUID や mS-DS-ConsistencyGuid の Base64 エンコード値は、以下の PowerShell コマンドで確認することができます。
# dn 設定
$dn = <オブジェクトもしくは所属する OU の dn>
# ファイル名
$file = <\filepath\ファイル名>
# 属性値出力
ldifde -f $file -d $dn -l userPrincipalName,objectGUID,mS-DS-ConsistencyGuid
OU の dn を設定した場合、OU 配下のオブジェクトの情報がすべて出力されます。
mS-DS-ConsistencyGuid への書き戻しはサポートされていないため、cs002-cs004 には mS-DS-ConsistencyGuid の値がないことも確認できます。
まとめ
本記事ではクラウド同期に関連する機能について紹介しました。
アクティブサーバを 1 台しか構成できない Entra Connect では、ステージングモードのサーバを使用することで可用性をできるだけ下げないようにします。
しかし、障害発生時においてはアクティブサーバを切り替える際にはある程度のサービス中断が発生してしまいます。
その点、クラウド同期エージェントは複数台のアクティブ構成を想定しているため、障害発生時でもサービス中断を発生させることなく運用が可能です。
なお、クラウド同期は属性値マッピングルールのカスタムにも対応していますが、属性値を基にした同期のフィルタリングはサポートされていないため、注意が必要です。
次回は、Entra Connect からクラウド同期への移行手順について執筆する予定です。
参考
アジアクエスト株式会社では一緒に働いていただける方を募集しています。
興味のある方は以下のURLを御覧ください。