メインコンテンツまでスキップ

ユーザー管理

概要​

このドキュメントでは、PlantPulse プラットフォームのユーザーアカウント、セキュリティグループ、権限管理の方法について説明します。 ユーザー管理は、左側メニューの System > ユーザー (/user/index) で行います。

ユーザー構造​

PlantPulse のユーザー管理は、3つの主要な要素で構成されます。

  • ユーザー (User): プラットフォームにログインする個別のアカウントです。
  • セキュリティグループ (Security Group): ユーザーの役割を定義するグループです。各ユーザーは1つのセキュリティグループに属します。
  • 権限 (Permission): セキュリティグループに割り当てられた機能別のアクセス権限です。メニュー、画面、API へのアクセスを制御します。

3種類のロール​

製品が提供するロールは3つだけです。

ロール画面表示用途
ADMINシステム管理者全機能。他者のパスワード変更・ユーザー管理が可能
APIAPI 開発者外部システム連携アカウント
USER一般ユーザー基本機能
OPERATOR · ENGINEER · VIEWER はありません

以前のドキュメントにこれらの名前が記載されていましたが、製品に存在しないロールです。ユーザー登録 画面のロール選択肢にも表示されません。

MANAGER は«半分»あります — 使わないでください

MANAGER は上記の3つとは事情が異なります。

ユーザー登録画面選択肢になし。保存パスが ADMIN·API·USER のみ受け付けます
サーバーアクセス制御あり — 設備コマンド実行ルール、タグ・接続・アラーム画面の書き込みボタン表示条件が «ADMIN または MANAGER» です
POST /api/v5/userロール値を検証しないため、MANAGER がそのまま保存されます
ログイン後遷移分岐が ADMIN・API → ダッシュボード、USER → 共有画面の2つだけ — MANAGER アカウントはローディング画面で停止します

そのため、API で MANAGER を設定することは、アカウントを使用不能にする行為です。 すでにそのようなアカウントがある場合は、ロールを3つのいずれかに変更してください。

最小権限の原則: 人が使うアカウントは USER から始め、管理が必要な人にのみ ADMIN を付与してください。

ユーザー属性​

属性必須説明
ユーザー IDOログインに使用する一意の識別子 (英字、数字、4〜20文字)
ユーザー名O画面に表示される名前
パスワードOログインパスワード (12〜50文字、下記のパスワードポリシー参照)
メール-通知受信メールアドレス
ロールOADMIN / API / USER のいずれか
ステータスO有効 (Active) または無効 (Inactive)
説明-ユーザーに関するメモ
作成日時自動アカウント作成日時
最終ログイン自動最終ログイン日時

ユーザー一覧の表示​

左側メニュー System > ユーザー を選択すると、登録済みユーザーの一覧を確認できます。

  • URL: /user/index
  • ユーザー ID、名前、セキュリティグループ、ステータス、最終ログイン日時を確認できます。
  • 検索フィルターを使用して、特定のユーザーをすばやく見つけることができます。

案内: ユーザー一覧は、ADMIN セキュリティグループに属するユーザーのみ閲覧できます。

ユーザー追加​

  1. ユーザー一覧画面で追加ボタンをクリックします。
  2. 必須項目を入力します。
    • ユーザー ID: 英字と数字で構成される一意の ID (4〜20文字)
    • ユーザー名: 画面に表示される名前
    • パスワード: 12〜50文字で、英字大文字・小文字・数字・特殊文字の4種類のうち3種類以上を含める必要があります。不足している場合、保存は拒否されます。
    • ロール: ADMIN / API / USER のいずれかを選択します。
  3. 任意項目 (メール、説明など) を必要に応じて入力します。
  4. 保存ボタンをクリックします。

参照: ユーザー ID は作成後に変更できません。慎重に設定してください。

ユーザー編集​

  1. ユーザー一覧から編集するユーザーをクリックします。
  2. 編集可能な項目を変更します (名前、メール、セキュリティグループ、ステータス、説明など)。
  3. 保存ボタンをクリックします。

案内: ユーザー ID は編集できません。ID を変更するには、既存のユーザーを削除して新規作成する必要があります。

ユーザー削除​

  1. ユーザー一覧から削除するユーザーを選択します。
  2. 削除ボタンをクリックします。
  3. 確認ポップアップで確認をクリックします。

注意: 削除されたユーザーは復元できません。ユーザーを一時的にブロックするには、削除ではなく無効化を使用することを推奨します。

ユーザー無効化​

ユーザーアカウントを削除せずにログインをブロックするには、無効化機能を使用します。

  1. ユーザー編集画面でステータスを Inactive に変更します。
  2. 保存ボタンをクリックします。

無効化されたユーザーはログインがブロックされますが、データ (監査ログ、設定履歴など) はそのまま保持されます。再度有効化するには、ステータスを Active に変更してください。


パスワード管理​

パスワードは画面の1か所で変更します — 左側メニュー System > ユーザー 一覧です。

パスワード変更 (初期パスワードの交換)​

インストール直後に初期パスワードを変更する方法はこれです。

  1. 左側メニュー System > ユーザー を開きます。
  2. 対象ユーザー行の 🔑 鍵アイコン をクリックします (ツールチップ: "パスワード変更")。
  3. 新しいパスワードを入力します。自分のアカウントの場合は、現在のパスワードも一緒に入力する必要があります。
  4. 保存します。

誰が誰のパスワードを変更できるかは、ルールが定められています。

対象必要な権限現在のパスワード確認
自分自身なし (ログイン済みであれば)必須 — 間違っていると拒否
他のユーザーADMIN不要

ADMIN ではないユーザーが他人のパスワードを変更しようとすると拒否され、サーバーログに監査記録が残ります。 成功した変更も Password changed: session_user=[...], target_user=[...] 形式で記録されます。

REST API でも同じことができます。

POST /api/v5/user/{user_id}/password
Content-Type: application/json

{ "current_password": "<current-password>", "password": "<new-password>" }

パスワード紛失時の対応​

  • 管理者に依頼: ADMIN ユーザーが上記の手順で初期化します。
  • DB 直接初期化 (緊急時): ADMIN アカウントまで全てロックされた場合にのみ使用します。
SHA-256 で入れるとアカウントが永続的にロックされます

パスワードは BCrypt ハッシュで保存されます。以前のドキュメントに記載されていた encode(digest(..., 'sha256'), 'hex') 方式で値を入れると、ログイン時に BCrypt 検証が その文字列を解釈できず、どのパスワードでもログインできなくなります。 あいにく、既に ロックされた状況で使う手順のため、復旧手段がなくなります。

テーブル名も pp_user ではなく USER_LOGIN です。

BCrypt ハッシュをまず作成し、その値を入れます。

# BCrypt 해시 생성 (htpasswd — apache2-utils / httpd-tools 패키지)
htpasswd -bnBC 10 "" '<new-password>' | tr -d ':\n'
# → $2y$10$... 형태의 문자열이 나옵니다
-- 비상 시에만. 위에서 만든 BCrypt 해시를 그대로 넣습니다.
UPDATE USER_LOGIN
SET PASSWORD = '<$2y$10$... paste-here>'
WHERE USER_ID = 'admin';

入れた直後に必ずログインで確認し、成功したら画面で一度、通常の経路で変更してください。 インフラサービスアカウント (PostgreSQL・Aster TSDB・RustFS など) のパスワードは、このドキュメントではなく パスワード変更 (クレデンシャルローテーション) に従ってください — 順序を誤るとプラットフォームが起動しません。

パスワードポリシー​

製品が強制するもの — 以下に違反すると、保存自体が拒否されます。

項目値
長さ12文字以上 50文字以下
複雑さ英字大文字・小文字・数字・特殊文字の4種類のうち3種類以上

製品が強制しないもの — 運用規程で管理する必要があります。以下の項目はプラットフォームに 機能がないため、必要であれば組織の手順で対応してください。

項目ステータス
変更周期の強制・有効期限なし
以前のパスワード再利用禁止なし
辞書 (dictionary) ブロックなし
アカウントの恒久的ロックなし — 代わりに下記の一時ブロックがあります

ブルートフォース攻撃のブロック (一時ブロック)​

ログイン失敗が蓄積すると、アカウントがロックされるのではなく、一定時間リクエストがブロックされます (HTTP 429 + Retry-After)。時間が経過すると自動的に解除されるため、管理者が解除する必要はありません。

設定プロパティデフォルト値
機能使用engine.session.bruteforce.enabled使用
IP あたりの失敗許容engine.session.bruteforce.ip_limit30回
アカウントあたりの失敗許容engine.session.bruteforce.user_limit10回
集計区間engine.session.bruteforce.window.seconds300秒 (5分)

ブロックはIP 基準とアカウント基準の2つの系統でそれぞれカウントされます。オフィスのように複数の人が同じ パブリック IP を使用する場合、他の人の失敗が IP 上限 (30回) を一緒に消費する可能性があります。 ブロック・失敗はすべて監査ログ (LOGIN_BLOCKED / LOGIN_FAILURE) に記録されます。


セキュリティグループ管理​

デフォルトのセキュリティグループ​

PlantPulse は3つのデフォルトのセキュリティグループを提供します。

セキュリティグループ説明主な権限
ADMINシステム管理者全機能アクセス (ユーザー管理、システム設定、すべてのメニュー)
OPERATORオペレーター運用関連機能へのアクセス (モニタリング、アラーム管理、データ参照)
USER一般ユーザー基本機能へのアクセス (ダッシュボード参照、データ参照)

セキュリティグループの追加​

デフォルトグループの他に、組織の役割に合わせたセキュリティグループを追加できます。

  1. セキュリティ管理 > セキュリティグループ メニューを選択します。
  2. 追加ボタンをクリックします。
  3. グループ ID、グループ名、説明を入力します。
  4. 保存ボタンをクリックします。

権限設定​

セキュリティグループにメニューおよび機能別の権限を設定します。

  1. セキュリティ管理 > セキュリティグループ メニューでグループを選択します。
  2. 権限設定タブをクリックします。
  3. 各メニュー/機能について読み取り、書き込み、削除権限をチェックします。
  4. 保存ボタンをクリックします。

権限設定の例:

メニューADMINOPERATORUSER
接続管理読み取り/書き込み/削除読み取り/書き込み読み取り
ファクトリー管理読み取り/書き込み/削除読み取り/書き込み読み取り
アラーム管理読み取り/書き込み/削除読み取り/書き込み読み取り
ユーザー管理読み取り/書き込み/削除--
システム設定読み取り/書き込み/削除読み取り-
キャンバス読み取り/書き込み/削除読み取り/書き込み読み取り

アクセス制御​

サイトアクセス制御​

マルチサイト環境では、ユーザーごとにアクセス可能なサイトを制限できます。

  1. ユーザー編集画面でサイトアクセス権限タブを選択します。
  2. アクセスを許可するサイトをチェックします。
  3. 保存ボタンをクリックします。

案内: サイトアクセス権限が設定されていないユーザーは、すべてのサイトにアクセスできます。

キャンバス共有​

キャンバス画面は、特定のユーザーまたはセキュリティグループと共有できます。

  1. キャンバス編集画面で共有設定をクリックします。
  2. 共有対象を選択します。
    • 全体公開: すべてのユーザーがアクセス可能です。
    • セキュリティグループ: 選択したセキュリティグループのユーザーのみアクセス可能です。
    • ユーザー指定: 選択したユーザーのみアクセス可能です。
  3. 保存ボタンをクリックします。

セッション管理​

セッションタイムアウト​

ユーザーのセッションタイムアウトは、デフォルトで30分に設定されています。30分間アクティビティがない場合、自動的にログアウトされます。

セッションタイムアウトを変更するには、web.xml で設定を編集します。

<!-- WEB-INF/web.xml inside the webapp (bundled in the WAR — reset on deploy, so change it in the source) -->
<session-config>
<session-timeout>30</session-timeout> <!-- in minutes -->
</session-config>

同時ログイン​

デフォルトでは、同じアカウントで複数のブラウザー/デバイスから同時にログインできます。セキュリティが重要な環境では、アカウントをユーザーごとに分けて発行し、アクセス IP 制限などのネットワークレベルの統制で補完することを推奨します。


監査ログ​

ユーザーの主要なアクティビティは、監査ログに自動的に記録されます。監査ログを通じて、システム変更履歴を追跡できます。

記録されるアクティビティ:

アクティビティタイプ説明
ログイン/ログアウトユーザー認証イベント
ユーザー管理ユーザーの作成、編集、削除、無効化
セキュリティグループ変更グループの作成、編集、削除、権限変更
システム設定変更プロパティ、接続情報などの設定変更
データ修正ファクトリー、設備、ポイントなどのマスターデータ変更

監査ログは ツール > 監査ログ メニューで閲覧でき、期間、ユーザー、アクティビティタイプでフィルタリングできます。


一括ユーザー登録​

多数のユーザーを一度に登録するには、Excel ファイルを使用して一括登録できます。

登録手順​

  1. セキュリティ管理 > ユーザー管理 メニューでExcel アップロードボタンをクリックします。
  2. テンプレートの Excel ファイルをダウンロードします。
  3. テンプレートに従ってユーザー情報を入力します。
列必須説明例
user_idOユーザー IDoperator01
user_nameOユーザー名홍길동
passwordO初期パスワードTemp1234!
email-メールhong@example.com
security_groupOセキュリティグループ IDOPERATOR
description-説明생산1팀
  1. 作成した Excel ファイルをアップロードします。
  2. プレビューで登録するユーザー情報を確認します。
  3. 登録ボタンをクリックします。

案内: アップロード時にバリデーションが実行されます。重複 ID、必須項目の欠落などのエラーがある場合、該当する行が表示され、修正後に再アップロードできます。


ベストプラクティス​

  • 最小権限の原則: ユーザーには業務に必要な最小限の権限のみを付与してください。
  • 管理者アカウントの最小化: ADMIN グループのユーザーは最小限に抑え、通常の運用には OPERATOR グループを使用してください。
  • 定期的な監査: 四半期ごとにユーザー一覧と権限をレビューし、不要なアカウントを無効化してください。
  • 退職者への対応: 退職時には、すぐにアカウントを無効化または削除してください。
  • 共有アカウントの禁止: 個人別のアカウントを使用し、共有アカウントの使用は避けてください。
  • パスワード管理: 初期パスワードは必ず変更するよう案内し、定期的なパスワード変更を促してください。
  • ログ監視: 異常なログイン試行 (繰り返しの失敗、異常な時間帯のアクセスなど) を監視してください。

よくある問題​

ログイン失敗​

症状原因解決方法
ログイン失敗
ID またはパスワードを再確認してください。
ID のタイプミス・パスワードのタイプミス・存在しないアカウント・無効なアカウント — 4つすべてがこの1つのメッセージですID・パスワードを再確認 (Caps Lock 含む)。それでもダメな場合、アカウントが有効かどうかをユーザー一覧で確認
ログイン試行が多すぎます (N秒後に再試行)連続失敗によるブロック (HTTP 429)表示された秒数だけ待ちます。管理者が解除できるロックではありません — 時間が経てば自動的に解除されます
ログイン画面が表示されないWeb サーバー未起動またはネットワーク問題サーバーの状態とネットワーク接続を確認してください
「アカウントロック解除」という管理者機能はありません

連続失敗ブロックは時間窓でのみ解除されます (デフォルト 300秒) — 管理者画面に解除する ボタンはありません。問い合わせがあれば「数秒後に再試行してください」が正解です。 しきい値を変更するには、ログイン失敗時の対応の engine.session.bruteforce.* を参照してください。

無効なアカウントも間違ったパスワードと同じメッセージが表示されます。ユーザーは自分のアカウントが 無効化されていることを知ることができないため、管理者が一覧でステータスを代わりに確認する必要があります。

権限不足​

症状原因解決方法
メニューが表示されないセキュリティグループにそのメニューへのアクセス権限がない管理者に権限の追加を依頼してください。
"アクセス権限がありません" メッセージAPI または機能権限の不足セキュリティグループの権限設定を確認してください。
特定サイトのデータが表示されないサイトアクセス権限が未設定ユーザーのサイトアクセス権限を確認してください。

セッション期限切れ​

症状原因解決方法
作業中にログイン画面へ切り替わるセッションタイムアウト (デフォルト 30分)再度ログインしてください。タイムアウトが短い場合は web.xml で調整してください。
他のデバイスでログアウトされる同時ログインポリシー (KICK) による強制終了同時ログイン設定を確認してください。
セッション関連エラーが繰り返されるRedis キャッシュ障害Redis サービスの状態を確認してください。