> For the complete documentation index, see [llms.txt](https://docs.keeper.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keeper.io/sso-connect-cloud/jp/identity-provider-setup/g-suite-keeper/google-workspace-user-and-group-provisioning-with-cloud-function.md).

# Cloud Serviceを使用したGoogle Workspaceのユーザーとチームのプロビジョニング

Cloud Functionを使用してGoogle Workspaceからユーザーとグループを自動的にプロビジョニングする方法

## 概要 <a href="#overview" id="overview"></a>

Google Cloud Functionを使って、Google WorkspaceからKeeperへユーザーを自動プロビジョニングする手順を取り扱います。対象はユーザー、グループ、ユーザー割り当てです。ユーザーとチームのプロビジョニングには、ライフサイクル管理向けの以下の機能があります。

* どのGoogleグループやユーザーをKeeperにプロビジョニングするかを指定できます。
* グループは、グループ名またはグループメールアドレスで照合できます。
* Keeperに割り当てたGoogleグループは、Keeperチームとして作成されます。
* Keeperチームは、ボルト内の共有フォルダに割り当てられます。
* グループに追加された新しいユーザーは、自動的にKeeperへ招待されます。
* グループとユーザーの割り当ては、同期のたびに反映されます。
* ユーザーのプロビジョニングが解除されると、Keeperアカウントは自動的にロックされます。
* 処理はクラウド上で完結し、オンプレミスのインフラやサービスは不要です。
* 希望するスケジュール、またはオンデマンドで実行できます。

本ページの設定手順で、Google Workspaceアカウントからユーザーとグループをプロビジョニングします。設定には、以下のリソースへのアクセスが必要です。

* ​[Google Cloud](https://console.cloud.google.com/)​
* ​[Google Workspace](https://admin.google.com/)​
* ​[Keeper管理コンソール](https://keepersecurity.com/console)​
* ​[Keeperボルト](https://keepersecurity.com/vault)​
* ​[Keeperシークレットマネージャー](/keeperpam/jp/secrets-manager/overview.md)​

この実装では、最小権限でGoogleとKeeperを安全に統合するためにKeeperシークレットマネージャーを使用します。Keeperシークレットマネージャーをご利用でない場合は、Keeperカスタマーサクセス チームにお問い合わせください。

### 手順1. Google Cloudプロジェクトの作成

[Google Cloud](https://console.cloud.google.com/)にログインし、プロジェクトを作成するか既存のプロジェクトを選択します。プロジェクト名は「Keeper SCIM Push」など任意の名前にします。

<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MB_i6vKdtG6Z2n6zWgJ%2Fuploads%2F31leaYy06OVz8FNbARid%2FScreenshot%202024-02-07%20at%2011.37.18%E2%80%AFAM.png?alt=media&#x26;token=6a3dfdf3-e4e6-4427-bd73-d7e8b6ab3709" alt=""><figcaption><p>新しいGoogle Cloudプロジェクトを作成</p></figcaption></figure>

### 手順2. Admin SDK APIを有効にする

* `APIs & Services` で、**\[`+ ENABLE APIS AND SERVICES`]** をクリックします。
* `Search for APIs & Services` で `Admin SDK API` を入力します。
* **\[`ENABLE`]** をクリックします。

<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MB_i6vKdtG6Z2n6zWgJ%2Fuploads%2FVNem1JA55splCc8DUg3X%2FScreenshot%202024-02-07%20at%2011.38.29%E2%80%AFAM.png?alt=media&#x26;token=d1af8419-9bd3-4717-8adf-5b3d8e6d8e3f" alt=""><figcaption><p>APIとサービスを有効にする</p></figcaption></figure>

<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MB_i6vKdtG6Z2n6zWgJ%2Fuploads%2F876VAD9eQdoUR8wbgN0h%2FScreenshot%202024-02-07%20at%2011.38.56%E2%80%AFAM.png?alt=media&#x26;token=6c24b467-3152-4511-aff6-8fb0e52685e1" alt=""><figcaption><p>Admin SDK APIを有効にする</p></figcaption></figure>

### 手順3. サービスアカウントを作成

ここで作成するサービスアカウントは、Google Workspaceのユーザーとグループ情報へアクセスするために使います。

* `IAM and Admin` メニューで `Service accounts` を選択します。
* **`+ CREATE SERVICE ACCOUNT`** をクリックし、サービスアカウント名に `keeper-scim` を入力します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FOm1stVWxr9veFvPTSnYN%2FScreenshot%202024-02-07%20at%2011.40.32%E2%80%AFAM.png?alt=media&#x26;token=98c865ed-e8ba-4426-9521-3f6be89586b4" alt=""><figcaption><p>Create Service Account</p></figcaption></figure>

新規作成したサービスアカウントでは、`Actions` の3点メニューをクリックして **\[`Manage keys`]** を選択します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FsPEIS89nQ1QnlCtiNB0n%2FScreenshot%202024-02-07%20at%2011.41.37%E2%80%AFAM.png?alt=media&#x26;token=6a921122-a300-4819-917d-aac4c2dd5a8b" alt=""><figcaption><p>キーとcredentials.jsonの作成</p></figcaption></figure>

**\[`ADD KEYS`]** から **\[`Create new Key`]** をクリックし、鍵のタイプとして JSON を選択してから **\[`CREATE`]** をクリックします。

サービスアカウントの認証情報を含むJSONファイルがコンピュータにダウンロードされます。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FBQx0iT0osuztVreWvakX%2FScreenshot%202024-02-07%20at%2011.41.47%E2%80%AFAM.png?alt=media&#x26;token=bd9f29c6-6d1b-4e00-ae7e-1ed903b93901" alt=""><figcaption><p>新しい鍵を作成</p></figcaption></figure>

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FaYMsV8OuSFx00gzC9wrz%2FScreenshot%202024-02-07%20at%2011.41.58%E2%80%AFAM.png?alt=media&#x26;token=80c0e7f5-a83a-4b6f-8b39-95cffad0c337" alt=""><figcaption><p>JSON形式を選択</p></figcaption></figure>

ファイル名を `credentials.json` に変更し、上記のセットアップ手順で作成したKeeper設定レコードに添付ファイルとして追加します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FWdZPRrsZVibtgfsK6oly%2FScreenshot%202024-02-07%20at%2011.42.54%E2%80%AFAM.png?alt=media&#x26;token=a66b11f0-f843-4c9f-9de8-06728b206cb3" alt=""><figcaption><p>credentials.jsonとして保存</p></figcaption></figure>

### 手順4. Client IDをコピー

サービスアカウントを開き、**\[`DETAILS`]** タブから **\[`Advanced Settings`]** へ進みます。

`Domain-wide delegation` で `Client ID` をコピーします。以下の手順で、このClient IDにGoogle Workspace Directoryへのアクセス権を付与します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FBoZ2gZyGwQUh8323tP8R%2FScreenshot%202024-02-07%20at%204.54.19%E2%80%AFPM.png?alt=media&#x26;token=79d32cb8-63f7-4620-9f0d-b9110bedc40d" alt=""><figcaption><p>Client IDをコピー</p></figcaption></figure>

### 手順5. Google Workspaceでサービスアカウントを承認

Google Workspace管理画面 (<https://admin.google.com>) で以下を行います。

* **\[`Security`]** > **\[`API controls`]** へ進みます。
* `Domain wide delegation` の下にある **\[`MANAGE DOMAIN WIDE DELEGATION`]** をクリックします。
* `API Clients` で **\[`Add new`]** をクリックします。
* 前の手順でコピーした `Client ID` を貼り付けます。

以下のテキストを`OAuth scopes (comma-delimited)`に貼り付けます。

{% code overflow="wrap" %}

```
https://www.googleapis.com/auth/admin.directory.group.readonly,https://www.googleapis.com/auth/admin.directory.group.member.readonly,https://www.googleapis.com/auth/admin.directory.user.readonly
```

{% endcode %}

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FyXOkX9R4RgE1oCFzgSJf%2Fimage.png?alt=media&#x26;token=e3d7e64e-44a5-4f05-9215-0a74c26a3773" alt=""><figcaption><p>新しいClient IDを追加</p></figcaption></figure>

**\[`AUTHORIZE`]** をクリックします。これらのスコープにより、サービスアカウントはGoogle Workspace Directoryのユーザー、グループ、メンバーシップへの読み取り専用アクセス権を取得します。

### 手順6. Primary Emailを取得

* Google Workspace (<https://admin.google.com>) で **\[`Account`]** > **\[`Account settings`]** へ進みます。
* 以下の手順で使うため、右上の `Primary admin` メールアドレスをクリップボードにコピーします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2F0vwJSm4ZowmAIAyYWlc1%2Fimage.png?alt=media&#x26;token=505f9eef-88d1-47e6-b9bb-8439985ee62f" alt=""><figcaption><p>Primary adminのメールアドレスを取得</p></figcaption></figure>

### 手順7. Keeperボルトで共有フォルダを作成

Keeperボルトで新しい共有フォルダを作成します。フォルダ名は「Google SCIM Push」など任意の名前で構いません。ユーザー権限とレコード権限は、お好みの設定で問題ありません。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FInTaxY5OwMM7W0LbKor8%2Fimage.png?alt=media&#x26;token=aad9016c-3a51-4582-90d3-2f23289bb1ff" alt=""><figcaption><p>新しい共有フォルダを作成</p></figcaption></figure>

### 手順8. シークレットマネージャーを作成

ボルトで [Keeperシークレットマネージャー](/keeperpam/jp/secrets-manager/overview.md) を有効にしたうえで、左側のメニューから **\[シークレットマネージャー]** をクリックし、**\[アプリケーションの作成]** を選択します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2Frm067Fvg75tWiOFDf1nF%2Fimage.png?alt=media&#x26;token=a6136d08-a7d9-4f2b-88ae-5e5dcc6caca0" alt=""><figcaption><p>アプリケーションの作成</p></figcaption></figure>

アプリケーション名を「Google SCIM Push」などに設定し、**\[アクセストークンの作成]** をクリックします。このトークンは破棄し、このシナリオでは使用しません。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FJrMDoKwzt5sKXrW4e0AQ%2Fimage.png?alt=media&#x26;token=e1e221da-638d-4194-a29f-66da1fc34692" alt=""><figcaption><p>アクセストークンの生成</p></figcaption></figure>

続いて、一覧から「Google SCIM Push」を選択し、**\[編集]**、**\[デバイスの追加]** の順にクリックします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2F1DvC7uH3TanMTKOxRg0K%2Fimage.png?alt=media&#x26;token=6b8aec8f-01e6-421f-847d-6388f338960b" alt=""><figcaption><p>アプリケーションを編集</p></figcaption></figure>

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FeQPW4eRQLW1DgmdBsq5P%2Fimage.png?alt=media&#x26;token=8836f467-0a8d-4c90-82a6-a467320d639d" alt=""><figcaption><p>デバイスの追加</p></figcaption></figure>

設定タイプは Base64 を選択してコンピュータにダウンロードします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FgHT1Tjr7kmmPnmBIdy8T%2Fimage.png?alt=media&#x26;token=e7876eef-0546-4425-b1b2-028c56ce0bcc" alt=""><figcaption></figcaption></figure>

ファイルを `config.base64` としてコンピュータに保存します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FKcllIYbEVK3RKARyj4Y1%2Fimage.png?alt=media&#x26;token=d8a15e85-dc41-4b68-9223-e6cb8528c2bb" alt=""><figcaption><p>config.base64を保存</p></figcaption></figure>

### 手順9. SCIMプロビジョニングメソッドを作成

Keeper管理コンソールで、Google Workspaceノードの **\[プロビジョニング]** タブを開き、**\[メソッドを追加]** をクリックします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FTOUK0LCNqRK3D8tHnrRn%2Fimage.png?alt=media&#x26;token=4cf66bf3-85e5-48b2-9475-45f38ec7f830" alt=""><figcaption></figcaption></figure>

SCIMを選択して **\[次へ]** をクリックします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FLmRQTOf7i73clUwzOJvU%2Fimage.png?alt=media&#x26;token=61f98f36-1bd3-4119-b5bc-d6164afb4f63" alt=""><figcaption><p>KeeperでのSCIM設定</p></figcaption></figure>

**\[プロビジョニングトークンを作成]** をクリックします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FgmPUn2jeHkLJfja8C38I%2Fimage.png?alt=media&#x26;token=01746824-faf6-45e5-8786-d72453139c56" alt=""><figcaption><p>プロビジョニングトークンの作成</p></figcaption></figure>

画面に表示されたURLとトークンは、以下の手順で使います。URLとトークンをファイルに一時保存してから **\[保存]** をクリックしてください。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FtSzvPVZPecZ3BNtZF1fd%2Fimage.png?alt=media&#x26;token=05191cc7-3be7-4b92-835d-d9a4cbd775b8" alt=""><figcaption><p>SCIM URLとトークンを保存</p></figcaption></figure>

{% hint style="warning" %}
URLとトークンを必ず保存してから **\[保存]** をクリックしてください。これらの値は以下の手順で必要になります。
{% endhint %}

### 手順10. 共有フォルダでKeeperレコードを作成

手順7で作成した共有フォルダ内に、以下のフィールドを含むレコードを作成します。

<table><thead><tr><th width="209">フィールド</th><th>値</th></tr></thead><tbody><tr><td><strong>ログイン</strong></td><td>Google Workspace admin email</td></tr><tr><td><strong>パスワード</strong></td><td>手順9で生成したSCIMトークン</td></tr><tr><td><strong>ウェブサイトアドレス</strong></td><td>手順9で生成したSCIM URL</td></tr><tr><td><strong>credentials.json</strong></td><td>手順3のGoogle Serviceアカウント認証情報の添付ファイル</td></tr><tr><td><strong>SCIM Group</strong></td><td>プロビジョニングされるすべてのグループのリストを含む複数行のカスタムテキストフィールド。名前はグループメールかグループ名のいずれかとなります。</td></tr></tbody></table>

指定したグループと、そのグループに属するユーザーがKeeperにプロビジョニングされます。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2F7rS8BJ7OUwoO3agR4pz5%2Fimage.png?alt=media&#x26;token=7e068f72-a8c5-415b-9408-2a2d1bd7f6aa" alt=""><figcaption><p>Keeperボルトのレコード</p></figcaption></figure>

{% hint style="info" %}
グループのリストには、グループメールアドレスまたはグループ名のいずれかを指定できます。Keeperはいずれかの値を照合し、関連するユーザーとグループをプロビジョニングします。グループ名とグループメールアドレスは**大文字と小文字を区別**します。
{% endhint %}

この時点で、Keeper側の設定は完了です。残りの手順は、Google CloudコンソールでCloud Functionを設定します。

### 手順11. Google Cloud Functionを作成

Google Cloudコンソールで `Cloud Functions` を開き、**\[関数を作成]** をクリックします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FprS04IC30dwnDlqAmPcZ%2Fimage.png?alt=media&#x26;token=c36f19b7-1ea5-4736-bf6f-7c8fcd812681" alt=""><figcaption><p>Functionの作成</p></figcaption></figure>

#### **Basics:**

* Environment (環境) に `2nd gen` (第2世代) を選択します。
* Function name (関数名) は `keeper-scim-push` にします。
* Region (地域) は任意の地域を選択し、後で参照できるようメモしておきます。
* Trigger type は HTTPS にします。
* Authentication (認証) は **`Require authentication`** (認証が必要) にします。

#### **Advanced -> Runtime:**

* Memory allocated (メモリの割り当て) : 256MiB
* CPU: 0.333
* Timeout (タイムアウト) : 120秒
* Concurrency (同時実行) のコンテナあたりの最大リクエスト数: 1
* Autoscaling (自動スケーリング) のインスタンスの最小数 : 0
* Autoscaling (自動スケーリング) のインスタンスの最大数 : 1
* Runtime service account (ランタイムサービスアカウント) で **`Default compute service account`** を選択します。

{% hint style="info" %}
Default compute service account がまだ存在しない場合は、一時的に別のアカウントを選択して保存し、あとからサービスアカウントを編集します。
{% endhint %}

以下は設定例です。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FOnNogqbvxpBVyN9NbZeY%2Fimage.png?alt=media&#x26;token=e48c2576-41e9-4f7d-8fa6-735c29bff1b4" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FJ8B9p5nCWSZ85L9Ocx18%2Fimage.png?alt=media&#x26;token=f246ae36-586d-43eb-8304-d6e8057658fd" alt=""><figcaption><p>ランタイムの設定</p></figcaption></figure>

#### **Runtime environment variables (ランタイム環境変数)**

変数を2つ作成します。

* Name 1を`KSM_CONFIG_BASE64`、Value 1を手順8で生成したKSM設定ファイルの内容に設定します。
* Name 2を`KSM_RECORD_UID`、Value 2を手順10でボルトで作成したレコードUIDに設定します。

{% hint style="info" %}
Keeperボルトのレコードで情報アイコンをクリックすると、レコードUIDを確認できます。レコードUIDをクリックして値をコピーします。
{% endhint %}

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FH4WQkohayKneDYEfOU9j%2Fimage.png?alt=media&#x26;token=98c295f6-577a-40c2-b4a8-c67ce8340d92" alt=""><figcaption></figcaption></figure>

**\[CONNECTIONS]** をクリックし、**\[Allow internal traffic only]** (内部トラフィックのみ) を選択します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FIF3OSdtoUBpY6CGKlJFN%2Fimage.png?alt=media&#x26;token=9b04c382-aa30-46d8-a3f5-6d17c474a67d" alt=""><figcaption><p>[Allow internal traffic only] (内部トラフィックのみ)</p></figcaption></figure>

下へスクロールして **\[`NEXT`]** (次へ) をクリックし、Cloud Function Sourceをアップロードします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FQWLEzlleSLhb4gG6FNVr%2Fimage.png?alt=media&#x26;token=c302ea99-5d56-4b20-86e1-4c1fb06eedb9" alt=""><figcaption><p>NEXTをクリック</p></figcaption></figure>

### 手順12. Cloud Function Sourceをアップロード

* Keeper Google SCIM Pushのリリースページへ移動します。\
  <https://github.com/Keeper-Security/ksm-google-scim/releases>
* \*\*`source.zip`\*\*ファイルをダウンロードしてコンピュータに保存します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FL2MHnTfAO2Gc8XgrtpBB%2Fimage.png?alt=media&#x26;token=16b86bec-bdc9-4718-b0a5-5fab786e44e4" alt=""><figcaption><p>Cloud Function Code Source</p></figcaption></figure>

* Runtime (ランタイム) は「`Go 1.21`」にします。
* Source code (ソースコード) には`Zip Upload`を選択します。
* Entry point (エントリーポイント) には`GcpScimSyncHttp`を入力します。
* Zip upload (Zipアップロード) のDestination bucketには、デフォルトバケット許可 (非公開) を用いて任意の名前のバケットを作成します。
* Zip file (Zipファイル) : 前の手順で保存した`source.zip`を アップロードします。

**\[`DEPLOY`]** をクリックしてクラウド関数を作成します。数分後、関数が作成され公開されます。

この関数はプライベートで認証が必要なため、以下の手順でCloud Schedulerを作成します。

### 手順13. Cloud Function URLをコピー

Cloud Function画面で、以下のとおりURLをコピーします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2Fxt5AmNj2iEI4SiREzbMY%2Fimage.png?alt=media&#x26;token=d137ba71-a7eb-48ef-860b-425ca76c912e" alt=""><figcaption></figcaption></figure>

### 手順14. Cloud Schedulerを作成

Google Cloudコンソールで Cloud Scheduler を検索して開きます。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FcPyHnM4fVEjdFmbcygxd%2Fimage.png?alt=media&#x26;token=678c71e5-4f64-438e-b7c1-cbd4d58e4cd4" alt=""><figcaption><p>Cloudスケジューラ</p></figcaption></figure>

* **\[`SCHEDULE A JOB`]** をクリックします。

#### スケジュールの設定例

* 「Keeper SCIM Push for Google Workspace」など、任意の名前を付けます。
* 1時間に1回実行する場合は `0 * * * *` など、頻度を設定します。
* ロケーションに応じてタイムゾーンを設定します。
* Target type (ターゲットタイプ) は `HTTP` にします。
* URL は手順13でコピーしたCloud Function URL に設定します。
* HTTP method (HTTPメソッド) は `GET` にします。
* Auth Header (Authヘッダ) は `Add OIDC token` にします。
* Service account は `Default compute service account` に設定します。
* **\[`CONTINUE`]**、**\[`CREATE`]** の順にクリックします。

### 手順15. Schedulerをテスト

Scheduler Jobs画面にジョブが表示されます。強制実行するには、右側のオーバーフローメニューをクリックし、**\[`Force run`]** を選択します。

Cloud Functionがすぐに実行されます。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FiuarjVaEMbfHhm1bAKQi%2Fimage.png?alt=media&#x26;token=160bf6c7-0e87-4310-a136-d3045c87b6a6" alt=""><figcaption></figcaption></figure>

成功すると、**\[Status of last execution]** (最後の実行のステータス) に **\[Success]** (成功) と表示されます。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2F1Z9gtY6dqXVRwaoK7U4f%2Fimage.png?alt=media&#x26;token=0ad25b71-a6da-40ad-9669-3fca1c3e1942" alt=""><figcaption><p>スケジューラSuccess</p></figcaption></figure>

Keeperが同期情報を受信したことを確認するには、Keeper管理コンソールにログインします。保留中、招待中のユーザー、チーム、チーム割り当ての一覧が表示されます。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FCUhNtqZAmBeCdIg8WDSQ%2Fimage.png?alt=media&#x26;token=f40878bc-1a08-4848-bc76-657d94ad6e93" alt=""><figcaption></figcaption></figure>

### 手順16. ローカルファイルを削除

処理が正常に動作することを確認したら、この手順で作成したローカルファイルとシークレットをすべて削除します。

{% hint style="warning" %}
コンピュータ上の以下のようなローカルファイルや一時ファイルをすべて削除してください。

* config.base64 ファイル
* credentials.json ファイル
* SCIMトークン
* その他、この手順で作成したスクリーンショットやローカルファイル
  {% endhint %}

### 破壊操作

デフォルトでは、Keeper管理コンソール内の管理対象外チームとチーム割り当ては、同期処理中に削除されません。管理対象外のチームとチーム割り当てもすべて削除する同期方法が必要な場合は、Keeperレコードにカスタムフィールドを作成し、特定の値を設定します。

<table><thead><tr><th width="257">Destructiveフィールドの値</th><th>説明</th></tr></thead><tbody><tr><td>-1</td><td>同期中Keeper側では何も削除されません</td></tr><tr><td>0 (デフォルト)</td><td>同期中、SCIM で制御されているグループとメンバーシップのみが削除されます (デフォルト設定)</td></tr><tr><td>1</td><td>同期中、手動で作成されたグループやメンバーシップとSCIMで制御されたグループやメンバーシップが削除されます。</td></tr></tbody></table>

### デバッグログ

Keeperレコードを変更することで、Google Cloud Functionログに詳細なログを作成できます。

| Verboseフィールドの値 | 説明      |
| -------------- | ------- |
| 0 (デフォルト)      | ログなし    |
| 1              | 詳細ログが有効 |

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FncpuIJiAeWzvBQiwdTiJ%2Fimage.png?alt=media&#x26;token=baafc5fe-4801-4e5f-bfd8-0cbc5ccc7478" alt=""><figcaption></figcaption></figure>

### 同期について

* Keeperは、Cloud Functionによるプロビジョニング時に、グループ名またはグループメールアドレスで完全一致の文字列照合を行います。グループ名とグループメールアドレスは**大文字と小文字を区別**します。
* 招待状態のユーザーは、ユーザーがボルトを作成し、Keeper管理者が管理コンソールにログインするまで、割り当て先チームに追加されません。ユーザーのチーム参加は、チームの別メンバーがボルトにログインしたときにも行われます。管理コンソールから **\[同期]** をクリックしても、チーム参加が実行されます。
* チームの作成など一部の操作は、Keeper管理コンソールへのログイン時、または [Keeper Automator](/sso-connect-cloud/jp/device-approvals/automator.md) の実行時にのみ行われます。暗号化キーの生成が必要なためです。
* 大規模なデプロイでは、[Keeper Automator](/sso-connect-cloud/jp/device-approvals/automator.md) を設定し、デバイス承認、ユーザー承認、チーム承認のプロセスを自動化することを推奨します。
* 新しいグループを追加する場合は、Keeperボルトのレコード内リストにグループを追加します ([手順10](#id-10-forudadekeeperwo) を参照)。Keeperは、ターゲットを特定する際にグループメールアドレスまたはグループ名のいずれかを照合します。
* Google Workspaceのネストされたグループは、Keeperと同期する際にフラット化されます。ネストされたグループのユーザーは、Keeper側の親グループに追加されます。

### Cloud Function Sourceの更新

Cloud Functionの新しいバージョンがリリースされた場合、コードの更新は以下の手順で行えます。

* Githubリポジトリ ksm-google-scim の[リリースページ](https://github.com/Keeper-Security/ksm-google-scim/releases)から新しい `source.zip` ファイルをダウンロードします。
* Google Cloudの Cloud Functions 画面を開きます。
* Cloud Functionの詳細をクリックし、**\[`EDIT`]** をクリックします。
* **Code** をクリックします。
* Source code で **\[ZIP Upload]** を選択します。
* コンピュータに保存した `source.zip` ファイルを選択します。
* **\[`DEPLOY`]** をクリックします。
* 新しい関数がデプロイされるまで数分待ちます。
* Cloud Scheduler 画面を開きます。
* **\[Actions]** > **\[Force Run]** をクリックします。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.keeper.io/sso-connect-cloud/jp/identity-provider-setup/g-suite-keeper/google-workspace-user-and-group-provisioning-with-cloud-function.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
