現場のまど中小企業のAI導入支援|現場管理アプリの独自開発から現場管理アプリ 専門

コラム仕組みと技術

協力会社がアカウントなしで日報アプリに入力するには?署名付きリンクの安全性と限界を試作で確かめた

協力会社がアカウントなしで日報アプリに入力するには?(記事の表紙)

協力会社や一人親方がアカウントなしで日報を出すには、現場と人ごとに推測できない期限つきのリンク(署名付きURL)を送ります。職人はアプリを入れずにタップするだけで日報と出面を入力でき、ID数で利用料は増えません。現場のまどで試作したところ、書き換え・期限切れ・取り消し後の送信はすべて断れました。ただし転送されたリンクは、端末に結びつけないと止まりません。(2026年10月時点)

全体の流れと費用は現場管理アプリの独自開発のページにまとめています。

要点

  • 協力会社の日報は、現場と人ごとの署名付きリンクを送れば、アカウントなしで受け取れます。
  • 協力会社40人にB社のIDを配ると、ゲストで年45.6万円(ライト)か90.7万円、全員を通常ユーザーにすると年108万円です(計算値)。
  • 7通りの送信テストで、書き換え・期限切れ・取り消し後など4通りは2方式とも拒否しました。
  • 転送されたリンクは署名だけでは止まらず、最初に開いた端末に結びつけると403で断れました。
目次
  1. 協力会社がアカウントなしで日報を出すには、どうしますか?
  2. 協力会社40人にIDを配ると、1年でいくらかかりますか?
  3. 署名付きリンクは、なぜ他人に書き換えられないのですか?
  4. 署名付きリンクは、転送や期限切れのときにどう動きますか?
  5. リンク入力の限界と、別の方法が合う場合は?
  6. このサイトで相談するには?
  7. よくある質問

協力会社がアカウントなしで日報を出すには、どうしますか?

現場と人ごとに、推測できない期限つきのリンク(署名付きURL)を作って送ります。職人がリンクをタップすると、名前と現場を入れ済みの入力画面が開きます。そこから出面(その日に入った人数)と日報を送れます。ID・パスワードは要りません。

協力会社の入力の受け方は、大きく3つあります。リンク入力のほかとの違いは2つです。ID数で利用料が増えないことと、職人に覚えてもらうことがないことです。

受け方 職人がすること 協力会社の人数で増える費用 気をつけること
1人1つのIDを配る ID・パスワードでログイン ID 1つごとの月額 忘れたパスワードの再発行
ゲスト用のIDを配る 招待を受けてログイン ゲスト1人ごとの月額 招待と削除の手間
署名付きリンクを送る 届いたリンクをタップ 0円 転送と期限切れ

私が仕組みを作るときは、リンクの中に現場ID・人ID・期限・取り消し番号を入れ、サーバーだけが持つ鍵で署名します。誰が送った日報かはリンクで決まるので、職人に名前を選ばせる欄も作りません。

署名付きリンクで日報を受け取る流れの図。事務所が現場と人ごとにリンクを作り、SMSかLINEで送り、職人がIDなしで入力し、サーバーが署名・期限・取り消し番号を確かめて保存する
図1 アカウントなしで日報を受け取る流れ。リンクを作るのも取り消すのも事務所の画面からで、職人の側で設定することはありません。

協力会社40人にIDを配ると、1年でいくらかかりますか?

料金を公開している業務アプリ作成サービス(B社)の公式単価で、社員10人と協力会社40人の分を安い順に計算しました(税抜)。いちばん安いライトのまま協力会社をゲストにすると年45万6,000円、スタンダードで協力会社をゲストにすると年90万7,200円、全員をスタンダードの通常ユーザーにすると年108万円です。全員をライトの通常ユーザーにすると年60万円です。

単価はB社の公式の料金ページ(2026年10月16日に確認)の値です。ライトは1ユーザー月1,000円、スタンダードは月1,800円で、どちらも最低10ユーザーから契約します。社外の人を招くゲストは、ライトなら1人月700円、スタンダードなら月1,440円です(いずれも税抜)。ライトは外部サービスとの連携や拡張機能が使えません。

IDを配らずに受け取るだけなら、ほかの手もあります。無料のフォームサービス(C社)はログイン不要の設定にでき、無料で入力を集められます。違いが出るのは受け取ったあとで、手配との突き合わせ、取り消し、出面の集計を自分で組むかどうかです。

協力会社の人数 ライトで協力会社をゲスト(円/年) スタンダードで協力会社をゲスト(円/年) 全員をスタンダードの通常ユーザー(円/年) 協力会社はリンク、社員10人はスタンダード(円/年)
10人 204,000 388,800 432,000 216,000
20人 288,000 561,600 648,000 216,000
40人 456,000 907,200 1,080,000 216,000
60人 624,000 1,252,800 1,512,000 216,000
協力会社の人数0〜60人ごとの年間利用料の折れ線グラフ。40人のとき、ライトで協力会社をゲストにすると45.6万円、スタンダードでゲストにすると90.7万円、全員をスタンダードにすると108.0万円。リンク入力は社員10人がB社スタンダードを使い続ける前提で21.6万円のまま
図2 協力会社にIDを配ったときの1年の利用料(計算値)。社員10人分を含みます。リンク入力の線は、社員10人はB社のスタンダードを使い続け、協力会社だけリンクで受ける前提です。協力会社が10人ほどなら、ライトのゲストのほうが安くなります。

計算は実験の台本とデータ(zip)の link_token.py にある yearly() です。式は「(社員+協力会社)×1,800円×12か月」で、ゲストは「社員分+協力会社×ゲストの単価×12か月」です。無料のフォームで受けるなら、利用料は0円です。表に入れていないのは、リンク入力の仕組みを作る費用です。現場のまどでは一式30万円〜で、何年でID課金の合計を下回るかは計算機で比べられます。

署名付きリンクは、なぜ他人に書き換えられないのですか?

リンクの末尾に、サーバーだけが持つ鍵で計算した署名が付いているからです。現場IDを1文字でも書き換えると署名が合わなくなり、サーバーは保存しません。

試作では、HMAC-SHA256という方式で署名を作り、先頭128ビットをリンクに入れました。リンクの長さは76文字です。

OWASPは、Webの安全性を扱う国際的な非営利団体です。ログイン状態を表す識別子について、Session Management Cheat Sheetで64ビット以上の推測しにくさを求めています。128ビットはその2倍の長さです。当てずっぽうで正しい署名を作れる見込みは、まずありません。

payload = b64(f'{site}|{person}|{exp}|{ver}'.encode())   # 現場・人・期限・取り消し番号
sig = b64(hmac.new(KEY, payload.encode(), hashlib.sha256).digest()[:16])
link = f'/r/{payload}.{sig}'
# 受け取ったら同じ計算をして、署名・期限・取り消し番号の3つを確かめる

取り消し番号は、人ごとに1つ持たせる数です。事務所で番号を1つ上げると、その人に送った古いリンクは全部通らなくなります。リンクを1本ずつ探して消す必要はありません。

署名付きリンクは、転送や期限切れのときにどう動きますか?

手元のHTTPサーバーで7通りの送信を試しました。書き換え・当てずっぽうの署名・期限切れ・取り消し後の4通りは、どちらの方式でも403(拒否)を返しました。転送された別の端末からの送信は、署名だけの方式Aでは受け付けてしまいました。

方式Bは、最初にリンクを開いた端末に目印のCookieを渡し、2台目の端末からは入力させない方式です。方式Bでは、転送された送信も403で断れました。

署名付きリンクを7通りの使い方で送信した結果の表。本人の送信と同じ端末での訂正は200で受付、転送は方式Aで受付・方式Bで拒否、書き換えや期限切れなど4通りは両方式とも403で拒否
図3 署名付きリンクの送信テスト(2026年10月16日、現場のまど の試作)。サーバーが返した応答コードをそのまま記録しました。

同じzipの link_token.py を python link_token.py で動かすと、同じ7通りを試せます。鍵は起動のたびに作り直します。試していないこともあります。本物のスマホのブラウザでCookieを消した場合や、職人が機種変更した場合は、方式Bでは本人も入力できなくなります。そのときは事務所でリンクを作り直して送ります。

リンク入力の限界と、別の方法が合う場合は?

リンクは「持っている人が本人」とみなす仕組みなので、URLが漏れると、その間は他人でも入力できてしまいます。期限・取り消し・端末への結びつけで、その間を短くするのが対策です。

OWASPは「Information exposure through query strings in URL」で、URLに入れた値が漏れる場所を挙げています。Refererヘッダー、サーバーのログ、閲覧履歴、ブラウザのキャッシュ、のぞき見です。HTTPSにしても防げないとしています。

試作では、入力画面に Referrer-Policy: no-referrer を付けました。ほかのサイトへ移っても、URLが相手に送られません。入力画面には外部の画像やリンクを置かず、期限は7日に区切っています。

次のような場合は、IDとパスワードで入る画面を別に作るほうが合います。

  • 図面や見積など、協力会社に見せたくない情報を表示する
  • 1台のスマホを班の何人かで使い回している
  • 協力会社の側で、過去の日報を何か月分も見返したい

日報と出面を受け取るだけならリンクで足ります。見せる情報が増えるほど、IDで入る画面を併用する理由が増えます。電波の届かない現場の扱いは、現場の日報はオフラインで入力できる?圏外で30回試したに件数を載せています。

現場管理アプリを自社専用に作る費用と、ID課金のサービスとの5年総額の比べ方は、現場管理アプリの費用にまとめています。

このサイトで相談するには?

協力会社にIDを配らずに日報を集めたい、という段階のご相談でも構いません。

現場のまどでは、何をどう頼むか決まっていなくても大丈夫です。御社のやり方に合わせて、進め方を一緒に考えます。準備は要りません。無料で相談するからお送りください。

よくある質問

職人のスマホにアプリを入れてもらう必要はありますか?
いいえ。リンクはスマホのブラウザで開くので、アプリのインストールもパスワードの設定も要りません。
リンクを送るのはLINEでもよいですか?
はい。SMSでもLINEでも送れます。ただしURLはトーク履歴に残るので、期限を7日などに区切り、使い終えたら取り消します。
協力会社の職人が辞めたら、どうしますか?
その人の取り消し番号を1つ上げます。古いリンクは全部その場で通らなくなり、試作でも403で断りました。
図面や工程表もリンクで見せられますか?
見せられますが、他社に見せたくない情報が載るなら、IDとパスワードで入る画面に分けるのが安全です。

出典

  1. B社(業務アプリ作成サービス)の公式の料金ページ(ライト 1,000円・スタンダード 1,800円/ユーザー/月・最低10ユーザー、ゲストはライト 700円・スタンダード 1,440円/ユーザー/月、税抜。社名は伏せています)(2026年10月16日確認)
  2. 現場のまど 署名付きリンクの試作と年額の計算(実験の台本とデータのzipの link_token.py)、2026-10-16(2026年10月16日確認)
  3. OWASP「Information exposure through query strings in URL」(URLの値が漏れる場所)(2026年10月16日確認)
  4. OWASP Cheat Sheet Series「Session Management Cheat Sheet」(識別子は64ビット以上のエントロピー)(2026年10月16日確認)
  5. MDN Web Docs「Referrer-Policy」(no-referrer で Referer ヘッダーを送らない)(2026年10月16日確認)