二度とやることはないと思っていたら二度目が来たので Windows Server 触ったときのメモを残す。
手順として間違っていたり脆弱なことをしているかもしれないが疎通確認目的なので目をつぶる。
やったことは AD と G Suite の Cloud Directory とのユーザー同期テスト。
用意したもの
- Windows Server 2019 (なんか新しく出ててたので)
- G Suite
Active Directory Domain Service (AD DS)のセットアップ
ドメインは yourdomain.local
のような内部ドメインでいい。
ウィザードによるセットアップで使う予定のポートがすでに使われていたら最後の Install ボタンが押せない。ポートが衝突するアプリが動いていたら事前に止めておくこと。
Active Directory Lightweight Directory Service (AD LDS)のセットアップ
LDAP Configuration on Windows Server - YouTube
LDAP が必要だったらこっちもインストールする必要があると思っていたのだが、Domain Service も LDAP として呼べるようだったのでテストだし Domain Service の LDAP を呼ぶことにした。
ADSI Edit
AD LDS で LDAP を立てたときユーザーがいなかったので、ADSI Edit を使って作成。
- Connection Point
- dc=yourdomain,dc=local
- Computer
- localhost:5389
任意の Base DN の下にユーザーを作成してパスワードリセットする。
このままだと権限がないので、Administrators Role の member に作成したユーザーを追加しておく。
LDP
LDP.exe でドメインアカウントの認証が出来るか確認 | Unlimited Root
AD DC でも AD LDS の LDAP に認証問い合わせできるか確認する。
Google Cloud Directory Sync
Google Cloud Directory Sync について - G Suite 管理者 ヘルプ
- Google Domain Configuration > Connection Settings
- Primary Domain Name
- G Suite の Primary Domain
- Replace domain names in LDAP email addresses (of users and groups) with this domain name.
- 必要であればチェック
- Alternative email domain
- 必要であれば入力
- Primary Domain Name
- LDAP Configuration > Connection Settings
- Server Type
- MS Active Directory
- Connection Type
- Standard LDAP
- Host Name
- localhost
- Port
- 389
- Authentication Type
- Simple
- Password
- 設定したパスワード
- Base DN
- DC=yourdomain, DC=local
- Server Type
- General Settings
- User Accounts
- Groups
- User Accounts > User Attributes
- Email Address Attribute
- Unique identifier Attribute
- objectGUID
- Google Domain Users Deletion / Suspension Policy
- Suspend Google domain users not fount in LDAP, instead of deleting them.
- Don't suspend or delete Google domain super admins not found in LDAP.
- Email Address Attribute
- User Acconts > Additional User Attribiutes
- Given Name Attribute(s)
- givenName
- Family Name Attribute(s)
- sn
- User Password Sync
- Synchronize Passwords
- Only for new users
- Password Attribute
- userPassword
- Synchronize Passwords
- Given Name Attribute(s)
- User Accounts > Search Rules
- Scope
- Sub-tree
- Rule
- (&(&(objectClass=user)(objectCategory=person))((mail=adm*)))
- Scope
メールアドレスが adm から始まるユーザーだけ対象にしている(テストなので)
Test LDAP Query で Rule に合致するユーザーがいるか確認できるのでやっておきましょう。
- Groups > Search Roles
- Scope
- Sub-tree
- Rule
- objectClass=*
- Scope
- Sync
Simulate sync で dry run ができます。
Proposed Change Report, Generated 2:41:16 AM Feb 28, 2019
Analyzed users:
1 local
7 remote
Proposed changes:
Delete: 0
Modify: 1
Create: 1
Modify (all proposed changes) - 1 total users affected
Modify user 1: "hogehoge.user"
Suspend user
Create - 1 total
New user 1: "administrator"
Non-address primary key "qwertyuiop"
Given name "Admin"
Family name "testAD"
SHA1 password
0 aliases
Analyzed groups:
1 local
3 remote
Proposed changes:
Delete: 1
Modify: 0
Create: 1
Delete Group(s) - 1 total
"hogehoge-team"
Create Group(s) - 1 total
"administrator"
Don't suspend or delete Google domain super admins not found in LDAP.
こちらにチェックを入れているので LDAP にいないが super admin になっているユーザーは消えていません
Suspend Google domain users not fount in LDAP, instead of deleting them.
こちらを選択しているので LDAP にいなくて super user ではないユーザーが 1 人削除されてますね
Specify which groups to import and synchronize. Other groups are deleted.
User と違って Group は LDAP になかったら削除になります
Type が Team (domain) のものは削除されて Custom は残っていたので、Type によって削除されるかが変わるようです