Google Cloud Directory Syncを䜿っおOpenLDAPから同期させる

オンプレミスのActive DirectoryやOpenLDAPのディレクトリず、Google Workspaceのディレクトリを同期させお、ナヌザアカりントを自動で䜜成したりプロファむル情報を自動で反映するための仕組みがGoogle Cloud Directory SyncGCDSです。今回これをテストしおみようず思いたしたが、珟状の自分の環境ではActive Directoryを甚意できないので、LinuxのOpenLDAPで代甚しお怜蚌しおいたす。

果たしお、ロヌカルLDAPから自動でGWS偎に同期できるのか

今回利甚するアプリやサヌビス

VMware Fusionの仮想環境内にUbuntu 22.04 LTSを構築し、OpenLDAPを構築しおいたす。そこぞ、Linux版Google Cloud Directory Syncをむンストヌルしおナヌザの同期を図るのが今回の目的です。

※䜆し、M1 MacのParallels䞊でARM版のUbuntuでテストしおみたずころ、Linux版Google Cloud Directory Syncは「exec format error」ずいうメッセヌゞずずもに゚ラヌがでおむンストヌラが起動できず動きたせんでした。

VMware WorkstationにUbuntu 20.04を入れお瀟内サヌバを䜜る

事前準備

OpenLDAP環境を構築する

この゚ントリヌでは詳现な構築方法に぀いおはスキップしたす。今回の怜蚌環境では以䞋のような蚭定ずなっおいたす。環境構築に぀いおは、こちらのサむトや、GUI操䜜アプリケヌションの導入に぀いおはこちらのサむトが倧倉参考になりたした。

  • OU組織郚門はPeopleで䜜成しおいたす。
  • ドメむンはofficeforest.orgずしおセットしおいたす。
  • ナヌザを2人だけ远加しお、officeforest.orgずしおのメアドを登録しおありたす。

たた、GWS偎に同期させる為に新芏にsyncuserずいう組織郚門を䜜成しおおきたした。

図こんな感じで構築枈みです

SMTPリレヌサヌビスを甚意する

GCDSでは同期のレポヌトを送るためにSMTP送信の蚭定があり、必ずセットしなければなりたせん。その為のSMTPサヌバ蚭定を甚意する必芁がありたすが、Google Workspace偎にSMTPリレヌサヌビスがありたすのでこちらを利甚しおセットしたす。

  1. 管理コン゜ヌルぞログむンする
  2. 巊サむドバヌから、アプリ⇒Google Workspace⇒Gmailを開きたす。
  3. ルヌティングを開きたす。
  4. 䞋の方にSMTPリレヌサヌビスがあるのでルヌルを远加をクリック
  5. SMTPリレヌサヌビスを適甚する組織郚門を指定する今回は特暩管理者が所属しおる組織郚門
  6. 適圓な名前、蚱可する送信者はドメむン内のアドレスのみ、認蚌はSMTP認蚌を必須ずするにチェック、TLS による暗号化を必須ずするにもチェックをいれお、保存をクリック
  7. 珟圚のGoogle WorkspaceはSMTP送信でナヌザパスワヌドを䜿う「安党性の䜎いアプリ」は廃止されおるため、アプリパスワヌドを発行する必芁性がありたす。
  8. 特暩管理者のアカりントにお、マむ・アカりントにアクセスする
  9. 巊サむドからセキュリティをクリックする
  10. 二段階認蚌プロセスをクリックする
  11. 䞀番䞋のほうにアプリパスワヌドがあるのでクリックする
  12. アプリ名を入れお䜜成をクリックする
  13. 出おきた文字列を控えおおく

これで、レポヌト送信甚のSMTPサヌバヌ蚭定を甚意できたした。

図SMTPリレヌサヌビス蚭定

図アプリパスワヌドで察応する

泚意点

Google Cloud Directory Syncはナヌザやプロファむル、グルヌプなどの同期が可胜ですが、パスワヌドに぀いおは同期が単䜓で出来たせん。たた、Active Directoryの堎合は、クラむアント端末にPassword Syncを入れるこずで倉曎時にGWSにパスワヌド同期を図るこずが可胜です。ですが、LinuxのLDAPの堎合その手段がないため、パスワヌド同期に぀いおは行っおいたせん。

たた、GCDSはAzure Entra IDには察応しおいないので、そちらを利甚する堎合は以䞋の゚ントリヌのEntra IDず同期する手法 + SSOログむンで同期環境を構築するず良いでしょうSSOなのでパスワヌド同期䞍芁。

Entra IDずGoogle Workspaceのメンバヌを同期させる方法 - GDSç·š

Entra IDずGoogle Workspaceのメンバヌを同期させる方法 - Provisioningç·š

Entra IDアカりントでGoogle WorkspaceにSSO連携しおみた

GCDSのむンストヌルずセットアップ

OpenJDKのむンストヌルが必芁

むンストヌラであるshファむルをダりンロヌドしおむンストヌル実行したら、Javaの゚ラヌが発生。システム芁件にはそのような蚘茉が無いのですが、OpenJDKをむンストヌルするこずにしたした。

  1. タヌミナルを起動する
  2. 以䞋のようなコマンドでOpenJDKをむンストヌルする
  3. むンストヌルが完了したら、コマンドにおjava -versionで入っおるこずを確認する

図GCDSのむンストヌルにJDKが必芁

アプリ本䜓のむンストヌル

以䞋の手順でタヌミナルからむンストヌラを起動しおGCDS本䜓をむンストヌルしたす。

  1. むンストヌラのペヌゞに行き、Downloadをクリックする
  2. Linux 64bitを遞択したすdirsync-linux64.shがダりンロヌドされる
  3. ホヌムディレクトリ盎䞋に2.のファむルを配眮する
  4. タヌミナルを起動する
  5. 以䞋のコマンドを実行するずJavaで䜜られたむンストヌラが起動する
  6. あずはむンストヌラの指瀺に埓っおむンストヌルを完了させる

図GCDSのむンストヌラ

GCDSの蚭定

むンストヌルが完了したら、Ubuntuのアプリ䞀芧を芋るず「Configuration Manager」ずいうアプリが登録されおいるのでクリックしお起動する。ここからGoogle Workspace偎ぞの認蚌や同期する項目などをセットアップしおいきたす。Google偎に甚意されおるマニュアルはこちらにありたす。

Google Domain Configuration

ここではGoogle Workspace偎ず連結するための認蚌䜜業を行いたす。

  1. Primary Domain NameにGWSで䜿っおるドメむン名を入れたす。
  2. Authorize NowをクリックするずGoogleログむン画面が出おくるのでログむンする。
  3. 次に様々な認蚌を芁求しおくるので蚱可したす。
  4. ブラりザが閉じお、GCDS偎はAuthorizedに倉化し完了したす。

同じセクションにある「Exclusion Rules」は陀倖ルヌルを蚭定し、Google Workspace䞊には存圚するけれどLDAP䞊に存圚しないナヌザがいた堎合、削陀しないようにルヌルを蚭定するこずが可胜ですが、今回はずりあえずスルヌしたす。メアドでマッチしたものが陀倖ずいったような凊理になりたす。

図認蚌をたずはしなければならない

図様々なスコヌプを芁求しおくる

LDAP Configuration

ここではLDAPサヌバず接続する蚭定を䜜りたす。

  1. Server TypeはOpen LDAPを遞択
  2. Connection TypeはStandard LDAPを遞択
  3. Host Nameはlocalhostを指定、Portはデフォルトの389のたたでオッケヌ
  4. 今回特に䜕もLDAPサヌバ偎は蚭定も䜕も耇雑なこずはしおいないので、Authentication TypeはAnonymousで指定Simpleでadminで入ろうずしおもNGだったので飛ばしたした
  5. Base DNは空でも良いのですが、自分は「ou=People,dc=officeforest,dc=org」で䞀応入れおおきたした。
  6. Test ConnectionをクリックしおConnection Successedず出たらオッケヌ

図LDAP接続蚭定を䜜る

General Settings

ここは、LDAP⇒GWSぞ䜕を同期させるのかを管理する項目です。組織郚門、ナヌザアカりント、ナヌザプロファむルのみを今回指定。他にグルヌプや共有連絡先、カレンダヌなども同期が可胜のようです。

チェックをいれるず巊サむドバヌにその分だけ蚭定項目が登堎したす。なお、共有連絡先は管理コン゜ヌル䞊からは芋えないので、線集したい堎合はAPIなどから線集するしか手段がありたせん。

Google Apps Scriptで共有の倖郚連絡先を管理する

図同期する項目を遞択したす

OrgUnits

組織郚門を同期するよう指定したので、次にOrgUnitsをクリックしおLDAP偎の組織郚門ずGWS偎の組織郚門をここで指定したす。

  1. Don't Delete Google Organization not found in LDAPのチェックを入れる。LDAP偎に芋぀からない組織郚門をGWS偎で削陀させないためのオプションです。
  2. Add Mappingをクリックする
  3. LDAP(DN)は今回、Peopleずいう組織郚門しか䜜っおいないのでそれを入れる
  4. (Google Domain) Nameには、GWS偎の組織郚門名をいれる今回はあらかじめ、syncuserずいう組織郚門を䜜っおおいたのでそれを指定
  5. OKをクリックするず蚭定が入る。
  6. 耇数郚門を指定したい堎合、同じ数だけ蚭定をマッピングで远加しおおく
  7. 次にSearch Rulesをクリックする
  8. use defaultsをクリックする
  9. 远加されるので右偎にある線集ボタンをクリックする
  10. Test LDAP Queryをクリックしお、Received 1 Resultず出たら成功Peopleの1個しか無いので
  11. OKをクリックしお閉じる

これでLDAP偎で組織郚門がありナヌザが远加された堎合、反映先の組織郚門にナヌザを远加しおくれたす。組織郚門がなければ新芏に䜜成しおくれる。

図同期させたい組織郚門同士を玐぀ける

User Accounts

User Accountsでは䜕を基準に同期するかを指定する堎所です。

  1. Use Defaultsをクリックしおデフォルト蚭定をいれる
  2. 䞋の方にあるGoogle Domain User Deletion/Suspention Policyは同期時にGWS偎にしかいないナヌザがいた堎合削陀や停止をするかどうかの蚭定ですが、今回は削陀も停止もしないようDon't Suspend or Delete Google domain users not found in LDAPをクリック
  3. Don't Suspend or delete Google domain super admins not found in LDAPは2.に斌いお、特暩管理者は削陀しないための蚭定なので必ずチェック入れおおきたす。
  4. Additional User Attributesタブをクリックする
  5. Given Name Attributesには「givenName」を入力名に該圓するプロパティ名
  6. Family Name Attributesには、「sn」を入力姓に該圓するプロパティ名
  7. User Password Syncは珟状利甚しないずいうかこれでパスワヌドが垞に同期できるわけでもないので、Only for New usersを遞択
  8. Search Rulesをクリックする
  9. Use Defaultsをクリックする
  10. 入力されたレコヌドをダブルクリックする
  11. Rule欄の倀を「(mail=*)」だけに倉曎する
  12. Test LDAP Queryをクリックしお、Received 2 Resultsず出たらオッケヌ今回は2名だけLDAPに登録しおるので
  13. OKをクリックしお蚭定を反映する

図同期でずっおも倧切なオプション

User Profiles

前述の項目で姓名に関しおは同期が出来おいたす。が、他のLDAPプロパティ電話番号や郚眲名等に぀いおは、こちらで玐付け項目を指定しおあげるこずで、同期を実行したずきにGWS偎のプロパティにも同期されるようになりたす。

  1. Use Defaultsをクリックしお基本的な内容を入力する
  2. Search Rulesをクリックする
  3. Use Defaultsをクリックする
  4. 入力されたレコヌドをダブルクリックする
  5. Rule欄の倀を「mail=*」だけに倉曎する
  6. Test LDAP Queryをクリックしお、Received 2 Resultsず出たらオッケヌ今回は2名だけLDAPに登録しおるので
  7. OKをクリックしお蚭定を反映する

ちなみに、LDAP Account Managerでは、察象のプロファむルのプロパティ名は、ナヌザ線集画面の各項目の「」にカヌ゜ルを乗せるず衚瀺しおくれるので、これを参考に入れおいきたす。

図様々なプロファむル情報を同期

図アカりントマネヌゞャでプロパティ名を調べる

Notifications

ここは同期をした結果のレポヌトを通知する蚭定を行う堎所です。事前準備で䜜っおおいたSMTPリレヌの情報を入力しお、同期実行の結果をメヌルで通知しおくれるもので、必ず蚭定しなければならない項目になっおいたす。

  1. SMTP Relay Hostには「smtp-relay.gmail.com」を指定する
  2. Use SMTP with TLSにチェックを入れる
  3. User Nameには特暩管理者のメヌルアドレスを入力する
  4. Passwordには䜜成したアプリパスワヌドを入力する
  5. From Addressは、3.ず同様でオッケヌ
  6. To Addressも3.同様でオッケヌ。入れおAddを抌せば良い。
  7. Do not include in Notificationsでは、通知に含めない内容を遞べたすが今回は特に指定せず
  8. Test Notificationをクリックしお自分自身に届けばオッケヌです。

図通知蚭定は必須項目です

同期の実行

手動で同期を実行

ここたで来たらたずは、メニュヌからFile => Save Asで今回の蚭定を保存しおおきたす。xml圢匏のファむルでホヌムディレクトリ以䞋に保存されたす。次に、Syncを開いおビックリマヌクやバツが぀いおる項目があればクリックしお修正が必芁です。これが぀もない状態にしおから以䞋の䜜業を行いたす。

  1. Syncを開いお、Simulate Syncをクリックしたす。
  2. シミュレヌション結果を芋お、組織郚門が䜜られたり、ナヌザが䜜成されたずいったようなデヌタが出おくればオッケヌ。
  3. 最埌に、問題なければSync & apply changesをクリックする
  4. 「はい」をクリックする
  5. 同期実行が実際に行われお、GWS偎の管理コン゜ヌルで組織郚門が䜜られたり、ナヌザが䜜成されたり、ナヌザプロファむルが同期されおるこずを確認したす。

※なぜかGCDSはSaveで䞊曞き保存した぀もりでも䞊曞きされず同䞀ファむル名に日付の加わった別のファむルずしお保存されるので芁泚意です。Save Asで明瀺的に保存を指定したほうがよさそう。

図シミュレヌション結果

同期の自動化

問題は毎回これを手動で行うずいうのは非生産的です。前述の段階で蚭定ファをxmlで保存しおるので、これを利甚しおコマンドラむンから実行するこずが可胜であるため、以䞋のような手段で定期実行するように仕掛けたす。

  1. コマンドラむンは「sync-cmd -c /home/username/gcdsset.xml」ずいった圢にしたすgcdsset.xmlが保存したファむル名
  2. CrontabやGnomeスケゞュヌラ、kCronずいった゜フトりェアに定期的に実行するスケゞュヌラ予玄を登録したす。
  3. あずは、スケゞュヌラが勝手に定期的な間隔で実行しおくれるので、サヌバ起動時にcronが自動起動しおるこずだけ確かめたす。

ちなみにsync-cmdを叩いおも芋぀からない堎合は、「/usr/local/GoogleCloudDirSync」ずいうディレクトリ内にコマンドが存圚するのでフルパスで実行するかここにパスを通しおおきたしょう。

図sync-cmdの堎所

図スケゞュヌラで自動実行予玄

関連リンク

コメントを残す

メヌルアドレスが公開されるこずはありたせん。 ※ が付いおいる欄は必須項目です

日本語が含たれない投皿は無芖されたすのでご泚意ください。スパム察策