Google Cloud Directory Sync（GCDS）を試す

##はじめに
GCP(G-suite)用のGoogleアカウントの作成方法は、以下の5つの方法があります。

- Adminコンソールで手動でGoogleアカウント作成※補足1
- CSV ファイルで名前をアップロードして一括作成

(組織で LDAP ディレクトリを利用している場合)
- Google Cloud Directory Syncを使用して、既存の LDAP ディレクトリ内のユーザーデータと Google アカウントを同期
- Admin SDK Directory API を使用して、既存の LDAP ディレクトリのデータから、多数のユーザー作成
- IBM Notes から移行する場合は、G Suite Migration for IBM® Notes® を使用します。

https://support.google.com/a/answer/179832?hl=ja

※補足1　Adminコンソールの左上のAdd Userから追加可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/d80db78c-7e4e-3a7c-4513-414a3eaf04d6.png)

今回は、Google Cloud Directory Sync(GCDS)を試してみたいと思います。
###試してみましたが同期できませんでした。。タイムオーバーになったので時間見つけてリトライしたいと思います。今回は、作業の流れなどを整理できれば。。🙇

###GCDSでできること
GCDSは、ADホストかADホストとGoogleのAPIにアクセスできるサーバにインストールします。設定が完了すると、ADのデータがGoogleアカウントとして同期されます。ADからGoogleアカウントの片方向の同期となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/ff1e51fb-354d-2938-471d-838791233bcc.png)

AD管理情報の同期することができます。同期対象は以下になります。

- Organizational Units
- User Accounts
- Groups
- User profiles
- Custom Schemas
- Shared Contacts
- Calendar Resources
- Licenses

メインの用途としては、User Accountsの同期になるかと思います。設定画面は以下になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/4d284621-8522-4686-663d-3bcaac919f0c.png)

手動、スケジュールによる同期処理の実行が可能です。スケジュール実行を設定しておくことで、ADに新規ユーザが追加担ったときに、Googleアカウントも自動で追加になるように設定可能です。

Active DirectoryユーザとGoogleアカウントのコンフリクトが発生した場合の対処方法は、以下の3つから選択可能です。

- LDAPに存在しなくてGoogleアカウントとして存在するアクティブアカウントを削除する
- LDAPに存在しなくてGoogleアカウントとして存在するアクティブアカウントとサスペンドされたアカウントを削除する
- LDAPに存在しなくてGoogleアカウントとして存在するアクティブアカウントをサスペンドする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/ddfd7711-d3d6-68f0-e470-ad71361b4e48.png)

User Accountsの同期時のパスワード同期のオプションは以下の3つからから選択可能です。

- Active Directoryユーザを新規作成したタイミングで同期する
- 新規ユーザ作成と既存ユーザのパスワード変更時に同期する
- パスワード変更時のみ同期する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/366430c2-4d8f-f09f-9a6c-b454c71d8f63.png)

###GCDSでできないこと
SSOのソリューションではありません。Active DirectoryのユーザとしてログインしていてもGoogleアカウントログインする作業は必要になります。
同期は、一方通行なのでAdminコンソールでGoogleアカウントの設定を変更しても、Active Directory側に反映されることはありません。

##大まかな流れ
1. ドメインを取得する
2. ドメインをG Suiteに登録する
3. ADをたてる
4. ADホストにGoogle Cloud Directory Sync（GCDS）をインストールして設定する
5. ADユーザをGoogleアカウントに同期する

マニュアルとしては以下になります。
https://support.google.com/a/topic/2679497?hl=ja&ref_topic=4511280

##やってみる

###1.ドメインを取得する
お名前.comなどでドメインを取得する

###2.ドメインをG Suiteに登録する
以下のリンクよりGET STARTEDを実行します。
https://gsuite.google.com/

###3.ADを立てる
以下を参考に実施します。すでにADがる場合は作業不要。
https://cloud.google.com/solutions/deploy-fault-tolerant-active-directory-environment

###4.ADホストにGoogle Cloud Directory Sync（GCDS）をインストールして設定する
以下のリンクよりGCDSツールをダウンロードする
https://tools.google.com/dlpage/dirsync

環境に応じてファイルのリンクをクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/d5678496-499b-9d45-cc60-e694c8e8730b.png)

ダウンロードしたファイルをダブルクリックして実行する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/394f9e96-4ec4-0053-135b-27610388b192.png)

Runをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/278143ec-6d6c-ac97-9105-44dca8618469.png)

Nextをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/8a55c7b4-333b-b218-db7f-6e6a34ca4f41.png)

Agreementを許諾してNextをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/c63ad829-46b2-2147-757a-736f4acfda82.png)

ダウンロード先を指定してNextをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/17c7374b-3f78-14a8-392d-ea19ddd20fb1.png)

Nextをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/addd15a0-ba9c-b1f7-9321-7f5b2fb11f6e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/48b174b5-57a0-d722-0495-7ed51e684498.png)

Finishをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/ae46520a-dd19-bee4-cc22-91366f1f5076.png)

インストールが完了したので、GCDSの設定を実施します。C:\Program Files\Google Cloud Directory Sync\config-managerをダブルクリックして起動します。

まずは、Google Domain configurationのConnection SettingsタブでDomain名を入力してAuthorize Nowをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/e441a067-e76a-8701-6b0f-012d10a74784.png)

Googleの認証画面にリダイレクトされます。ドメイン管理者としてログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/e8ab1022-c928-8717-fe56-ab7fd4f5eee1.png)

権限移譲を許可します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/72a1a581-3de6-54bc-0e4b-96df851e855d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/dcc284a7-6dde-feb6-1bde-647358981148.png)

Verificationコードを受け取った旨のメッセージが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/a218b696-0f71-4190-2739-94544661963b.png)

Autholizedと表示されていればOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/07c7b3e3-0dfa-cf53-0180-bf7ae68f1419.png)

Sync元になるLDAP設定を実施します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/0cdb68c7-c8bc-6e12-41db-42cec1fc1d51.png)

今回はADをSync元にするため、Server TypeをMS Active Directoryにします。
Hostnameは、ADホストのホスト名を指定します。
ADの管理ユーザのユーザ名とパスワードを入力します。
Base DNを入力します。例) dc=exmaple,dc=comなどドメインを指定します。
Test Connectionをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/3ec6249a-8434-087b-9c27-5739b6ef5ef9.png)

テストが成功することを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/e59cf329-1ca0-65bc-9b1b-9983d1bc04cd.png)
※未作成のOUなどを指定するとエラーになります。

Sync画面で☓が表示されている項目は設定が必要なので、該当行をクリックして設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/1838563f-ca17-cb25-4a72-ccca88ae094d.png)

今回は、Use defaultsで設定します。設定は、Sync画面で☓になっている項目すべてで実施します。

##5. ADユーザをGoogleアカウントに同期する
[管理ツール] から、[Active Directory ユーザーとコンピューター] を起動し、Active Directoryユーザを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/13dfd1c2-7a2c-7c2b-6992-94487e5879f5.png)

Sync画面でSimulate syncをクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/fd1ed438-e2c4-d88f-ad31-82e9b956ac46.png)

Remote(Googleアカウント)側は、2アカウントが検出されましたが、Local(Active Directory)ユーザは検出されませんでした。※補足2
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/ede9e515-d7c8-3632-17b1-ba7f37320d35.png)


本来であれば、Sync & apply changesをクリックして、Remote(Googleアカウント)側にユーザが同期されることを確認するつもりだったのですが、今回はできませんでした・・・🙇

##補足2
LDAPのクエリに問題があるのかと思い、すべてのオブジェクトが検出できるようにフィルターを設定してみましたがうまくいきませんでした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/586c96b3-1896-248f-7e78-b1e484cb5514.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78184/cd109364-72b7-f74e-849f-4be9b69e2475.png)

##投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。