生体認証IDマッピング

生体認証IDマッピング

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

Biometric ID マッピングとは?

従業員の出退勤用に生体認証デバイスの設定が完了したら、ID マッピングを行い、デバイス側のマッパー ID を Zoho People の従業員 ID にリンクできます。これにより、すべての従業員が生体認証デバイスを使って安全かつシームレスに出退勤できるようになります。

Biometric ID マッピングに関するヘルプ動画を見る


従業員の出退勤用に生体認証デバイスを設定する

詳細については、添付ドキュメントを参照してください。

Zoho People の従業員 ID とのマッピング

ユーザー ID マッピングを追加する、または既存のマッピングを表示するには、[Operations > Attendance > Biometric ID Mapping] に移動します。



[Add User ID Mapping] をクリックして、新しいマッピングを設定します。省略記号 () アイコンをクリックすると、設定のインポート、エクスポート、ダウンロードができます。
Idea
添付ファイルをダウンロード - Zoho People Biometric Integration(メインリンク)

Biometric 連携

生体認証の勤怠データは、次の 2 つの方法のいずれかで Zoho People と連携できます。
  1. API
  2. プラグイン

API を使用した連携方法

以下の API を使用して、生体認証アプリケーションから Zoho People アプリケーションに直接勤怠データを送信できます。この設定は、お客様側(生体認証デバイスのベンダー、またはお客様の IT チーム)の責任で行ってください。この方法が利用可能かどうか、生体認証デバイスのベンダーにご確認ください。
Notes
この API には、1 分あたり 10 リクエストの上限と、5 分間のロック時間が設定されています。

API の認可
:認証トークンを生成する手順については、以下のドキュメントを参照してください。

プラグインを使用した連携方法

別の方法として、Tomcat サーバー上でプラグインを設定し、生体認証デバイスと Zoho People を連携することもできます。

用語集

用語
定義
Biometric Device
顔認証、指紋認証、掌紋認証などの生体的・行動的特性によって本人確認と認証を行うために作られた電子機器です。
Tomcat Server
Java Servlet コンテナの一種で、WebSocket API、JavaServer Pages、Java Servlet など、複数の Java エンタープライズ仕様を実装したオープンソースソフトウェアです。
MySQL (Database)
MySQL はオープンソースのリレーショナルデータベース管理システムです。オープンソースの GPL ライセンスにより、開発者は自分の環境に合わせて MySQL ソフトウェアを変更できます。
Microsoft Access
Microsoft Access は、Microsoft が提供するデータベース管理システムで、リレーショナル Access Database エンジンにグラフィカルユーザーインターフェイスとソフトウェア開発ツールを組み合わせたものです。
Microsoft SQL Server
Microsoft SQL Server はリレーショナルデータベース管理システムです。他のソフトウェアアプリケーションからの要求に応じてデータを保存および取得することを主な機能とするソフトウェア製品です。

前提条件

当社では、MS SQL Server、MS Access、MySQL データベースと、以下に記載するクエリ形式をサポートしています。
Notes
連携作業を進めるにあたっては、IT 担当者またはバイオメトリクス機器のベンダーに同席してもらうことが重要です。

クエリ要件

データベース: 以下と同じクエリ形式で、MS SQL SERVER、MS Access および MySQL データベースをサポートしています。

'SELECT employeeID, eventTime, isCheckin, downloadDate FROM Attendance'

*employeeID - Zoho People の従業員 ID と同一である必要があります
*eventTime - 出退勤の打刻時刻(日時形式)
*ischeckin - 1/0(1 は出勤、0 は退勤を表します)
*downloadDate - 勤怠データがデータベースに送信された日時(日時形式)

参考として、サンプルのデータベーステーブルのスクリーンショットを以下に添付しています。


Notes
  1. テーブル内に downloadDate 列が存在しない場合、SQL DB から Zoho People へすべてのデータが確実に送信されることを保証できず、データ欠損が発生する可能性があります。
  2. 従業員に複数のシフトがある場合は、そのすべてを Zoho People 上でシフトとして設定しておく必要があります。
  3. バイオメトリクス ID が Zoho People の従業員 ID と異なる場合は、Zoho People の [運用] > [勤怠] > [バイオメトリクス ID マッピング] でバイオメトリクス ID をマッピングする必要があります。
  4. この連携は、バイオメトリクスデータが保存されているサーバーシステムに完全に依存します。システムの不適切なシャットダウンなどによりサーバーがクラッシュまたは再起動した場合、設定ページが破損する可能性があります。そのような場合は、連携設定を再構成する必要があります。

必要なソフトウェア

  1. Apache Tomcat 9 - https://tomcat.apache.org/download-90.cgi(Windows サービスインストーラー)
  2. Java - https://www.openlogic.com/openjdk-downloads(最新バージョン、OS に応じたもの)
Warning
連携作業時には、必ずバイオメトリクス機器のベンダーまたは IT チームに同席してもらってください。

手順

Java と Tomcat アプリケーションがダウンロードおよびインストールされていることを確認します。ローカルディスク C > Program Files または Program Files (x86) > に JAVA/Tomcat がインストールされているか確認し、インストールされていない場合は両方のソフトウェアをインストールします。

Tomcat 設定

  1. サービス名: Tomcat8ZohoPeople
  2. Shutdown Port: 8989
  3. コネクタポート / Tomcat サーバーポート: 8584(このポートが他のサービスで使用されていないことを確認してください)
  4. OpenLogic Java のファイルパスを選択します: C ドライブ > Program Files / Program Files (x86) / OpenLogic / jdk <バージョン>
  5. スタートアップの種類: [スタート] > [サービス] を検索 > Tomcat8Zoho(右クリック)> [プロパティ] > [スタートアップの種類] > [自動] に設定

War ファイルのインストール

  1. 以下のリンクをクリックして war ファイルをダウンロードします。
    https://www.zoho.com/people/downloads/ZAttendance.war
  2. ローカルディスク C > Program Files > Apache Software Foundation > Tomcat8 > webapps に移動し、war ファイルを貼り付けて更新すると、ファイルが展開されます。
  3. プラグインページへのルーティング: URL http://localhost:8584/ZAttendance でプラグインページが表示できるか確認します。

プラグイン設定手順

  1. プラグインページ右上の [設定] ボタンをクリックして設定ページを開き、データベースの種類を選択します。

  2. 項目の下に表示されている接続 URL の例をコピー&ペーストし、データベース名を更新します。

    データベースインスタンスのポート番号を適宜変更します。
    MS SQL の場合: Program Files C > Windows > SysWOW64 > sql_server_manager > SQL Server Network
    Configuration > Protocol SQLExpress > TCP/IP > IP アドレス > TCP ポート: 1433 > [適用] > [OK]。
    (または)
    [スタート] > 検索 > [コンピューターの管理] > [SQL Server ネットワークの管理] または
    [構成](左側 2 番目のオプション)> [TCP/IP] > [IP アドレス] > TCP ポート: 1433 > [適用] > [OK]。

    MySQL の場合 - 既定のポート番号は 3306 です。

    MS Access の場合 - データベースパスを追加し、スラッシュをバックスラッシュに変更します。

  3. データベースのユーザー名とパスワードを追加します。MySQL の既定のユーザー名は「root」、MS Access の既定のユーザー名は「admin」です。

  4. Delay 時間と Sleep 時間を 5 分に設定します(推奨される最小時間)。

  5. SQL クエリ設定

    すべての列が要件どおりに存在する場合:
    固定テーブルの場合:
    SELECT [employeeID] as employeeId, ischeckin as isCheckin, [eventTime] as eventTime, [DownloadDate] FROM [ZAttendance].[dbo].[Att-checkin] where DownloadDate>=$1 and DownloadDate<$2

    動的テーブルの場合:
    SELECT [employeeID] as employeeId, ischeckin as isCheckin, [eventTime] as eventTime, [DownloadDate] FROM #Tablename_%M_%Y# where DownloadDate>=$1 and DownloadDate<$2

    DownloadDate 列が存在しない場合(Delay 時間は 1〜2 時間に設定):

    SELECT [Id] as employeeId, case [Checkin] when 'IN' then 1 when 'OUT' then 0 end as isCheckin, [EventTime] as eventTime FROM [ZAttendance].[dbo].[Att-checkin] where eventTime>=$1 and eventTime<$2

    テーブル内で IN/OUT の区別がされていない場合:

    各打刻を Zoho へ IN/OUT 両方として送信する:

    SELECT [empid] as employeeId, '1' as isCheckin, [EventTime] as eventTime, [downloaddate] FROM [ZAttendance].[dbo].[Att_noCheck] where DownloadDate>=$1 and DownloadDate<$2
    UNION
    SELECT [empid] as employeeId, '0' as isCheckin, [EventTime] as eventTime, [downloaddate] FROM [ZAttendance].[dbo].[Att_noCheck] where DownloadDate>=$1 and DownloadDate<$2

    (または)

    IN/OUT を交互の打刻として扱う場合:

    SELECT [Id] as employeeId ,[EventTime] as eventTime ,[DownloadDate] FROM
    [ZAttendance].[dbo].[Att-checkin] where DownloadDate>=$1 and DownloadDate<$2

    Tomcat > config.properties > url を bulkImport ではなく bulkImportRawEntry に変更してください。

  6. 認証トークンの生成:
    api-console.zoho.in(またはご利用の DC に応じて .com / .eu)にアクセスし、Self Client タイプのクライアントを作成して、クライアント IDクライアントシークレット をコピーし、プラグインページに貼り付けます。

    [Generate Code] タブでコードを生成します。
    Scope: ZohoPeople.attendance.ALL
    有効期間: 10 分
    説明: BI

    リフレッシュトークンの生成: クライアント ID / クライアントシークレット / コードを入力し、DC を選択して
    [Generate] をクリックし、生成されたリフレッシュトークンをコピーして、プラグインページのリフレッシュトークン項目に貼り付けます。

    トークンは、権限設定で Zoho の役割/Role が「admin」に設定されている管理者アカウントで作成されていることを確認してください。

  7. タイムゾーンの更新: ご利用の拠点のタイムゾーンを選択します。データベース内の勤怠データのタイムゾーンと、管理者アカウントのタイムゾーンが同じであることを確認してください。

  8. 手動テストと送信: テスト用に、任意の 1 名の従業員データを同期します。SQL クエリの where 句以降で、downloadDate 列名を EventTime 列名に変更し、以下のように従業員 ID のフィルターを追加します。

    SELECT [Id] as employeeId, [Checkin] as isCheckin, [EventTime] as eventTime , [DownloadDate] FROM [ZAttendance].[dbo].[Att-checkin] where EventTime>=$1 and EventTime<$2 and Id='1001'

    [手動同期] タブで「データ件数を取得」をクリックしてデータを取得し、「アップロード」をクリックして Zoho People にデータを送信します。

  9. テストが完了したら、プラグインページで [再開] をクリックして同期を自動化します。

  10. 今後の参照のために URL をブックマークし、Tomcat フォルダー外に config.xml ファイルのバックアップを取得しておいてください。

Q&A とよくある問題の対処

1. 利用可能な連携の種類/方法は何ですか?
バイオメトリクス勤怠データ連携には、API とプラグインの 2 種類があります。
2. 連携において Zoho People がサポート/推奨しているデバイスは何ですか?
Zoho People API を利用できる、またはプラグイン連携の前提条件を満たす任意のデバイスを Zoho People アプリケーションと連携できます。
3. クラウドベースのサーバーシステム経由でプラグイン連携を行うことはできますか?
はい。サーバーに Windows の GUI が搭載されている場合は可能です。

4. downloadDate 列と eventTime 列はそれぞれ何を表しますか?
downloadDate 列は、データがローカルの勤怠データベースに取り込まれた日時を表し、eventTime 列は、バイオメトリクス機器で出勤/退勤の打刻が行われた日時を表します。
5. プラグインページから手動でデータを同期する方法
  1. Sync を停止をクリックし、続いて設定をクリックします。
  2. SQL クエリの where 句の後にある downloadDate を、テーブルの列名に合わせて eventTime に変更し、保存ボタンをクリックします。
  3. 同期されていないデータがある日付範囲について、手動同期を完了させる必要があります。
  4. 設定をクリックします。SQL クエリ内の eventTime を、テーブルの列名に合わせて downloadDate に戻し、開始時刻を現在時刻に変更して同期を自動化します。
  5. 保存ボタンをクリックし、Sync を再開をクリックします。
6. 設定ページが空、またはプラグインページに「Sync を再開」「Sync を停止」の両方のボタンが表示され、ボタンをクリックしても設定ページが開かない(プラグインページの破損/一部破損)
  1. Sync を開始をクリックし、その後Sync を停止をクリックします。
  2. Sync を開始ボタンのみが表示され、設定ページを開いても空の場合は、詳細情報を再入力する必要があります。
  3. バックアップフォルダーがある場合は、バックアップフォルダーから.configファイルをコピーし、Tomcat フォルダーに貼り付けて既存の.configファイルを置き換えます。
  4. プラグインページを更新します。Zoho People に同期されていない過去データについて、手動同期を実行します。
  5. 同期は自動化することもできます。
  6. それでも設定ページが開かない場合は、プラグインページを再設定する必要があります。
  7. 再設定が完了したら、.configファイルのバックアップを取得しておくことで、同じ問題が再発した際に CX が利用できます。
7. Tomcat Catalina ログで「GC overhead limit exceeded」エラーが表示される
  1. Java アプリケーション用の Tomcat のメモリサイズを増やす必要があります。
  2. C > Program Files/Program Files(X86) > Apache Software Foundation > Tomcat > bin フォルダー に移動し、tomcatw.exe を開き、[Java]タブで初期メモリプールと最大メモリプールを増やします。
8. Catalina ログに「指定された日付範囲が 31 日を超えています」と表示される
質問 5 の手動同期の手順に従ってください。
9. Tomcat Catalina ログで「Exception @getLastUpdatedTime{0}」が発生する
  1. [サービス]を開き、Apache Tomcat サービスを停止します。
  2. エクスプローラーで C > Program Files/Program Files(X86) > Apache Software Foundation > Tomcat フォルダーに移動します。
  3. lastupdatedtime ファイルを削除します。
  4. [サービス]を開き、Apache Tomcat サービスを開始します。
  5. 同期されていないデータがある日付範囲について手動同期を完了し、その後、開始時刻を変更して同期を自動化します。
  6. Sync を再開をクリックします。
10. プラグインページでトークンが無効になる/アクセストークンが見つからない
認証トークンを再生成して置き換えることで、この問題を解決できます。
  1. プラグインページでSync を停止ボタンをクリックして同期を停止します。
  2. Tomcat フォルダー(C > Program Files/Program Files(X86) > Apache Software Foundation > Tomcat)からトークンファイルを削除します。
  3. 認証トークンを生成します。
  4. api-console.zoho.in(または DC に応じて .com / .eu)にアクセスし、クライアント種別Self Clientを作成してクライアント IDクライアントシークレットをコピーし、プラグインページに貼り付けます。
  5. Generate Codeタブでコードを生成します。
    Scope:ZohoPeople.attendance.ALL
    有効期限:10 分
    説明:BI
  6. Refresh Token の生成:クライアント ID/クライアントシークレット/コードを入力し、DC を選択して[Generate]をクリックし、生成された値を Refresh Token 項目にコピー&ペーストします。
  7. トークンは、権限で Zoho ロールが「admin」に設定されている管理者アカウントで作成されていることを確認します。
  8. 設定が完了したら、保存をクリックします。
  9. Sync を再開をクリックして同期を自動化します。
11. 連携用の Direction 列が存在しない、またはデータベーステーブルに入退室の区別がない
回避策:
  1. 各打刻を入退両方として送信する - この場合、合計勤務時間の算出には、利用可能な最初と最後の打刻が使用されます。各打刻は入退両方として送信されます。ただし、ステータスは「office in」としては表示されません。
  2. 打刻を交互に送信する - 打刻数が偶数(例:4)の場合は、最初と最後の打刻を使用して合計時間を計算します。打刻数が奇数(例:3)の場合は、最初と 2 回目のみを使用します。最初に利用可能な退室打刻が 2 回目の打刻となるためです。
12. 連携用の DownloadDate 列が存在しない
プラグイン側で遅延時間を設定し、試行しながら(最小 4 時間)その時間に基づいて同期することができます。

13. Tomcat Catalina ログでデータ件数がすべて 0 になる
最終更新時刻から現在時刻までの間に、データベーステーブルに利用可能なデータがありません。CX に対して、バイオメトリクス機器のベンダー/IT チームに確認し、データをダウンロードしてもらうよう依頼できます。

14. 連携時に Tomcat のバージョンが 10 より新しい場合、Tomcat ページが読み込まれない
  1. Tomcat フォルダー > bin フォルダー に移動します。
  2. context ファイルの <context> タグ内に、以下の行を追加します。
    <Loader jakartaConverter='TOMCAT' />
15. 連携において、バイオメトリクスベンダー側の API を使用できますか?
いいえ、現時点ではサポートされていません。ベンダー側のデータの取得およびアップロードには、Zoho People API を使用できます。
16. 従業員 ID の勤怠データがスキップされ、同期されない
  1. Zoho People とデータベーステーブルの従業員 ID を確認し、一致していることを確認します(一致していない場合は、バイオメトリクス ID のマッピングを行う必要があります)。
  2. ID マッピングは、Zoho People の[Operations] > [Attendance] > [Biometric ID-Mapping] > [ユーザーを追加/一括インポート](三点リーダーアイコン)から実行できます。
17. Tomcat ログに「java.sql.SQLException: no suitable driver found for」と表示される
  1. SQL インスタンスのポート番号が正しく設定されていない可能性があります。
  2. DownloadDate 列は、データがローカルの勤怠データベースにダウンロードされた日時を表し、EventTime 列は、バイオメトリクス機器で入退室打刻が行われた日時を表します。
18. 「java.sql.SQLException: Cannot open database 'databaseName' requested by the login. The login failed.」
  1. プラグインページで設定している SQL データベースのユーザー名またはパスワードが正しくない可能性があります。
  2. プラグインで使用しているものと同じ認証情報を使って SQL に再接続し、SQL のユーザー名/パスワードが正しいかを確認してください。
19. プラグインページの遅延時間を短くできますか?
はい、短くすることは可能ですが、データがリアルタイムでデータベースにダウンロードされていることを保証する必要があります。バイオメトリクス端末からデータベースへの取り込みに遅延がある場合、その打刻は同期されない可能性がありますので、すべての打刻が同期されることは保証できません。

20. 「Sync の再開」ボタンと「設定」ボタンが動作しません。
Tomcat の破損が原因の可能性があります。Tomcat を再インストールし、別のポート番号を使用してプラグインを新規に再設定してください。
21. 同期が実行されず、プラグインページも読み込まれません。
  1. 正しいポート番号を使用しているか確認してください。
  2. [サービス]で Tomcat サービスが実行中かどうかを確認してください。
  3. 停止している場合は、Tomcat サービスを開始してください。
22. SQL テーブルをあるシステムに、プラグインを別のシステムに配置できますか?
はい、可能ですが、両方のシステムが同じネットワークに接続されている必要があります。

23. テーブル内にデータはあるのに、取得件数が「0」と表示され、Catalina ファイルにも例外が出力されません。
  1. プラグインページの接続 URL に正しいポートが指定されているか確認してください。
  2. ポート番号は SQL Configuration Manager で確認できます。
  3. SQL サーバー名が、SQL ワークスペースと Configuration Manager の両方で一致している必要があります。
  4. サーバーで使用すべきプロトコルが有効になっていない場合は、バイオメトリクス機器のベンダーに依頼して有効化してもらう必要があります。
24. プラグインページが開かず、Catalina ファイルに「Address already in use」または「JVM_Bind exception」と表示される。
  1. サーバーポートまたは Connector ポートがすでに使用されている可能性があります。
  2. 両方のポートを、Tomcat フォルダー内の conf フォルダーにある server.xml ファイルで更新する必要があります。
  3. Connector ポートとシャットダウンポートを変更し、Tomcat を再起動すると問題が解決します。
25. 接続/Java ソケット接続エラー
Caused by: java.net.ConnectException: Connection refused: connect

SQL Server Configuration Manager で、プロトコルの TCP/IP が有効になっていることと、正しいポートが指定されていることを確認してください。
26. Tomcat フォルダーの Catalina ログファイルに「Communications link failure」というエラーメッセージが表示される。
Tomcat サーバーから Java クライアントへの接続時に認証に失敗しています。

手順:
  1. 同じブラウザーで HTTPS サイトから sslhandshake 証明書をダウンロードします(HTTPS サイトを読み込む > 左上の鍵アイコン > それをクリック > [詳細]に移動 > [ファイルにコピー] > 任意のフォルダーに保存)。
  2. 管理者として cmd を起動し、次のコマンドを入力します。
    cd Program Files/Java/jre1.8.0_211/bin
    keytool -list -keystore ..\lib\security\cacerts → 上記コマンドでパスワードを求められたら、既定のパスワードは「changeit」です。
    keytool -import -alias ca(エイリアス名) -file 'C:\Users\Administrator\Desktop\ssl.cer'(ダウンロードした SSL 証明書のパス) -keystore ..\lib\security\cacerts -storepass changeit
  3. 確認を求められたら 「はい」 と入力します。
  4. 証明書が cacerts に追加されます。
  5. 上記の手順がすべて完了したら、Tomcat を再起動します。
27. Tomcat フォルダーの Catalina ログファイルに「Communications link failure」というエラーメッセージが表示され、末尾に「javax.net.ssl.SSLHandshakeException: no appropriate protocol (protocol is disabled or cipher suites are inappropriate)」と出力される。
接続 URL の末尾に次を追加します。

URL - ?enabledTLSProtocols=TLSv1.2
28. 新規連携で正しいトークンを作成した後に「Fetch & Upload」をクリックすると、「JSONObject 'Access token' not found」というエラーメッセージが表示される。
Zoho People が次の DC にある場合:
  1. Tomcat フォルダー > config.properties に移動し、メモ帳で開きます。
  2. 存在する 3 つの API URL について、DC を https://people.zoho.com/........... から https://people.zoho.in/......... に変更します。
  3. 同様に、https://accounts.zoho.com/......... の API URL も https://accounts.zoho.in/............
    に変更します。