人员信息遮盖

名称:人员信息遮盖

描述:帮助程序扩展,可快速使iTop中的人员匿名。

版本:1.0.0

发布:2018-07-04

itop-version-min:2.4.0

下载:https://store.itophub.io/en_US/products/combodo-anonymizer

代码:combodo-anonymizer

一个帮助程序扩展,可以快速匿名化iTop中的“Persons”。

特征

  • 从一个给定的人中删除该人的数据,而无需通过“匿名”该人来删除iTop中的该人对象。
  • 可以一个人或批量完成(来自“人员列表”)
  • 从此人员,其历史记录和该人员编写的案例日志中删除信息(不是该人员编写的实际文本,而是标题中提到此人员的信息)
  • 可以安排自动匿名处理在给定时间段(即60天)内被标记为过时的所有人员

修订记录

日期版本描述
2018-07-041.0.0首先公众版本解决了iTop 2.4.x菜单创建中的问题。
2018-06-070.0.3错误修复:修复了案例日志的匿名化。
2018-06-060.0.2第二个版本,兼容性扩展到iTop 2.4.0。
2018-05-310.0.1首款版本仅与2.5.x兼容

局限性

确保一个人的有效和完全匿名是非常困难的,因为可以使用该人的关系来(重新)发现该人的真实身份。

此扩展执行的操作实际上称为“假名”。除非您要处理敏感的数据(病历,信用卡号……),否则通常使用这样的假名来保护数据业务中的个人数据。

在iTop的上下文中,带有诸如邮件自动创建工单之类的扩展名,工单描述和案例日志条目可以包含人员签名,此扩展名不会清除该人员签名。

好的实践是归档,然后删除与匿名提交人相关的工单。

如果您有两个具有相同名称的人,并且您将其中一个匿名了,那么来自这两个人的历史记录条目将被匿名化。
如果一个人的名字改变了,那么与它以前的名字有关的历史和案例日志标题条目将不会被匿名化。

要求

此扩展需要iTop 2.4.0或更高版本

配置

您可以使用“管理工具配置Anonymization”菜单配置是否激活自动匿名化(由后台任务执行):

Configuration of the Automatic Anonymization

如果启用,匿名后台任务将每天运行一次,并根据配置定义的延迟自动使过时的联系人匿名,并删除所有通知,不仅删除那些已发送给该人的,超过天数的通知。

用法

此扩展在Person类的“其他操作活动”菜单中添加了新的自定义功能“匿名化”。

Anonymize One Contact

确认消息后,该人将被匿名化并显示结果:

https://www.itophub.io/wiki/media?w=600&tok=cd13da&media=extensions%3Aanonymized.png

人与其他对象之间的所有关系都被保留,但是:

  • 对象除(仅显示该人已被匿名的条目)
  • 对于任何引用,都会将案例日志标头(在所有包含案例日志的类中)清除为该人员的姓名
  • 历史记录条目(用于与该人员关联的用户账号所做的更改)将从该人员的姓名中清除。

可以在列表上执行相同的功能(但该列表必须仅是“人员”列表)

https://www.itophub.io/wiki/media?w=600&tok=706431&media=extensions%3Aanonymize_all.png

如果您已选择(在“偏好”菜单中)不显示过时的项目,则在执行匿名化之后,已匿名化的联系人列表将显示为空,因为现在所有联系人都处于“非活动状态”,因此标记为已过时。

匿名机制

对于给定的人,匿名化流程包含:

  • 清除所有非强制性字段
  • 用预定义值填充必填字段(名称设置为“联系人”,而first_name设置为“ Anonymous”)
  • 将联系人标记为“无效”
  • 将联系人保存在数据库中
  • 清除联系人的历史记录,仅剩一个历史记录条目表明该联系人已被匿名化。
  • 将所有案例日志标头中的联系人的友好名称替换为字符串“ *”(考虑到案例日志的设计,为每个案例日志标头保留完全相同的长度会更加简单快捷)
  • 用其匿名名称替换所有CMDBChange记录中的联系人的友好名称。

使匿名化适应您的数据模型

该扩展向Person类添加了几种方法。由于这些方法是在XML中定义的,因此您可以轻松地更改它们在XML中的重新定义。

  • Anonymize():这是匿名化扩展调用的职能。除非要完全重新定义匿名化机制,否则无需修改它。
  • SetAnonymousValues():使用匿名值填充当前Person的必填字段。如果通过在Person类上添加必填字段来更改标准数据模型,请采用此方法。默认实现如下:

/** * Fill the mandatory fields of the current Person with anonymous values. * * Adapt this method if you have altered the standard data model by adding * mandatory fields on the Person class. */ public function SetAnonymousValues() { // Put some more fancy values $this->Set('name', Dict::S('Anonymization:Person:name')); $this->Set('first_name', Dict::S('Anonymization:Person:first_name')); // Mark the contact as obsolete $this->Set('status', 'inactive'); }

  • PurgeHistory($ sOriginalName,$ sAnonymizedName):此函数从修改历史记录中删除对Person原始名称的所有引用,并将其替换为新的匿名名称。
  • CleanupCaseLogs($ sPersonFriendlyName):从此人输入的所有案例日志标题条目中删除给定的友好名称。

变更历史仅包含制作变更的人员的友好名称。结果,如果您有两个具有相同名称的人,并且您将其中一个匿名了,那么来自这两个人的历史记录条目将被匿名化。

如果一个人的名字改变了,那么与它以前的名字有关的历史和案例日志标题条目将不会被匿名化。

原文:https://www.itophub.io/wiki/page?id=extensions%3Acombodo-anonymizer


Personal data anonymizer

name:
Personal data anonymizer
description:
Helper extension to quickly anonymize Persons in iTop.
version:
1.0.0
release:
2018-07-04
itop-version-min:
2.4.0
download:
https://store.itophub.io/en_US/products/combodo-anonymizer
code:
combodo-anonymizer

An helper extension to quickly anonymize Persons in iTop.

Features

  • Remove the personal data from a given person without deleting the Person object in iTop by “anonymizing” this person.

  • Can be done one by one, or in bulk (from a list of Persons)

  • Remove the information from the Person, its history and the Case Logs written by this person (not the actual text written by this person, but the header mentioning this person)

  • Can be scheduled to automatically anonymize all persons which have been marked as obsolete for a given period (i.e. 60 days)

Revision History

DateVersionDescription
2018-07-041.0.0First public version, fixes an issue in the menu creation for iTop 2.4.x.
2018-06-070.0.3Bug fix: fixed the anonymization of case logs.
2018-06-060.0.2Second version, compatibility extended to iTop 2.4.0.
2018-05-310.0.1First version compatible with 2.5.x only

Limitations

It is very difficult to guarantee an effective and complete anonymization of a person since the relations of this person can be used to (re) discover who this person was actually.

What this extension performs is actually called a “Pseudonymization”. Unless you are dealing with sensitive data (medical records, credit card numbers…) such a pseudonymization is generally considered as sufficient to protect the personal data in a business context.

In the context of iTop, with extension such as Mail to Ticket Automation, the ticket description and caselog entries can contain the person signature, which will not be cleaned-up by this extension.

A good practice would be to archive then delete Tickets related to anonymized caller.

If you have two persons with the same name and you anonymize one, then history entries from both persons will be anonymized.
If a person name changes, then history and caselog headers entries related to its former name will not be anonymized.

Requirements

This extension requires iTop 2.4.0 or above

Configuration

You can configure whether or not to activate the automatic anonymizations (performed by a background task) using the “Admin tools / Configuration / Anonymization” menu:

Configuration of the Automatic Anonymization

If enabled, the anonymization background task will run once a day and automatically anonymize the obsolete contacts based on the delay defined by the configuration, and delete all notifications, not only those which were sent to that person which are older than a number of days.

Usage

This extension adds a new custom action “Anonymize” in the “Other Actions” menu on the Person class.

Anonymize One Contact

After a confirmation message, the person is anonymized and the result is displayed:

https://www.itophub.io/wiki/media?w=600&tok=cd13da&media=extensions%3Aanonymized.png

All the relations beween the person and the other objects are preserved, but:

  • The history of the person object is cleared (with just an entry showing that this person has been anonymized)

  • The case log headers (in all the classes which contain a case log) are purged for any reference to the name of this person

  • The history entries (for the changes made by the user account associated with this person) are purged from the name of the person.

The same action can be performed on a list (but the list MUST be a list of Persons only)

https://www.itophub.io/wiki/media?w=600&tok=706431&media=extensions%3Aanonymize_all.png

If you have chosen (in the “Preferences” menu) not to display the obsolete items, the list of anonymized contacts will appear empty after the anonymization has been performed, because all contacts are now 'inactive' and thus marked has obsolete.

The anonymization mechanism

For a given Person, the anonymization process consists in:

  • clearing all non-mandatory fields

  • filling mandatory fields with predefined values (the name is set to “Contact” and the first_name is set to “Anonymous”)

  • marking the contact as “inactive”

  • saving the contact in the database

  • clearing the history of the contact, with just one history entry remaining to indicate that this contact was anonymized.

  • replacing the friendlyname of the contact in all case log headers by a string of “*” (considering the design of the case logs it is much simpler and faster to preserve the exact same length for each case log header)

  • replacing the friendlyname of the contact in all CMDBChange records by its anonymized name.

Adapting the anonymization to your datamodel

The extension adds several methods to the Person class. Since these methods are defined in XML you can easily alter / redefine them in XML.

  • Anonymize(): This is the function called by the anonymizer extension. Unless you want to completely redefine the anonymization mechanism, you should not need to modify it.

  • SetAnonymousValues(): Fill the mandatory fields of the current Person with anonymous values. Adapt this method if you have altered the standard data model by adding mandatory fields on the Person class. The default implementation is the following:

/** * Fill the mandatory fields of the current Person with anonymous values. * * Adapt this method if you have altered the standard data model by adding * mandatory fields on the Person class. */ public function SetAnonymousValues() { // Put some more fancy values $this->Set('name', Dict::S('Anonymization:Person:name')); $this->Set('first_name', Dict::S('Anonymization:Person:first_name')); // Mark the contact as obsolete $this->Set('status', 'inactive'); }

  • PurgeHistory($sOriginalName, $sAnonymizedName): this function removes all references to original name of the Person from the history of modifications and replaces them with the new anonymized name.

  • CleanupCaseLogs($sPersonFriendlyName): removes the given friendlyname from all case log headers entries which where entered by this person.

The change history contains only the friendlyname of the person who made the change. As a result, if you have two persons with the same name and you anonymize one, then history entries from both persons will be anonymized.

If a person name changes, then history and caselog headers entries related to its former name will not be anonymized.

标签:
由 superadmin 在 2020/08/27, 16:10 创建
    

需要帮助?

如果您需要有关XWiki的帮助,可以联系:

深圳市艾拓先锋企业管理咨询有限公司