Перевёл небольшую статейку How Team Foundation Server Proxy 2008 works, которая описывает последовательность действий при взаимодействии клиентского рабочего места TFS Proxy.
Взаимодействие
Ниже описан порядок взаимодействия клиента, сервера и кеширующего прокси, когда пользователь пытается получить файл из версионного контроля:
- Клиент проходит аутентификацию на сервере.
- Сервер обрывает подключение, если аутентификация не прошла. Выход.
- Клиент посылает запрос на получение файла на сервер.
- Сервер проверяет права на чтение клиента к файлу.
- Сервер отвечает «file does not exist», если клиент не имеет прав на чтение к файлу. Выход.
- Сервер посылает ответ на загрузку файла клиенту.
- Клиент передает полученный ответ кеширующему прокси и ожидает файл.
- Если кеширующий прокси не возвращает файл через определенный промежуток времени, клиент использует полученный ответ, чтоб получить файл напрямую с сервера. Выход.
- Кешируюший прокси проверяет наличие файла в кеше.
- Если файл уже существует в кеше, то кеширующий прокси возвращает его клиенту.
- Кеширующий прокси с помощью сервисной учетной записи проходит аутентификацию на сервере.
- Сервер обрывает соединение, если аутентификация не проходит. Кеширующий прокси сообщает клиенту об ошибке, и клиент пытается получить файл напрямую с сервера. Выход.
- Кешируюший прокси запрашивает размещение сервисов версионного контроля.
- Сервер проверяет наличие прав на чтение серверной информации учетной записи кеширующего прокси.
- Сервер обрывает соединение, если таковые права отмутствуют. Кеширующий прокси сообщает клиенту об ошибке, и клиент пытается получить файл напрямую с сервера. Выход.
- Сервер передает ответ кеширующему прокси о размещении сервисов версионного контроля.
- Кеширующий прокси скачивает файл, используя информацию клиента полученную на шаге 5.
- Кеширующий прокси сохраняет файл в локальном кеше.
- Кеширующий прокси возвращает файл клиенту. Выход.
Примечания
- Сервер всегда проверяет права на чтение для клиента, а не для учетной записи кеширующего прокси.
- Сервер всегда проверяет права на чтение серверной информации для учетной записи кеширующего прокси и это единственные разрешения, который должны быть у этой учетной записи.
Другими словами
- Кеширующий прокси и сервер связаны на серверном уровне, а не на уровне проектов.
- Кеширующий прокси действует не вместо сервера, а используется только для кеширования файлов.
- Учетную запись для кеширующего прокси можно просто добавить в группу доступа серверного уровня, например «[Server]\Proxy Service Accounts», без всяких дополнительных конфигураций безопасности. Это фактически обеспечивает доступ на чтение учетной записи к серверной информации.
- Можно добавить учетную запись в группу администраторов, в группу сервисов сервера или проектную группу, что тоже обеспечит доступ у серверной информации. Но этот метод не рекомендуется, т.к. обеспечивает учетной записи больше прав, чем необходимо.









