Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

SmartHR Web API を使って、Office365 にユーザー情報を自動的に登録:RSSBus Connect

前回の記事で SmartHR Web API の基本的な機能の確認をしました。

bit.ly

今回は実際にありそうなユースケースベースでお伝えしたいと思います。

シナリオ

SmartHRはおそらく会社の中で一番最初にユーザーを登録する場所なので、そのデータを元に会社の各システムにユーザー情報を連携させる、というニーズが強いんじゃないかなと思います。

そこで、私も個人的に利用しているOffice365 を使って、「新入社員が SmartHRに登録されたら、Office365に新しくユーザーを作成する」というシナリオでシステムを構成してみました。

f:id:sugimomoto:20190115182209p:plain

SmartHR と Office365 の接続にはRSSBus Connectというデータ連携ツールを利用します。

RSSBus Coonectとは?

RSSBus Connectは、ファイル、データベース、またはクラウドアプリケーションのデータをすべて1つのアプリケーションで簡単に統合することができるソフトウェアです。

アプリケーションとデータの接続を行い、Mrketoなどのマーケティングサービスから得た顧客情報をSalesforce等のSFAに連係したり、バイナリファイル転送・EDIによるプロセスの自動化も行うことが可能です。

image.png

RSSBus Connectは以下のようにフロー形式のUIで各データソースを繋ぐようにデータ連携のプロセスを開発することが可能です。

image.png

実行イメージ

処理内容は単純です。以下のような感じで、新しくSmartHRに新入社員が登録されたら

f:id:sugimomoto:20190115182317p:plain

RSSBusConnectがバッチで起動し、SmartHR Web APIを経由して、作成された社員情報を取得。

Office365 ユーザー情報に変換し、GraphAPIを経由してユーザー情報を作成します。

f:id:sugimomoto:20190115182329p:plain

以下のように登録されて完了となります!

f:id:sugimomoto:20190115182341p:plain

これで、新入社員が入るたびにユーザー情報を Office365 に作成する手間が省けるかなと。

RSSBus 利用手順

それでは実際の利用手順を見ていこうと思います。

今回はすでに私が作成したRSSbusのテンプレートがあるので、それをインポートして、認証情報などを設定するだけでサクッと試すことが可能です。

必要なもの

・RSSBus Connect

・Office365 Port

・Office365 アカウント(トライアルあり)

・SmartHR アカウント(トライアルあり)

Office365 ClientIDとClientSecretの取得について

RSSBusの準備を始める前に、Office365 アカウントについて1点注意事項があります。

RSSBus Connectには標準でOffice365 GraphAPIにアクセスするためのClientIDとClientSecretが提供されていますが、セキュリティ上の考慮のため、ユーザーの作成や削除権限が付与されていません。

下記手順でAzure ADに新しくOAuth用のアプリを作成し、対象のアプリにユーザー情報を作成するための権限を付与しておいてください。

kageura.hatenadiary.jp

RSSBus Connect と Office365 Portのインストール

RSSBus Connect は以下のURLからトライアルを取得可能です。

https://www.rssbus.com/

製品のダウンロード後、以下のようなウィザードに従ってインストールを進めます。

f:id:sugimomoto:20190116111423p:plain

そんなに難しい部分はありませんが、インストールやトライアルのアクティベーションは下記のBlogで詳しく解説しています。

qiita.com

Office365 Port のインストール

以下のURLからexeファイルをダウンロードして、インストールを実施します。

https://s3-ap-northeast-1.amazonaws.com/cdatajbuilds/sugimototest/SmartHR/CXTD-A_6950_free.exe

特に難しい設定はないので、そのまま次へ次へと進めればOKです。

f:id:sugimomoto:20190115184948p:plain

RSSBus Connect に SmartHR Script とテンプレートのインストール

現在、RSSBus Connect の標準機能としてSmartHRの接続は提供されていないません。

なので、私が作成しましたSmartHRの接続サンプルを以下のURLからダウンロードして、使ってみてください。

https://s3-ap-northeast-1.amazonaws.com/cdatajbuilds/sugimototest/SmartHR/SmartHR_Office365_UserConnectionTemplate.zip

テンプレートのインストール方法はこちらから。

qiita.com

SmartHR 接続情報の設定

それでは、実際に動かせるように RSSBus Connect の設定作業を進めていきます。

まず、SmartHR Web API を利用してJSONデータを取得している「GetSmartHRCrew」をクリックし、XMLの中の各設定値を変更します。

f:id:sugimomoto:20190115182229p:plain

変更が必要なものは「TenantId」と「AccessToken」です。この部分は前回のBlogでも解説しているので、参考にしてみてください。

必要に応じて、Domainも変更します。現在はサンドボックス環境に接続するために「daruma.space」を指定しています。

ちになみにデフォルトでは、夜の11時くらいに実行して、当日作成されたユーザーを取得する想定で、 SmartHRのWeb APIをリクエストしています。

設定完了後、「Save Changes」ボタンをクリックして、設定を反映させます。

Office365 認証設定

次に「InsertOffice365User」をクリックして、設定を行います。

前述したように、RSSBus Connect には標準でClientIDとClientSecretが提供されていますが、権限が不足しているので、独自に作成したアプリのClientIDとClientSecretを

「Advanced」→「Other」の項目の中に以下のようなフォーマットで入力します。「XXXXXX」の部分をそれぞれの値に差し替えてください。

OAuthClientId=XXXXXXXXXX;OAuthClientSecret=XXXXXX;

f:id:sugimomoto:20190115182235p:plain

次に「Settings」タブに移動して、接続するTenantID(hogehoge.onmicrosoft.com)を入力し、「Connect to Office365」をクリックすれば、OAuth認証が開始されます。

f:id:sugimomoto:20190115182243p:plain

OAuth認証のアクセス許可が承諾されれば、設定完了です。

マッピングの変更

最後に SmartHR のデータを Office365 ユーザーとして登録する際に、どの項目をどこに当てはめるのか? といったマッピングの構成を「XMLMapCrewToUser」で行います。

「XMLMapCrewToUser」をクリックすると、SourceとDestinationそれぞれのタブがあるので、ドラッグアンドドロップなどでマッピングを変更することができます。

f:id:sugimomoto:20190115182255p:plain

今回はユーザーを作成するにあたって必要最低限の以下の項目だけ設定しています。

・AccountEnabled = true を固定値で設定
・DisplayName = SmartHR の姓・名をつないで設定
・MailNickname = SmartHR の社員番号を設定
・UserPrincipalName = SmartHR のEmailを設定
・PasswordProfile_ForceChangePasswordNextSignIn = true を固定値で設定
・PasswordProfile_Password = P@ssw0rd!を固定値で設定

以上で設定は完了です。

手動実行の方法

手動で実行する場合は一番最初のモジュールである「GetSmartHRCrew」の「Output」タブから、「Receive」ボタンをクリックすればOKです。

f:id:sugimomoto:20190115182306p:plain

定期実行の構成

定期的に実行するように構成したい場合は、同じく「GetSmartHRCrew」の「Automation」タブから「Receive」を有効化して、任意の時刻設定を指定するだけです。

f:id:sugimomoto:20190115191417p:plain

おわりに

今回はOffice365 と接続しましたが、他にも RSSBus Connect はADやLDAPといったDirectoryサービスや各種クラウドサービスのコネクタを提供しているので、SmartHRのデータを様々なサービスへ手軽に展開できると思います。

[接続先コネクタ一覧]

f:id:sugimomoto:20190115193219p:plain

是非試してみてください。