Azure AD 同期する際には、ImmutableID の理解が超重要【実体験】

Active Directory Azure


Azure AD Connect 同期で ImmutableID という用語を耳にすると思います。
ImmutableID というと、「単なる設定」「特に重要ではない」など考えるかもしれません。

しかし、ImmutableID は Azure AD に同期する際には最重要なキーワードです。

どういったことかというと、
オンプレミスADアカウント同期しようと考える前に、ImmutableID についての理解していない場合、
「AD同期が失敗」「Office365アカウントが2重に登録される」など様々な不具合に悩まされます。

この ImmutableID の理解することは、すごく重要なものと認識頂けたかとおもいます。

ImmutableID とオンプレミスADとの関係を示し、Azure AD Connect がどのようにしてアカウントを紐づけるかを解説します。

オンプレミスADとAzureADの紐づけの仕組み

オンプレミスADアカウントから Azure AD への同期する仕組みは、以下の3ステップになります。

  1. オンプレミスADアカウントのObjectGUID属性の値を取得
  2. Azure AD アカウントの ImmutableID へObjectGUID属性を上書き
  3. オンプレミスADアカウントの他の属性へ上書き

上記の流れのとおり、AzureからするとオンプレミスADアカウントへの紐づけを完了させるには、オンプレミス側アカウントに値を書き戻し、オンプレからAzureへ再度同期が実行されます。

この一連の流の中で、sourceAnchor(ソースアンカー)と呼ばれる用語がでてきます。
sourceAnchor 属性は、「オブジェクトの有効期間中に変更できない属性」として定義されています。

つまり、アカウント(オブジェクト)は、オンプレミスADと Azure AD で同じオブジェクトとして一意に識別され、紐づけされます。

また、この属性は、 ImmutableID とも呼ばれることもあり、用語ではなく動作・仕組みので理解する必要がでてきますので厄介です。

サポート担当によっては、ImmutableID と言ったり、SourceAnchor と言ったり・・・
厄介ですね。

オンプレミスADアカウントのObjectGUID属性の値を取得

オンプレミスアカウントには様々な属性値が設定されています。
そのなかから、ObjectGUIDは一意の値になることから、Azure AD の紐づけに利用されます。

Azure AD アカウントの ImmutableID へObjectGUID属性を上書き

Azure AD Connect での同期はデフォルト30分間隔で実行されます。

オンプレミス側のObjectGUIDは、属性の値をBase64Encode実行され、Azure上の ImmutableID にセットされます。

オンプレミスADアカウントの他の属性へ上書き

Azure AD Connect (バージョン 1.1.524.0 以降)では、ツールの仕様が変更されています。
どのように変更されているかというと、
ソースアンカーが、ObjectGUID から ms-DS-ConsistencyGuid 属性へ変更されています。

通常のオンプレADアカウントでは ms-DS-ConsistencyGuid 属性のは「未構成」です。

ObjectGUID の値がオンプレミスADアカウント の ms-DS-ConsistencyGuid 属性に書き戻されます。

ms-DS-ConsistencyGuid 属性に値が設定された後、そのオブジェクトが Azure AD Connect によって Azure AD にエクスポートされます。

まとめ

AzureADとの同期する際にはじめは「Azure AD Connect実行するだけじゃないか」と思っていました。

実際にAzure AD Connectでのアカウント同期を行ってみると、結構複雑で見るべきポイントが多いです。

まずは最重要な ImmutableID への理解かはじめていきます。ImmutableIDの書き戻しするにもまたさまざまな制約があったりしますので、次回以降に解説していきます。

スポンサードサーチ