Поиск пользователей GDPR и SharePoint - PullRequest
1 голос
/ 15 октября 2019

(не только) из-за GDPR, когда сотрудник покидает компанию, все его личные данные должны быть удалены. Файлы должны быть удалены для этого пользователя и самого пользователя из Active Directory.

Но даже если Пользователь удален из AD, все «Создано», «Изменено» и другие поля пользователя могут содержать имя этого сотрудника даже для документов, которые принадлежат другим и не должны быть удалены.

Как решить эту проблему, не нарушая SharePoint / Приложения, которые зависят от (любой) действительной информации о человеке в этих списках?

1 Ответ

1 голос
/ 15 октября 2019

Вы можете удалить личную информацию пользователя (имя, адрес электронной почты и т. Д.) Из службы профилей пользователей, чтобы SharePoint указывал только их (возможно, анонимный) идентификатор пользователя.

При необходимости вы также можете использовать PowerShellи объектную модель на стороне клиента (CSOM) для переопределения любой оставшейся информации (записанной в списках информации о пользователях семейства сайтов) на что-то вроде «[Отредактировано]».

См. документацию Microsoft по соответствию GDPR для SharePoint здесь .

Выполните следующие основные шаги для удаления личной информации пользователя из его профиля пользователя SharePoint Server:

  1. Удалите информацию пользователя из любого внешнегосистемы, входящие в профиль пользователя SharePoint Server. Если вы используете синхронизацию каталогов, пользователь должен быть удален из локальной среды Active Directory.

  2. Запустить синхронизацию профиля на сервере SharePoint.

  3. Удалить профиль из SharePoint Server. После этого SharePoint Server полностью удалит профиль из базы данных профилей пользователей через 30 дней. Страница профиля пользователя и личный сайт будут удалены.

После удаления профиля пользователя некоторая ограниченная информация (например, идентификатор пользователя) все еще может быть записана в семействах сайтов, которые посетил пользователь. ,Если вы решите удалить эти данные из данного семейства сайтов, это можно сделать с помощью CSOM. Пример сценария приведен ниже:

 $username = "<admin@company.sharepoint.com>"
 $password = "password"
 $url = "<https://site.sharepoint.com>"
 $securePassword = ConvertTo-SecureString $Password -AsPlainText -Force

 # the path here may need to change if you used e.g. C:Lib.
 Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\16ISAPIMicrosoft.SharePoint.Client.dll"
 Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\16ISAPIMicrosoft.SharePoint.Client.Runtime.dll"

 # connect/authenticate to SharePoint Online and get ClientContext object.
 $clientContext = New-Object Microsoft.SharePoint.Client.ClientContext($url)
 $credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $securePassword)
 $clientContext.Credentials = $credentials
 if (!$clientContext.ServerObjectIsNull.Value)
 {
     Write-Host "Connected to SharePoint Online site: '$Url'" -ForegroundColor Green
 }

 # Get user
 $user = $clientContext.Web.SiteUsers.GetByLoginName("i:0#.f|membership|user@company.sharepoint.com")

 # Redact user
 $user.Email = "Redacted"
 $user.Title = "Redacted"
 $user.Update()
 $clientContext.Load($user)
 $clientContext.ExecuteQuery()

 # Get users
 $users = $clientContext.Web.SiteUsers

 # Remove user from site
 $users.RemoveById($user.Id)
 $clientContext.Load($users)
 $clientContext.ExecuteQuery()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...