HULFT Squareでアカウント作成業務を自動化してみた！

# はじめに
こんにちは。 モキモキです:v:
今回は<font color="Orange">**HULFT Square**</font>を利用してGoogle Workspace上にアカウント作成・初期設定メール送信を自動化してみました！

:::note info
HULFT Squareは[セゾンテクノロジー](https://www.saison-technology.com/)が提供する国産[iPaaS](https://www.hulft.com/column/glossary-05)です。
:::

本投稿が<font color="Red">**初**</font>なため、ゆる～くで見ていただけると嬉しいです～:bow:

では、紹介していく～～～

:::note warn
注意
本記事はあくまでご参考になります。実際の[マニュアル](https://www.hulft.com/help/ja-jp/HULFTSquare/Content/Home_Top.htm)のご参照や実機でのご検証をお願いいたします。
:::

# きっかけ
あるIT管理業務のお客さんから、
「この仕事をしてて大変なのがSaaSなどのアカウント管理なんですよ～」
とお声があり、<font color="Red">**「セゾンさんどうにかなりませんかね:eyes:」**</font>とご相談を受けました。
確かに、入退社に伴って、アカウントの作成や初期パスワードの案内、削除等が1人ごとにあると思うと、鳥肌が:fearful:

そんな課題をHULFT SquareのようなiPaaSを利用することで解決できるのではと思い、作成してみました！

:::note warn
注意
やってみた記事なため、詳細な設定方法は割愛してますのでご注意ください。
:::
# やることのイメージ
今回やることを図に起こすとこんな感じになります～

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798340/fba80baf-6fdd-a8cc-2915-bfd6f361df44.png)

では解説していく～

# kintoneに人事情報を挿入
今回は人事系SaaSでkintoneを利用してます。

:::note info
ポイント
REST APIを公開している人事系SaaSやDBなどとも連携が可能なため、ご要件に柔軟に対応できるます！
:::

キャプチャのように本間さんの人事情報を登録しました～

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798340/4e2bf351-3ebf-3c5d-eb3d-4834b0543a23.png)

この情報を利用して、Google Workspacs上にアカウントを作成してみます。

# Google CloudでAPIの有効化とスコープの付与を実施
次に、Google Cloudで必要な設定をしていきます。

:::note info
参考記事
[Google APIを利用するために必要な設定](https://qiita.com/___yusuke49/items/7cd47adda20cbc6a16d3)
また、Google Workspacsの[マニュアル](https://developers.google.com/admin-sdk/directory/reference/rest/v1/users/insert?hl=j)も参考にしております。
:::
:::note warn
注意
今回使用するAPIはAdminクラスの権限を使用します。
必要に応じてIAM権限やロールの付与を実施し、ご検証ください。
:::
## 1. APIの有効化
Google Cloudにログインし、プロジェクトを作成します。
その後、APIライブラリから<font color="Red">**Admin SDK API**</font>を有効化します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798340/da6d3be5-a54e-dcb3-aae0-31be8ce2b912.png)

このAPIを有効化することでアカウント管理系のAPIが利用できるようになりました！

## 2. スコープの追加
OAuth同意画面で下記のスコープを追加します。
```
https://www.googleapis.com/auth/admin.directory.user
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798340/b2f9dbf4-3026-8a75-fe7b-48030af79389.png)

あとは指示に従い、必要な情報を入力して完了します。

## 3.OAuthクライアントを作成
最後に、OAuthクライアントを作成します。

[認証情報]から[+認証情報を作成]を選択し、[OAuthクライアントID]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798340/204816b8-00a7-018d-a0fe-ac2e9d0277fa.png)

[アプリケーションの種類]を[ウェブアプリケーション]に設定し、[承認済みリダイレクトURI]に以下のURIを入力します。
```
https://app.square.hulft.com/connections/oauth2/callback
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798340/ee7ac171-707c-d3dd-8f29-c6d26e7e5eba.png)

最後にクライアントIDとクライアントシークレットが発行されるのでメモかCSVファイルをダウンロードしておきます。

:::note warn
注意
HULFT SquareのURIは更新される場合がございます。
最新のURIをご確認いただき、入力するようお願いいたします。
:::

# HULFT Squareの設定
最後に、HULFT Square側の設定とスクリプトを作成します。

## 1. コネクションの作成
まず、接続先の情報を入力します。
今回はRESTによるGoogle CloudとOAuthの設定のみご紹介します。

:::note info
kintoneのコネクション作成方法は[こちら](https://blogs.techvan.co.jp/hulftsquare/hulft-square-%e3%81%a8-kintone-%e3%82%92%e6%8e%a5%e7%b6%9a%e3%81%97%e3%81%a6%e3%81%bf%e3%81%9f%ef%bc%88%e3%82%b3%e3%83%8d%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3%e4%bd%9c%e6%88%90%ef%bc%89/)
:::

### RESTコネクションの作成
HULFT Squareにログインし、[コネクション]から[REST]を選択します。
その後、[URL]に以下を入力します。
```
https://admin.googleapis.com/admin/directory/v1/users
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798340/fca6e6b2-7569-7bd6-1970-0891f6af524a.png)


### OAuthコネクションの作成
上記と同様に[コネクション]から[OAuth2.0]を選択します。
その後、以下の情報を入力し、リフレッシュトークンを取得します。

　クライアントID：`<3.OAuthの認証情報設定時に取得したクライアントID>`
　クライアントシークレット：`<3.OAuthの認証情報設定時に取得したクライアントシークレット>`
　認可エンドポイント：`https://accounts.google.com/o/oauth2/v2/auth`
　トークンエンドポイント：`https://www.googleapis.com/oauth2/v4/token`
　スコープ：`https://www.googleapis.com/auth/admin.directory.user`
　追加パラメータ
 　key：`access_type`,`prompt`
  Value：`offline`,`consent`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798340/80c905f4-943b-817d-dca2-89eea30eea0a.png)
## スクリプトを作成する
コネクションの情報を設定出来たらスクリプトを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798340/95bb6642-95d6-4771-5843-34aca52f45b9.png)

今回は細かな設定は割愛して、2つのポイントのみご紹介します！

### ポイント1. スキーマ登録/パスワード生成
RESTコネクタを利用する場合、Jsonなどのデータ構造を定義します。
今回は以下のスキーマを定義しています。
```Json:Jsonスキーマ
{
   "name": {
     "familyName": "",
     "givenName": ""
   },
   "password": "",
   "primaryEmail": ""
}
```
また、下記キャプチャのように一意な文字列を出力することでアカウント作成時によくある初期パスワードの設定も自動化できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798340/5ce85871-9eb7-7982-e063-a6ee7eb3bcc1.png)

### ポイント2. メール自動送信/初期設定内容を動的指定
HULFT Squareでは変数を設定することが可能であり、これを利用することでメールの宛先やメール本文の内容を動的に指定でき、自動送信することが可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798340/4d271a76-21c5-f0cb-5e59-2f3cb7a4c5cb.png)

# 実行してみて結果を見てみる！
一通りの設定が完了したところで、こちらの処理を実行してみます。
すると、下記キャプチャのようにGoogle Workspacs上にアカウントが作成されたのが見てわかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798340/14f862fc-c93b-8dfa-4373-b1879c88a9cf.png)

また、完了通知のメールも確認でき、変数に指定した値も正常に出力できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798340/6b632ae2-3f43-ea1b-e70b-d30c5e200b66.png)

このように、データを収集するとこから加工・変換・付与を行い、出力するところまでをワンストップで出来ることが確認できました～

# 最後に
ここまでお疲れ様でした～
かなり割愛しましたが、アイコンを並べるだけで簡単に処理を定義できるのが<font color="Orange">**HULFT Square**</font>の良さになってます！！
また、<font color="Orange">**HULFT Square**</font>のようなiPaaSを利用することでアカウント管理が<font color="Red">**楽**</font>になります！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798340/a668d708-27e8-1bf3-65a4-2a4eab6bdb74.png)

今までかなりの時間を要してたアカウント管理の一つとしてiPaaSを是非、ご検討いただければと思います！

では、またの機会に！！