Entraの管理者グループをGWSに同期する

複数のSaaSを利用していると、管理者権限の管理が煩雑になりますよね。
これは、今まで皆さん様々直面してきていて、色々対応してきていると思います。

最近まで、`Microsoft 365` と `Google Workspace` を同時利用していると、それぞれで管理者権限の設定をユーザー毎に行わなければなりませんでした。
それは以下の制約があったためです。

- Entra では、管理者ロールは静的グループにしか付与できない
- 管理者ロールを付与した Microsoft 365 グループにはエイリアスが設定できないため、`***@***.onmicrosoft.com` のメールアドレスしか付与できない
- GWSでは、管理者ロールをグループに付与できなかった

平たく言えば、これまでは「**Entraの管理者グループをGWSには同期できなかった**」のですね。
これが、2023年にリリースされた以下の機能を利用することで、相変わらず直接の同期はできませんが、回避策ができました。

- **セキュリティグループに対し、GWSの（特権管理者以外の）管理者ロールを付与できる**ようになった（[2023年4月リリース](https://workspaceupdates-ja.googleblog.com/2023/04/blog-post_26.html)）
- Entra の動的グループのクエリとして、**memberOf 属性**が実装された（[2023年10月プレビューリリース](https://learn.microsoft.com/ja-jp/entra/identity/users/groups-dynamic-rule-member-of)）

図解するとこうなります。

![スクリーンショット 2024-02-20 222620.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529930/943cfdb2-7658-8695-2aeb-86f39a2232e0.png)

ここからは、実際に上図のとおりグループ同期を構成していきます。

:::note warn
本件は以下の環境を前提とした手順になっています。
- Entra を IdP とし、Google Workspace を利用していること
- `Entra ID Premium` のライセンスがあること

また、Entra のプレビュー機能を利用しているため、今後利用できなくなったり、正式リリース時は手順が一部変更になる可能性があります。
:::

# 目次
1. [静的セキュリティグループの作成](#1-静的セキュリティグループの作成)
2. [動的M365グループの作成](#2-動的M365グループの作成)
3. [M365グループの同期設定](#3-M365グループの同期設定)
4. [Googleグループへの権限設定](#4-Googleグループへの権限設定)

# 1. 静的セキュリティグループの作成
管理者のメンバーを直接登録するグループを作成します。
このグループのメンバーが『Entraの管理者』になります。

### (1) セキュリティグループを作成する
Entra ロールの割り当て許可を忘れないようにしましょう。
（あとから変更できません）

![yn10_2024-2-20_19.58 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529930/dd4994ce-dd20-1f1d-f728-3203a5c7a2cf.png)

別に M365グループ にしても問題はないですが、このグループはGWSに同期しませんので、メールアドレスは競合しないようにしましょう。
（どのみち `onmicrosoft.com` のアドレスしか付与できないのですが←）

### (2) 作成したグループにメンバーと役割を設定する
必要に応じ設定しましょう。

### (3) 作成したグループのIDを取得する
『オブジェクトID `group.objectId`』を取得しましょう。
**※次項 2.(2) で利用します**

![yn10_2024-2-20_19.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529930/08028c38-3e5c-38f5-a6fb-982358649251.png)

# 2. 動的M365グループの作成
1.で作成したセキュリティグループをGWSに同期するためのM365グループを作成します。
このグループのメンバーが、『GWSの管理者』になります。

### (1) 動的ユーザーの Microsoft 365 グループを作成する

![yn10_2024-2-20_20.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529930/35a84a45-3614-448f-eac6-219de3c80fd9.png)

### (2) 動的クエリを追加し、保存する
[規則の構文] の [編集] をクリックし、[ルール構文の編集] 画面でクエリを入力し、[OK] → [保存] で追加する。
**※記事執筆時点ではプレビュー機能のため、ルールビルダーは属性に対応していないため利用できません**

![yn10_2024-2-20_20.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529930/16f34731-4261-f5fd-e9a9-8940d43c8dda.png)

手順1.(3)で取得した『オブジェクトID `group.objectId`』を元に、以下の文字列を作成して入力する。
※『`********-****-****-****-************`』に『オブジェクトID』が入る

```Ruby:Dynamic users membership rule
user.memberof -any (group.objectId -in ['********-****-****-****-************'])
```

ちなみに、`or`句でクエリ条件を追加し、複数のセキュリティグループを指定することも可能です（が、`memberof` 以外の条件指定は効きません）

![yn10_2024-2-20_20.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529930/a6cfbaf8-d08c-2c82-7c9c-031e1c339a4e.png)
![yn10_2024-2-20_20.02 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529930/e569deef-99d3-31b0-35a9-ea317f98007e.png)

忘れずに [作成] ボタンを押して、グループを作成する。 

### (3) 作成したグループのプライマリメールアドレスを確認する
`onmicrosoft.com` ではなく、GWSに同期するドメインとなっていることを確認する。

# 3. M365グループの同期設定
2.で作成したM365グループをGWSに同期します。

### (1) M365グループを同期対象に追加する
エンタープライズアプリケーションでGWSの設定を開き、ユーザーとグループ ＞ [ユーザーまたはグループの追加] から、**2.で作成したM365グループ**を追加する。

### (2) 手動同期を行う
プロビジョニング ＞ オンデマンドでプロビジョニング を開き、(1)で設定したグループを選択し、ユーザーをチェックしてから [プロビジョニング] ボタンを押す。
**※ユーザーが居ない場合は、セキュリティグループからのメンバー取得が完了していないので、しばらく待ってリトライする**

![スクリーンショット 2024-02-20 233043.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529930/bd6caff5-72a8-6d7e-11e9-1be1d6f5ef45.png)
![スクリーンショット 2024-02-20 233332.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529930/11c63ca9-2fa3-6ac2-3a83-09d06ef70798.png)

# 4. Googleグループへの権限設定

3.で同期されたGoogleグループに管理者ロールを付与します。

### (1) 『セキュリティ』ラベルの付与
管理者ロールは『セキュリティグループ』にしか付与できませんので、同期されたグループに『セキュリティ』ラベルを付与します。

![yn10_2024-2-20_20.04 (3) - コピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529930/8138b564-4808-10e1-654f-165182fe7367.png)
![yn10_2024-2-20_20.04 (2) - コピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529930/184ecf0d-efab-4313-7eb3-8906ffe1075a.png)
![yn10_2024-2-20_20.04 (3) - コピー - コピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529930/3ef8fc64-e0b6-6dab-4c3c-dcedc3074efb.png)

### (2) 管理者ロールの付与
セキュリティグループになったことで、管理者ロールを付与できるようにっているので、付与する。
**※ただし、特権管理者はユーザーに対してしか付与できないので注意**

![yn10_2024-2-20_20.06 (1) - コピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529930/c5e6a2f7-dd83-5887-6eb8-c7aa124938ea.png)

　

**以上で本手順は完了です。**
　

以後は、1.で作成した Entra のセキュリティグループのメンバーを改廃すると、GWS側の管理者ロールも自動付与されるようになります。

やったぜ！！