For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

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

概要

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

  • どのGoogleグループやユーザーをKeeperにプロビジョニングするかを指定できます。

  • グループは、グループ名またはグループメールアドレスで照合できます。

  • Keeperに割り当てたGoogleグループは、Keeperチームとして作成されます。

  • Keeperチームは、ボルト内の共有フォルダに割り当てられます。

  • グループに追加された新しいユーザーは、自動的にKeeperへ招待されます。

  • グループとユーザーの割り当ては、同期のたびに反映されます。

  • ユーザーのプロビジョニングが解除されると、Keeperアカウントは自動的にロックされます。

  • 処理はクラウド上で完結し、オンプレミスのインフラやサービスは不要です。

  • 希望するスケジュール、またはオンデマンドで実行できます。

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

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

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

Google Cloudにログインし、プロジェクトを作成するか既存のプロジェクトを選択します。プロジェクト名は「Keeper SCIM Push」など任意の名前にします。

新しいGoogle Cloudプロジェクトを作成

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

  • APIs & Services で、[+ ENABLE APIS AND SERVICES] をクリックします。

  • Search for APIs & ServicesAdmin SDK API を入力します。

  • [ENABLE] をクリックします。

APIとサービスを有効にする
Admin SDK APIを有効にする

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

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

  • IAM and Admin メニューで Service accounts を選択します。

  • + CREATE SERVICE ACCOUNT をクリックし、サービスアカウント名に keeper-scim を入力します。

Create Service Account

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

キーとcredentials.jsonの作成

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

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

新しい鍵を作成
JSON形式を選択

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

credentials.jsonとして保存

手順4. Client IDをコピー

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

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

Client IDをコピー

手順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)に貼り付けます。

新しいClient IDを追加

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

手順6. Primary Emailを取得

  • Google Workspace (https://admin.google.com) で [Account] > [Account settings] へ進みます。

  • 以下の手順で使うため、右上の Primary admin メールアドレスをクリップボードにコピーします。

Primary adminのメールアドレスを取得

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

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

新しい共有フォルダを作成

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

ボルトで Keeperシークレットマネージャー を有効にしたうえで、左側のメニューから [シークレットマネージャー] をクリックし、[アプリケーションの作成] を選択します。

アプリケーションの作成

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

アクセストークンの生成

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

アプリケーションを編集
デバイスの追加

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

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

config.base64を保存

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

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

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

KeeperでのSCIM設定

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

プロビジョニングトークンの作成

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

SCIM URLとトークンを保存

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

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

フィールド

ログイン

Google Workspace admin email

パスワード

手順9で生成したSCIMトークン

ウェブサイトアドレス

手順9で生成したSCIM URL

credentials.json

手順3のGoogle Serviceアカウント認証情報の添付ファイル

SCIM Group

プロビジョニングされるすべてのグループのリストを含む複数行のカスタムテキストフィールド。名前はグループメールかグループ名のいずれかとなります。

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

Keeperボルトのレコード

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

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

手順11. Google Cloud Functionを作成

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

Functionの作成

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 を選択します。

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

以下は設定例です。

ランタイムの設定

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

変数を2つ作成します。

  • Name 1をKSM_CONFIG_BASE64、Value 1を手順8で生成したKSM設定ファイルの内容に設定します。

  • Name 2をKSM_RECORD_UID、Value 2を手順10でボルトで作成したレコードUIDに設定します。

Keeperボルトのレコードで情報アイコンをクリックすると、レコードUIDを確認できます。レコードUIDをクリックして値をコピーします。

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

[Allow internal traffic only] (内部トラフィックのみ)

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

NEXTをクリック

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

Cloud Function Code Source
  • 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をコピーします。

手順14. Cloud Schedulerを作成

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

Cloudスケジューラ
  • [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がすぐに実行されます。

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

スケジューラSuccess

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

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

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

破壊操作

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

Destructiveフィールドの値
説明

-1

同期中Keeper側では何も削除されません

0 (デフォルト)

同期中、SCIM で制御されているグループとメンバーシップのみが削除されます (デフォルト設定)

1

同期中、手動で作成されたグループやメンバーシップとSCIMで制御されたグループやメンバーシップが削除されます。

デバッグログ

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

Verboseフィールドの値
説明

0 (デフォルト)

ログなし

1

詳細ログが有効

同期について

  • Keeperは、Cloud Functionによるプロビジョニング時に、グループ名またはグループメールアドレスで完全一致の文字列照合を行います。グループ名とグループメールアドレスは大文字と小文字を区別します。

  • 招待状態のユーザーは、ユーザーがボルトを作成し、Keeper管理者が管理コンソールにログインするまで、割り当て先チームに追加されません。ユーザーのチーム参加は、チームの別メンバーがボルトにログインしたときにも行われます。管理コンソールから [同期] をクリックしても、チーム参加が実行されます。

  • チームの作成など一部の操作は、Keeper管理コンソールへのログイン時、または Keeper Automator の実行時にのみ行われます。暗号化キーの生成が必要なためです。

  • 大規模なデプロイでは、Keeper Automator を設定し、デバイス承認、ユーザー承認、チーム承認のプロセスを自動化することを推奨します。

  • 新しいグループを追加する場合は、Keeperボルトのレコード内リストにグループを追加します (手順10 を参照)。Keeperは、ターゲットを特定する際にグループメールアドレスまたはグループ名のいずれかを照合します。

  • Google Workspaceのネストされたグループは、Keeperと同期する際にフラット化されます。ネストされたグループのユーザーは、Keeper側の親グループに追加されます。

Cloud Function Sourceの更新

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

  • Githubリポジトリ ksm-google-scim のリリースページから新しい source.zip ファイルをダウンロードします。

  • Google Cloudの Cloud Functions 画面を開きます。

  • Cloud Functionの詳細をクリックし、[EDIT] をクリックします。

  • Code をクリックします。

  • Source code で [ZIP Upload] を選択します。

  • コンピュータに保存した source.zip ファイルを選択します。

  • [DEPLOY] をクリックします。

  • 新しい関数がデプロイされるまで数分待ちます。

  • Cloud Scheduler 画面を開きます。

  • [Actions] > [Force Run] をクリックします。

最終更新