スキーマの拡張について

このページでは、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 の変更タイプ

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

LDIF の変更タイプ スキーマ拡張アクション
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 は、ドメインをスキーマの変更を適用する前の状態に戻すこともできます。

    次のステップ