スキーマの拡張について

このページでは、Managed Service for Microsoft Active Directory でスキーマ拡張がどのように機能するかについて説明します。

概要

Active Directory(AD)は、ディレクトリ データを整理して保存するためにスキーマに依存しています。AD スキーマは、ディレクトリ データの保存に使用されるオブジェクトクラスとその属性を定義します。

スキーマ拡張を使用すると、スキーマの変更を実行し、Active Directory の特定のクラスまたは属性に依存するアプリケーションのサポートを有効にできます。

デフォルトの AD スキーマを拡張するには、新しいクラスと属性を定義するか、既存のクラスと属性の定義またはプロパティを変更します。マネージド Microsoft AD では、スキーマ変更のコマンドを含む LDAP データ交換方式(LDIF)ファイルを使用してスキーマを拡張できます。詳細については、スキーマの拡張をご覧ください。

LDIF の詳細については、LDAP データ交換方式をご覧ください。

LDIF ファイルを準備する方法

LDIF ファイルは、Lightweight Directory Access Protocol(LDAP)のディレクトリ コンテンツと更新リクエストを表すための標準の書式なしテキストによるデータ交換形式です。LDIF ファイルは、追加、変更、名前変更などの更新リクエストのコレクションを表す一連のレコードで構成されています。空行は、更新リクエストの各エントリを表す LDIF ファイル内のレコードセットを区切ります。スキーマ変更を含むファイルを作成する前に、LDIF ファイルの形式を理解することをおすすめします。詳細については、LDIF スクリプトをご覧ください。

LDIF ファイルを準備する前に、次のガイドラインをお読みください。

スキーマ要素

クラス、属性、オブジェクトなどのスキーマ要素は、AD スキーマの構成要素です。属性、オブジェクトクラス、オブジェクト ID、リンクされた属性など、スキーマ要素に関連する主なコンセプトを学習することをおすすめします。詳細については、Active Directory スキーマ(AD DS)をご覧ください。

LDIF ファイルの構造

LDIF ファイル内のエントリは、ディレクトリ情報ツリー(DIT)構造を使用して配置する必要があります。有効な LDIF ファイルの構造は、次のガイドラインに準拠している必要があります。

  • 親エントリを子エントリの前に表示します。
  • LDIF ファイル内のエントリは空行で区切ります。
  • エントリで使用するクラスまたは属性は、スキーマに存在している必要があります。クラスまたは属性を使用する前に、スキーマで使用可能かどうかを確認してください。使用可能でない場合は、クラスまたは属性をスキーマに追加する必要があります。たとえば、属性をクラスに関連付ける前に、属性を作成する必要があります。

識別名の形式

LDIF ファイル内のすべてのエントリは、識別名(DN)で始まります。レコードが操作する AD オブジェクトを指定します。レコードがスキーマ キャッシュを更新する場合は、DN を空にする必要があります。スキーマ変更の場合、DN は次の形式にする必要があります。

dn: cn=CLASS_OR_ATTRIBUTE,cn=Schema,cn=Configuration,dc=ROOT_DOMAIN,dc=TOP_LEVEL_DOMAIN

以下を置き換えます。

  • CLASS_OR_ATTRIBUTE: クラスまたは属性の名前。例: example-attribute
  • ROOT_DOMAIN: ドメイン名のルートドメイン。たとえば、ドメイン名が example.com の場合は、「example」と入力します。
  • TOP_LEVEL_DOMAIN: ドメイン名のトップレベル ドメイン。たとえば、ドメイン名が example.com の場合は、「com」と入力します。

たとえば、ドメイン名 example.com の属性 example-attribute の DN は次の形式にする必要があります。

dn: cn=example-attribute,cn=Schema,cn=Configuration,dc=example,dc=com

サポートされている LDIF changetypes

マネージド Microsoft AD は、スキーマ拡張に対して次の LDIF 変更タイプをサポートしています。

LDIF changetype スキーマ拡張アクション
add スキーマに新しいクラスまたは属性を作成します。
modify スキーマ内のクラスまたは属性のプロパティを更新します。以下の一覧に、使用可能なプロパティ更新の一部を示します。
  • クラスに属性を適用する。
  • クラスまたは属性の ldapDisplayName プロパティを更新する。
  • クラスまたは属性を無効にする。
  • modrdn または moddn クラスまたは属性の相対識別名(RDN)の名前を変更します。

    考慮事項

    スキーマを拡張する前に、次の点を検討してください。

    • Microsoft は、スキーマ拡張が Active Directory 環境に与える影響について詳細なアドバイザリを提供しています。スキーマを拡張する前に、これらのアドバイスを十分にご確認ください。詳細については、スキーマを拡張する前に知っておくべきことをご覧ください。
    • クラスまたは属性をスキーマに追加すると、その変更は永続的になります。ただし、不要になったクラスや属性は、追加後に無効にできます。詳細については、既存のクラスと属性の無効化をご覧ください。

    スキーマ拡張の仕組み

    ドメインでスキーマ拡張を開始すると、マネージド Microsoft AD は構造、スキーマ形式、サポートされている変更タイプやアクションについて LDIF ファイルを検証します。

    LDIF ファイルが有効な場合、マネージド Microsoft AD はスキーマの変更を適用する前にドメインのバックアップを取得します。スキーマの更新後にアプリで問題が発生した場合は、このバックアップを使用してドメインを復元できます。マネージド Microsoft AD はドメイン コントローラの一つをドメインから分離し、Ldifde ツールを使用してスキーマの変更を適用します。スキーマの変更中は、ドメイン内の他のドメイン コントローラがクライアント トラフィックを処理します。

    スキーマの変更が成功すると、分離されたドメイン コントローラはドメインに再接続し、これらのスキーマ変更をドメイン内の他のドメイン コントローラに複製します。

    スキーマの変更が失敗した場合、マネージド Microsoft AD はドメイン コントローラをバックアップされた状態に戻します。

    マネージド Microsoft AD は、ドメインでの部分的なスキーマ拡張をサポートしていません。つまり、LDIF ファイル内のいずれかのコマンドがドメインに適用されなかった場合、スキーマ拡張リクエストは失敗します。マネージド Microsoft AD は、ドメインをスキーマの変更を適用する前の状態に戻すこともできます。

    次のステップ