(57)【要約】【課題】ディレクトリ構造やユーザ名の命名規則に依存せず、利用者の意図した属性によって同期対象ユーザアカウントを特定し、パスワード等の属性を自動的に同期させること。【解決手段】同期元ディレクトリサービスにおけるユーザアカウントの属性変更操作を監視し、変更操作検出時に、同期元ディレクトリサービスに予め登録しておいた同期先ディレクトリサービスに対し、同期元と同期先で一致する一致属性を指定して送信し、一致属性に一致する属性のユーザアカウントが登録されているかを検索するステップと、一致する属性のユーザアカウントが登録されていたならば、同期元ディレクトリサービスにおけるユーザアカウントの属性変更内容を同期先ディレクトリサービスに送信し、同期先ディレクトリサービスにおける一致属性を持つユーザアカウントの属性を変更させるステップとを備える。【選択図】　　　　図３
2004110364.tif 000002
【特許請求の範囲】
【請求項１】
ユーザアカウントに関するディレクトリサービスを行うディレクトリサービス相互間において同一ユーザに関するユーザアカウントの属性を同期させるユーザアカウントの属性同期方法であって、
同期元ディレクトリサービスにおけるユーザアカウントの属性変更操作を監視し、変更操作検出時に、同期元ディレクトリサービスに予め登録しておいた同期先ディレクトリサービスに対し、同期元と同期先で一致する一致属性を指定してＬＤＡＰ準拠のプロトコルで送信し、前記一致属性に一致する属性のユーザアカウントが登録されているかを検索する第１のステップと、
指定した一致属性と一致する属性のユーザアカウントが登録されていたならば、同期元ディレクトリサービスにおけるユーザアカウントの属性変更内容を同期先ディレクトリサービスに対しＬＤＡＰ準拠のプロトコルで送信し、同期先ディレクトリサービスにおける前記一致属性を持つユーザアカウントの属性を変更させる第２のステップと
を備えることを特徴とするディレクトリサービス相互間のユーザアカウントの属性同期方法。
【請求項２】
前記第２のステップにおいて、ユーザアカウントの属性の１つであるパスワードについて、変更されたパスワードを暗号化せずに同期先ディレクトリサービスに送信し、同期先ディレクトリサービスにおいて暗号化して登録させることを特徴とする請求項１に記載のディレクトリサービス相互間のユーザアカウントの属性同期方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＲＦＣ−１７７７に定義されたＬＤＡＰに準拠したディレクトリサービス相互間におけるユーザアカウントの属性同期方法に関するものである。
【０００２】
【従来の技術】
従来、ディレクトリサービス間のユーザアカウントを連携させる製品としてＮｏｖｅｌｌ社の提供するＮｏｖｅｌｌ　Ａｃｃｏｕｎｔ　Ｍａｎａｇｅｍｅｎｔが知られている（例えば、非特許文献１参照）。
【０００３】
【非特許文献１】
Ｎｏｖｅｌｌ社発行、「Ｎｏｖｅｌｌ　Ａｃｃｏｕｎｔ　Ｍａｎａｇｅｍｅｎｔ」［２．１　Ｄｉｒｅｃｔｏｒｙ　ｓｅｒｖｉｃｅｓ］，ＷＨＩＴＥ　ＰＡＰＥＲ，ｗｗｗ．ｎｏｖｅｌｌ．ｃｏ．ｊｐ
上記Ｎｏｖｅｌｌ　Ａｃｃｏｕｎｔ　Ｍａｎａｇｅｍｅｎｔは、Ｎｏｖｅｌｌ社の提供するディレクトリサービスであるＮＤＳ（Ｎｏｖｅｌｌ　Ｄｉｒｅｃｔｏｒｙ　Ｓｅｒｖｉｃｅｓ）上で、他社のディレクトリサービスを一元管理することを目的としている。
Ｎｏｖｅｌｌ　Ａｃｃｏｕｎｔ　Ｍａｎａｇｅｍｅｎｔは、ディレクトリサービスごとに専用のソフトウェアモジュールが用意されている。これを他社ディレクトリサービスの動作するプラットフォームに導入することにより、ＮＤＳ上で他社ディレクトリサービスの機能を一元管理することを可能にしている。
【０００４】
【発明が解決しようとする課題】
しかしながら、Ｎｏｖｅｌｌ　Ａｃｃｏｕｎｔ　Ｍａｎａｇｅｍｅｎｔは他社のディレクトリサービスに対して変更を行うため、他社ディレクトリサービスの仕様変更に対して、即座に対応できないという問題がある。
また、ディレクトリサービスの階層構造やユーザ名の命名規則が異なる場合、どちらかのディレクトリ構造に統一しないと、Ｎｏｖｅｌｌ　Ａｃｃｏｕｎｔ　Ｍａｎａｇｅｍｅｎｔを導入することはできない。
【０００５】
本発明の目的は、ディレクトリ構造やユーザ名の命名規則に依存せず、利用者の意図した属性によって同期対象ユーザアカウントを特定し、パスワード等の属性を自動的に同期させることができる、ＬＤＡＰ（Ｌｉｇｈｔ　Ｗｅｉｇｈｔ　Ａｃｃｅｓｓ　Ｐｒｏｔｏｃｏｌ）を利用した汎用的なユーザアカウントの属性同期方法を提供することにある。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、本発明は、ユーザアカウントに関するディレクトリサービスを行うディレクトリサービス相互間において同一ユーザに関するユーザアカウントの属性を同期させるユーザアカウントの属性同期方法であって、
同期元ディレクトリサービスにおけるユーザアカウントの属性変更操作を監視し、変更操作検出時に、同期元ディレクトリサービスに予め登録しておいた同期先ディレクトリサービスに対し、同期元と同期先で一致する一致属性を指定してＬＤＡＰ準拠のプロトコルで送信し、前記一致属性に一致する属性のユーザアカウントが登録されているかを検索する第１のステップと、指定した一致属性と一致する属性のユーザアカウントが登録されていたならば、同期元ディレクトリサービスにおけるユーザアカウントの属性変更内容を同期先ディレクトリサービスに対しＬＤＡＰ準拠のプロトコルで送信し、同期先ディレクトリサービスにおける前記一致属性を持つユーザアカウントの属性を変更させる第２のステップとを備えることを特徴とする。
そして、前記第２のステップにおいて、ユーザアカウントの属性の１つであるパスワードについて、変更されたパスワードを暗号化せずに同期先ディレクトリサービスに送信し、同期先ディレクトリサービスにおいて暗号化して登録させることを特徴とする。
【０００７】
【発明の実施の形態】
以下、本発明を実施する形態を、図面を用いて説明する。
図１は、本発明の実施の形態を示すシステム構成図である。
この実施形態は、同期元のディレクトリサービス１、同期元のディレクトリサービスが動作するディレクトリサーバ２，ディレクトリサービス機能を提供するディレクトリサービスモジュール３、同期先ディレクトリサービス６の情報を格納するオブジェクト４、ユーザアカウントに関する変更イベントを同期先ディレクトリサービス６に通知する同期イベント監視モジュール５、同期対象となる同期先ディレクトリサービス６、同期先ディレクトリサービス６が動作するディレクトリサーバ７、ディレクトリサーバ７にディレクトリサービス機能を提供するディレクトリサービスモジュール８が存在する。
【０００８】
同期対象となる同期先ディレクトリサービス６の情報を格納するオブジェクト４は、本発明を実現するために同期元ディレクトリサービス１内に新たに付加されたものである。
このオブジェクト４のクラス属性には、図２に示すような属性が格納される。すなわち、同期先２０１、ＴＣＰポート２０２、認証ユーザ２０３、パスワード２０４、ＳＳＬ証明書２０５、検索開始ＤＮ２０６、検索範囲２０７、一致属性２０８、不一致処理２０９、新規作成ＤＮ２１０、削除処理２１１である。
同期先２０１は、同期対象ディレクトリサーバ７のホスト名またはＩＰアドレスを指定するものである。
ＴＣＰポート２０２は、ＬＤＡＰ通信に使用するＴＣＰポート番号を指定するものである。
認証ユーザ２０３は、同期対象ディレクトリサービス６の参照／変更権利を持つユーザの識別名を指定するものである。
パスワード２０４は、認証ユーザのパスワードを指定するものである。
ＳＳＬ証明書２０５は、ＴＣＰポートでＳＳＬ通信ポートを指定した場合に、同期対象ディレクトリサーバ８の発行した証明書を格納するものである。
検索開始ＤＮ２０６は、同期対象ディレクトリサービスのコンテナを指定するものであり、指定無しは最上位階層から検索する。
検索範囲２０７は、検索開始ＤＮから、どのレベルの階層まで検索するかを指定するものである。
一致属性２０８は、ディレクトリ構造やユーザＩＤが異なっても、同期元と同期先を関連付けられるよう、両ディレクトリサービスで一致する属性を指定するものであり、複数属性を指定可能である。
不一致処理２０９は、一致属性で指定した情報に該当するユーザがいない場合、新規ユーザとして作成するか、エラーとして処理するかを指定するものである。
新規作成ＤＮ２１０は、新規ユーザとして作成する場合の作成場所を指定するものである。
削除処理２１１は、自ディレクトリサービスのユーザが削除された場合、同期先のユーザも削除するか、否かを指定するものである。
【０００９】
ディレクトリサーバ２では、同期イベント監視モジュール５が動作しており、この同期イベント監視モジュール５が、ユーザアカウントに対する変更操作を検知すると、同期対象ディレクトリサービス１のオブジェクト４に格納した情報に従い、同期対象となるディレクトリサービス６が動作するディレクトリサーバ７に対してＬＤＡＰにて同期要求を行う。この同期要求を送信するに際しては、オブジェクト４に格納されたクラス属性の同期先２０１、ＴＣＰポート２０２を指定し、さらに認証ユーザ２０３、パスワード２０４、ＳＳＬ証明書５を添付する。
【００１０】
図３は、同期イベント監視モジュール５の機能を概念的に示した説明図である。
本発明では前述のように、同期先ディレクトリサービス６の情報を格納するオブジェクト４を格納する領域を新たに付加し、さらに各ユーザのアカウントを格納するユーザオブジェクト９に暗号化しない状態でパスワードを格納できる領域を付加する。
図３では、ユーザＡ（Ｕｓｅｒ−Ａ）のオブジェクト９について暗号化したパスワードを格納する領域９１に対し、新たに暗号化していないパスワードを格納する領域９２が新たに付加されている。
ユーザアカウントの属性の１つであるパスワードの変更が発生すると（Ｓ３０１）、変更されたパスワードを暗号化してオブジェクト４の格納領域９１に格納した後（Ｓ３０２）、同期対象ディレクトリのオブジェクト４に属性変更通知を発行し（Ｓ３０３）、該オブジェクト４に格納された情報に基づきオブジェクト同期先のディレクトリサービス６に対する検索要求をＬＤＡＰを用い送信する（Ｓ３０４）。
検索要求を送信するに際しては、同期元と同期先で一致する一致属性を指定してＬＤＡＰ準拠のプロトコルで送信する。
【００１１】
図３の例では、ユーザ「ＹＡＭＡＤＡ　ＴＡＲＯ」のパスワード「ＡＢＣ」を「１２３」に変更した場合に、同期対象ディレクトリのオブジェクト４では一致属性として「ｆｕｌｌｎａｍｅ」を指定しているので、同期元のユーザＡの「ｆｕｌｌｎａｍｅ＝ＹＡＭＡＤＡ　ＴＡＲＯ」を送信する。
同期先のディレクトリサーバ７は、指定された一致属性「ＹＡＭＡＤＡ　ＴＡＲＯ」を持つユーザアカウントがディレクトリサービス６に登録されているかを検索し、検索結果の応答を返す。
【００１２】
登録されていたならば、同期元ディレクトリサーバ２は、同期元ディレクトリサービス１におけるユーザアカウントの属性変更内容（パスワード「ＡＢＣ」を「１２３」に変更する）を含む変更通知を同期先ディレクトリサーバ７に対しＬＤＡＰ準拠のプロトコルで送信し（Ｓ３０５）、同期先ディレクトリサービス６における一致属性「ｆｕｌｌｎａｍｅ＝ＹＡＭＡＤＡ　ＴＡＲＯ」を持つユーザアカウントのパスワードを変更させる。
これにより、同期先のディレクトリサービス６の「ＹＡＭＡＤＡ　ＴＡＲＯ」のユーザオブジェクト１１の暗号化パスワード格納領域１１１には、変更前の暗号化パスワード「ＡＢＣ」に代えて、変更後のパスワード「１２３」が暗号化されて格納される。
【００１３】
図４は、同期イベント監視モジュール５の監視動作を示すフローチャートである。
同期先ディレクトリのオブジェクト４がディレクトリサーバ２の管理者によって作成されてディレクトリサービス１内に登録されているかを判定し、登録されていなければ、処理を終了し、ユーザアカウントの属性の変更操作の監視を行なわない（ステップ４０１）。
作成されていた場合には、以下の手順で属性変更操作を検出し、必要な同期処理を進める。
属性の変更イベント、例えばパスワード「ａｂｃ１２３」を「ｘｙｚ７８９」に変更するイベントが発生したことを検出すると（ステップ４０２）、図５に示すように、ディレクトリサーバ２にパスワード変更要求を通知し、新たなパスワード「ｘｙｚ７８９」をオブジェクト４の非暗号化格納領域９２に格納させたのち、新たなパスワード「ｘｙｚ７８９」を暗号化して暗号化格納領域９１に格納させる。
こののち、図６に示すように、非暗号化格納領域９２に格納されている変更内容（「ｘｙｚ７８９」）をオブジェクト４に転送する。
【００１４】
同期イベント発生モジュール５は、同期対象ディレクトリのオブジェクト４に登録されている全ての同期先への通知が完了したかを判定する（ステップ４０３）。完了していない場合、同期先ディレクトリサービス６への認証手続をオブジェクト４に実施させる（ステップ４０４）。
図７に、同期先ディレクトリサービス６への認証手続の様子を示す。
【００１５】
パスワード変更の通知を受けた同期対象ディレクトリのオブジェクト４は、図２の同期先２０１とＴＣＰポート２０２に設定された内容に基づき、同期対象となるディレクトリサービス６を把握する。さらに図２の認証ユーザ２０３とパスワード２０４の設定内容を使用し、同期先ディレクトリサービス６に対して参照権と変更権を持つユーザで、ＬＤＡＰ認証を行う。この場合、ディレクトリサービス間で、ＳＳＬプロトコルによる暗号化通信を行う場合は、同期先ディレクトリサービス６の発行したＳＳＬ証明書２０５を添付する。
【００１６】
ＬＤＡＰ認証に成功すると、イベント内容が削除か、新規作成または変更かを判定し（ステップ４０５）、新規作成または変更のイベントであれば、同期対象ユーザの検索を行なう。削除のイベントであれば、オブジェクト４のクラス属性における不一致処理２０９の設定内容に応じた処理を行う。
新規作成または変更のイベントであった場合、同期先ディレクトリサービス６に同期対象のユーザが存在するか、検索する（ステップ４０６）。利用者は、同期先ディレクトリサービスの検索開始位置と検索する階層レベルを図２の検索開始ＤＮ２０６と検索範囲２０７に指定しておく。検索場所を指定することで、同期を行う部分を限定することを可能にする。さらに、運用においては、ディレクトリサービスごとにユーザ名の命名規則が異なる場合がある。また、ディレクトリ構造も同様に異なる場合がある。そこで、同期対象ユーザを一意に識別するための属性を、利用者が指定できるようにする。同期対象ディレクトリオブジェクト４は、図２の一致属性を用い、同期対象となるユーザをＬＤＡＰリクエストで検索する。一致属性は、任意のＬＤＡＰ属性を指定できる。図８は、一致属性を元に同期対象ユーザを検索する様子を示している。図８での一致属性は「ｆｕｌｌＮａｍｅ」で、ユーザＡの「ｆｕｌｌＮａｍｅ」属性の値は「ＹＡＭＡＤＡ　Ｔａｒｏ」であり、この情報を元にディレクトリサービス６上で「ｆｕｌｌＮａｍｅ　＝　ＹＡＭＡＤＡ　Ｔａｒｏ」と一致するユーザオブジェクトが存在するか否か検索する。図８に、「ｆｕｌｌＮａｍｅ　＝　ＹＡＭＡＤＡ　Ｔａｒｏ」で検索する様子を示している。
【００１７】
検索の結果、同期先ディレクトリサービス６に「ｆｕｌｌＮａｍｅ　＝　ＹＡＭＡＤＡ　Ｔａｒｏ」のユーザが存在することが判明したならば（ステップ４０７）、パスワード変更通知を同期先ディレクトリサービス６に送信し、同期先ユーザのパスワードを変更させる（ステップ４１０）。これにより、図９に示すように、同期先ディレクトリサービス６では、「ｆｕｌｌＮａｍｅ　＝　ＹＡＭＡＤＡ　Ｔａｒｏ」のパスワードが「ＡＢＣ１２３」から「ＸＹＺ７８９」に変更される。
【００１８】
「ｆｕｌｌＮａｍｅ　＝　ＹＡＭＡＤＡ　Ｔａｒｏ」が同期先ディレクトリサービス６に存在しない場合、オブジェクト４のクラス属性の不一致処理２０９に設定された内容に基づいて同期先ディレクトリサービス６に対する変更を行なわない、または新規作成の処理を実行する。すなわち、不一致処理２０９として何らの内容が設定されていなかった場合には、図１０（ａ）に示すように同期先ディレクトリサービス６に対する属性変更は実施しない。
しかし、新規作成する旨の設定がなされていた場合には、不一致処理２０９で指定されているディレクトリサービス６の階層にユーザオブジェクトを図１０（ｂ）に示すように新規に作成する（ステップ４０９）。
【００１９】
一方、同期元ディレクトリサービス１で発生したイベントが削除イベントであった場合、不一致処理２０９の内容を調べ（ステップ４１１）、内容が設定されていなければ、図１１（ａ）に示すように同期先ディレクトリサービス６に対する属性変更は実施しない。
しかし、内容が設定されていた場合、削除対象のユーザを検索し（ステップ４１２）、該当ユーザが存在するかを判定し（ステップ４１３）、存在した場合には、図１１（ｂ）に示すように同期先ディレクトリサービス６から該当ユーザのオブジェクトを削除する要求を送信し、削除させる。存在しなかった場合には何もしない。
なお、図３で示すディレクトリサービス１及び６には組織オブジェクト１０，１２が存在するが、この組織オブジェクトの属性を変更する場合にも全く同様に実施することができる。
【００２０】
以上のように、本実施形態によれば、ＬＤＡＰに準拠した機能のみでディレクトリサービス間の同期が可能になり、ディレクトリサービスに特化した仕様に依存しない、容易な拡張性を提供することが可能になる。また、ＬＤＡＰ準拠しているディレクトリサービスであれば同期対象となるので、汎用的に利用できる。また、同期先のディレクトリサービス情報を同期対象ディレクトリオブジェクトとして、利用者が設定できるため、命名規則やディレクトリ構造の異なるディレクトリサービス間への導入が容易に行える。さらに、同期対象ディレクトリオブジェクトを複数作成することで、１対多のディレクトリサービス間同期が可能になる。また、複数のディレクトリサービスに本発明を適用することで、ディレクトリサービス間の相互同期が可能になる。
また、変更されたパスワードを暗号化しない状態で格納する領域を持たせることで、ディレクトリサービスごとに異なるパスワード暗号化技術を意識せずに、パスワードの同期を採ることができる。
【００２１】
【発明の効果】
以上説明したように本発明によれば、ディレクトリ構造やユーザ名の命名規則に依存せず、利用者の意図した属性によって同期対象ユーザアカウントを特定し、パスワード等の属性を自動的に同期させることができる。
【図面の簡単な説明】
【図１】本発明の実施形態を示すシステム構成図である。
【図２】同期対象ディレクトリオブジェクトクラスに設定された属性の例を示す図である。
【図３】同期イベント監視モジュールの動作の概要を示す図である。
【図４】同期イベント監視モジュールの処理を示すフローチャートである。
【図５】パスワード変更要求に対するユーザオブジェクト内の処理の流れを示す図である。
【図６】ユーザオブジェクトから同期対象ディレクトリオブジェクトへの通知の流れを示す図である。
【図７】同期先ディレクトリサービスへの認証の流れを示す図である。
【図８】同期先ディレクトリサービスの検索の流れを示す図である。
【図９】同期先ディレクトリサービスへのパスワード変更の流れを示す図である。
【図１０】同期対象となるユーザが存在しなかった場合の流れを示す図である。
【図１１】ユーザが削除された場合の流れを示す図である。
【符号の説明】
１…同期元のディレクトリサービス、２…同期元のディレクトリサーバ、３…ディレクトリサービスモジュール、４…同期先ディレクトリサービスの情報を格納するオブジェクト、５…同期イベント監視モジュール、６…同期先ディレクトリサービス、７…同期先のディレクトリサーバ、８…ディレクトリサービスモジュール，９…同期元ディレクトリサービスのユーザオブジェクト、１０…同期元ディレクトリサービスの組織オブジェクト、１１…同期先ディレクトリサービスのユーザオブジェクト、１２…同期先ディレクトリサービスの組織オブジェクト。
【図１】
2004110364.tif 000003
【図２】
2004110364.tif 000004
【図３】
2004110364.tif 000005
【図４】
2004110364.tif 000006
【図５】
2004110364.tif 000007
【図６】
2004110364.tif 000008
【図７】
2004110364.tif 000009
【図８】
2004110364.tif 000010
【図９】
2004110364.tif 000011
【図１０】
2004110364.tif 000012
【図１１】
2004110364.tif 000013