共通QRからの保護者アカウント初回申請
全員共通のQRから保護者が申請し、園が確認・承認して利用を開始する機能です。管理者が受付を開始するまで、新規の申請は受け付けません。
園での準備
- 管理者で「保護者アカウント」→「共通QR・申請受付」を開きます。
- 表示された施設URLを確認し、「新しい申請の受付を開始する」を押します。
- 「案内を印刷」または「QR画像を保存」で配布します。全員に同じQRを使用します。
管理画面は /parent-accounts/registration-qr、申請ページは /parent-portal/register/apply です。QRには共通の申請URLのみを含み、個人情報や端末用トークンは含みません。
保護者の操作
- QRを読み取り、本人のメールアドレスを入力します。
- 届いた確認メールから、お子さまと保護者・連絡先の情報を入力して提出します。
- 園の確認を待ちます。
- 承認後に届くメールからパスワードを設定し、メールアドレスをログインIDとして利用を開始します。
メールのリンク・登録コードは24時間、1回限りです。メール確認後の情報入力画面は2時間有効です。確認メールが届かない場合は、迷惑メールやアドレスを確認し、1分以上あけて再操作してください。
登録済み・停止中のアカウントや、園で登録作業中のアカウントを、このページから上書きすることはできません。登録済みの方はログイン、園が作成済みで初回設定が未完了の方は園からの招待を利用します。
園での確認・承認
提出された申請は、保護者アカウント一覧とホームの承認待ちに表示されます。確認画面では「共通QRからの初回申請」と表示します。
- 保護者本人・園児との関係・提出された内容を確認します。
- 「承認先の園児・保護者」を必ず選択します。台帳にいる場合は対象の園児と保護者を選び、未登録の場合だけ「新しい園児・家族を登録する」を選びます。
- 確認理由を記録し、確認済みのチェックを入れて承認します。
既存の園児を選ぶ場合は氏名・生年月日の一致も確認します。同じ氏名・生年月日の園児がいる場合、新規園児としての重複登録を拒否します。紐付け済みの保護者アカウントを置き換えることもできません。きょうだいなど追加の閲覧対象は、園が保護者アカウントの編集から明示的に設定します。
共通QRからの申請やメール確認だけでは、園児台帳の閲覧権限は付与しません。情報の反映と閲覧対象の紐付けは園の承認時に行い、ログインには本人のパスワード設定が必要です。
連続申請の制限
| 対象 | 制限 |
|---|---|
| 同じ接続元IP | 10分間に5回まで。5回目の受付後は15分間制限し、以後の申請にHTTP 429と再試行までの秒数を返す |
| 同じメールアドレス | 案内の要求は1日に3回まで。再送は前回から60秒以上あける |
| 申請済みの情報 | 確認待ち・承認済みの申請や、メール確認後に入力中の手続きを、匿名の再送要求で取り消さない |
IPはHMACで変換した値を保存し、クライアントが送った転送ヘッダーをアプリで直接信用しません。同時申請でも上限を超えないよう、データベース上で回数を更新します。受付停止や回数制限は既存アカウントのログインには影響しません。
園のWi-Fiなど同じIPを使う利用者には制限が共通でかかります。一括登録会では時間をあけて案内してください。これは恒久的なIP拒否ではありません。
配備
qrcode==8.2を追加します。QRはサーバー内でSVGとして生成し、外部のQR作成サービスへURLを送信しません。- SQLiteでは通常の起動処理で
parent_public_registration_settingsとparent_public_registrationsを追加します。既存テーブルの列変更はありません。 .envとComposeへの新しい必須設定はありません。既存のメール配送設定とHOIKUICT_PARENT_REGISTRATION_BASE_URLを使用します。キオスクの端末用トークンは使用・変更しません。- 受付の有効・無効はDBに保存します。初期状態は停止中です。受付停止後も、発行済みメールからの入力、提出済み申請の承認、既存ログインは継続できます。
- Cloudflare Access等の前段認証を利用する場合、QRの申請ページと既存の登録手続きに、保護者本人がアクセスできる構成であることを確認します。
実装の参考: qrcode公式ドキュメント(SVG生成)、OWASPの認証メールに関する指針(アカウントの有無を示さない応答、回数制限、有効期限と単回利用)。