QA #1276
openSPAMユーザ登録対処/ユーザ登録効率化
0%
Description
■現象/要望¶
Redmineでインターネットからのユーザ登録を受け付けている場合、大量のSPAMユーザが登録申請する場合がある。
SPAMユーザの削除を効率化すると共に、条件に合ったユーザは自動登録したい。
(ユーザ誤削除の対策として、削除時にログインIDを入力する仕様となった。大量のSPAMユーザの削除に毎回IDを入力するのは現実的な操作ではない。)
■解決策¶
1.Redmine4.2で実装された、メールアドレス/ドメインによる登録禁止機能を利用し、SPAMユーザの登録余地を減らす。
https://redmine.jp/faq/general/allowed-disallowed-email-domains/
2.指定メールアドレス/ドメインの自動登録は、pythonなどで周期的に登録処理を実施すればよい。(別サーバ定期処理可能)
インターネット上で大半のSPAMユーザIDはgmailのアカウントであり、インターネット上Redmineサイトでは1と2は事実上実現困難である。
3.SPAMユーザIDの削除作業を効率的に実施するスクリプトを実行する。
(登録承認待ちユーザIDのリストから削除)
登録承認待ちユーザを一括してロック(使用不可)とし、本来ユーザだけ戻した方が良いかもしれない。(動作未確認)
■対応状況¶
・SPAMユーザIDの削除作業を効率的に実施するスクリプトを実施する。
(登録承認待ちユーザIDのリストから削除)
#note-4
■補足¶
・SPAMMER/本来ユーザ共にgmailの比率が非常に高く、ドメイン単位の登録制限ではSPAMMERの対処が困難である。
・ドメイン単位の自動承認は、インターネット上よりもイントラ上でニーズがありそう。
Files
Updated by 奈良 裕記 about 2 years ago
Redmine登録承認待ちユーザの一括削除処理¶
ユーザ誤削除の対策として、Redmineでは管理画面上のユーザ削除処理時に、削除対象のログインIDを入力する仕様となっている。
大量のSPAMユーザを削除する場合、全員分のIDを入力するのは現実的な操作ではなく、一括削除処理が必要である。
しかし、削除直前に正常なユーザ登録が行われる可能性もあるため、登録承認待ちのIDを単純に全部削除するのは危険。
そのため、一旦登録承認待ちのユーザID一覧を出力し、内容の確認後に一括削除する処理をpythonで作成した。
事前作業¶
RedmineのRESTAPIで利用可能とする。
python3の実行環境を用意する。 python-redmine をインストールする。
本チケット添付ファイルの delete_redmine_loginid.py をダウンロードする。
下記の3行を、実行環境に合わせて編集する。
redmine_url='https://対象RedmineサーバURL'
redmine_key='システム管理権限ユーザのAPIKEY'
del_csvfilename="登録承認待ユーザIDのCSVファイルフルパス"
登録承認待ちユーザの削除作業¶
Redmineの画面上で、管理/ユーザ一/ステータス=登録を選択、
右下の、他の形式にエクスポート:CSVを押し、CSVファイルとしてダウンロードする。
(ここで、ステータス=「登録」となっているが、登録済ではなく、登録承認待の位置付けである。)
ダウンロードしたCSVファイルを直接EXCELで読み込み、削除対象外のユーザ行を削除して、そのままCSVファイルとして保存する。
登録承認するユーザIDがあれば、ここで右側の「有効にする」を押して有効にする。(安全サイドに操作)
保存したCSVファイルのフルパスを、pythonスクリプト最初の del_csvfilename に設定する。
python3上で、delete_redmine_loginid.py を実行すると、CSVファイルに登録されていたユーザIDが削除される。
補足事項¶
・CSVファイル上のユーザIDを全員削除する場合には、ダウンロードしたファイルをそのまま利用して構わない。
・EXCELで編集し別名で保存した場合、デフォルトの保存先フォルダは、ダウンロードフォルダではなくドキュメントフォルダになる。
・CSVファイルの先頭行をカラム名と仮定している。CSVファイルの先頭行が削除ユーザIDの場合は、header = next(f)の行を削除する必要がある。
・本スクリプトでは登録承認待ちのIDのみを削除対象としている。(安全サイドに処理)
Updated by 奈良 裕記 about 2 years ago
- Description updated (diff)
- Status changed from 新規 to 回答済
- Assignee set to 奈良 裕記
Updated by 奈良 裕記 about 2 years ago
- File redmine-spam-users.png redmine-spam-users.png added
- Description updated (diff)