コンテンツにスキップ

ZAC と連携する

Synqlet と ZAC を OAuth で連携する手順です。ZAC 側の準備 → Synqlet 側の認証情報登録の順に進めます。

1. ZAC で連携用のユーザーを作成し、権限を付与する

Section titled “1. ZAC で連携用のユーザーを作成し、権限を付与する”
  1. ZAC の マスタ > 社員マスタ から、Synqlet 連携用のユーザーを作成します。
  2. ZAC の マスタ > ライセンスマスタ から、そのユーザーに必要なライセンスを付与します。
  3. ZAC の マスタ > 権限マスタ から、そのユーザーに次の権限を付与します。
    • 必要な操作の権限
    • 必要な操作の社外接続権限

ZAC のマスタ一覧(社員マスタ・ライセンスマスタ・権限マスタ)

2. ZAC で APIアプリケーションマスタを登録する

Section titled “2. ZAC で APIアプリケーションマスタを登録する”

ZAC の APIアプリケーションマスタ画面を開き、次の内容で APIアプリケーションを新規追加します。

ZAC のマスタ一覧の APIアプリケーションマスタ ZAC の APIアプリケーションマスタの新規追加

項目 設定値
アプリケーション名 任意(例: synqlet)
アプリケーションID 任意(例: synqlet)。あとで Synqlet の Client ID に入力します
新しいパスワード 任意のパスワードを決めて入力します。あとで Synqlet の Client Secret に入力します
認証フロー Authorization code flow
リダイレクトURI https://app.synqlet.com/oauth/authorized
アクセストークンの有効期限 86400(24時間)。スクリプトの記述方法と実行時間によりますが、24 時間を指定します
IDトークンの有効期限 300(既定値のままで充分です)
AuthCodeの有効期限 300(既定値のままで充分です)
リフレッシュトークンの有効期限 38880000(450 日。ZAC の最大値)

3. ZAC で、Synqlet 連携用のユーザーにログインし直す

Section titled “3. ZAC で、Synqlet 連携用のユーザーにログインし直す”

ZAC からログアウトし、手順 1 で作成した Synqlet 連携用のユーザーでログインし直します。

このあとの手順 4 で Synqlet から ZAC の認可画面を開くため、ここでログインしているユーザーが、そのまま連携に使われるユーザーになります。

Synqlet の認証情報の一覧画面から「認証情報を作成」で、次の内容を入力します。認証情報タイプには ZAC を選びます。

Synqlet の認証情報の一覧と「認証情報を作成」ボタン

認証情報の作成 ステップ1(名前・認証情報の鍵)

項目 入力内容
名前 任意(例: zac)
認証情報の鍵 あらかじめ作成しておいた鍵を選びます → 認証情報の鍵

認証情報の作成 ステップ2(認証情報タイプで ZAC を選択)

認証情報の作成 ステップ3(ベースURL・Client ID・Client Secret・scope)

項目 入力内容
ベースURL 社外接続の ZAC の画面 URL(例: https://secure.zac.ai/oro/b/daily_report)。社内にランナーを設置して接続できる場合は、社内接続の URL を指定します
Client ID 手順 2 で入力したアプリケーションID
Client Secret 手順 2 で入力したパスワード
scope openid offline_access https://jp.oro.com/ZAC/auth/webapi https://jp.oro.com/ZAC/auth/gateway_access(ZAC タイプを選ぶと既定で入力されています)。社内接続の場合は https://jp.oro.com/ZAC/auth/gateway_access は不要です
直接ブラウザからトークンを取得して暗号化する チェックを付けたままにします
PKCE (Proof Key for Code Exchange) チェックを外したままにします

作成すると ZAC の認可画面が開きます。許可すると連携が完了します。

ZAC の認可画面で「許可する」をクリックする

5. フローのスクリプトノードで使う

Section titled “5. フローのスクリプトノードで使う”

作成した認証情報は、ZAC と連携させるフローのスクリプトノードから利用できます。

import credential from "synqlet:credentials/{認証情報のID}";

外部と通信するため、スクリプトノードのセキュリティフラグで「ネットワークアクセス」を許可してください。

await credential() の書き方には注意点があります(変数に入れて使い回さない、リフレッシュの猶予時間を変えられる)。→ スクリプトを書く