Разработчикам

Введение

Принципиальная схема взаимодействия

Аутентификация

Алгоритм регистрации данных

Принципиальная схема взаимодействия

Схема взаимодействия с системой COPYTRUST

Сформированные во внешней системе данные передаются на Шину Доступа COPYTRUST, где производится идентификация и аутентификация внешней системы.

Шина выполнена как web-сервис, доступный из сети Интернет, имеющий программный интерфейс, позволяющий производить регистрацию данных и получать ответы.

Взаимодействие с шиной может производиться с использованием протоколов SOAP поверх HTTP. Канал передачи данных защищается (опционально) с помощью технологии SSL.

Переданные на шину данные передаются в систему COPYTRUST, где формируются данные для регистрации и производятся регистрации. Через шину доступа внешняя система уведомляется об успехе или неудаче при регистрации. В случае неудачи предоставляется информация о причине ошибки. 

Информация о зарегистрированных данных, поступивших из внешних систем, учитываются отдельно для каждой внешней системы и пользователя.

Аутентификация

Реализованы 2 варианта аутентификации при вызове SOAP-методов web-службы: 

  • Basic http аутентификация. При вызове методов web-службы клиентское приложе-ние должно передать имя пользователя и пароль. Т.к. реквизиты доступа переда-ются в открытом виде и потенциально доступны для перехвата злоумышленником, этот вариант следует использовать только при технической сложности реализации SSL/TLS аутентификации. Имя пользователя и пароль выдаются технической служ-бой COPYTRUST при подключении внешней системы;
  • SSL/TLS аутентификация. Данный вариант реализует защиту канала и удостовере-ние подлинности клиента и службы через механизм SSL. На хосте внешней системы должны быть заранее установлены сертификаты и настроен обмен данными с web-службой через HTTPS. Клиентский сертификат выдается технической службой COPYTRUST при подключении внешней системы.

Алгоритм регистрации данных

Выполнение некоторых операций (например, регистрация файла электронного документа – метод SubmitFileRegistrationTask или регистрация веб-страницы – метод SubmitUrlRegistrationTask) может занимать значительное время на обработку на сервере регистрации. Для таких операций web-служба может (опционально) вызвать URL-обработчик на стороне внешней системы, передавая результаты операции в теле сообще-ния. Адреса URL-обработчиков должны быть переданы технической службе COPYTRUST при подключении внешней системы. 

Для инициации длительной операции внешняя система передает запрос на выполнение операции вызовом соответствующего метода web-службы сервиса, передавая необходимые входные данные. 

После успешного приема запроса и сохранения данных, веб-служба возвращает уникаль-ный идентификатор задания – TaskID (строку в формате GUID). 

В результате выполнения задания на сервере регистрации web-служба вызывает URL-обработчик на стороне внешней системы, передавая идентификатор выполненного задания 

TaskID, уникальный идентификатор зарегистрированных данных - RID и другие данные.

Если такой вариант уведомления внешней системы по каким-то причинам неудобен, то присутствует возможность запросить у web-службы результат выполнения операции путем вызова соответствующего метода GetTaskInfo. 

В случае успешного выполнения задания внешняя система может запросить сведения о зарегистрированных данных с помощью метода GetRegistrationInfo. 

В целях повышения скорости обработки операций по обработке данных рекомендуется перед передачей данных файла для регистрации (с помощью метода SubmitFileRegistrationTask) предварительно проверить, не были ли эти данные зарегистри-рованы ранее, рассчитав SHA-1 хеш-код на стороне внешней системы и проанализировать результат вызова метода CheckRegistrationByDataHash. 

При вызове внешней системой функции регистрации данных она передает web-службе шины доступа e-mail пользователя (UserEMail) и UserID (строка, уникально идентифицирующая пользователя внешней площадки). Для этого пользователя создается учетная запись в системе COPYTRUST по следующему алгоритму: 

  • Проверяется, существует ли уже пользователь с переданным UserID; 
  • Если пользователь c таким UserID есть - данные регистрируются в его аккаунт, а в качестве e-mail  в данных регистрации будет указан переданный UserEMail; 
  • Если аккаунта пользователя c таким UserID еще нет - он создается на сайте систе-мы COPYTRUST (www.copytrust.ru), его логином является переданный UserEMail, пароль генерируется автоматически и отсылается пользователю письмом. Может возникнуть ситуация, когда аккаунт с таким UserEmail уже есть (например, он был создан ранее в результате самостоятельной регистрации пользователя на www.copytrust.ru). Тогда он повторно не создается, но в любом случае для данного пользователя запоминается его идентификатор во внешней системе UserID. В качестве UserID удобно использовать уникальный ID пользователя внешней системы в ее внутренней БД.

См. также документ с описанием API.