Срок действия URL-адреса подписи получателя DocuSign истек - PullRequest
0 голосов
/ 18 июня 2020

Мне нужно добавить DocuSign в мое приложение чата (iOS, Android, Windows), чтобы попросить подписать документы для всех участников чат-группы.

Я хочу реализовать DocuSign поток подписи без реализации Сервера: только реализация на стороне клиента Отправителя и Получателя (возможно ли это?).

Поток, который я себе вообразил:

  • Авторизованный отправитель создает конверт с вызовом Envelopes: create REST.
  • Другие участники должны подписать документ (учетная запись DocuSign не требуется) ...
  • ... поэтому мне нужно сгенерировать «URL-адрес получателя» для каждого члена с помощью вызова REST EnvelopeViews: createRecipient (кто вызывает эту конечную точку?)

Я тестировал этот поток с помощью Postman, и у меня есть несколько вопросов:

  1. EnvelopeViews: createRecipient требуется заголовок X-DocuSign-Authentication, поэтому этот запрос должен быть вызван со стороны отправителя, не так ли?
  2. EnvelopeViews: createRecipient возвращает URL-адрес, который можно использовать один раз, почему? Во второй раз, когда я использую этот URL, я получаю в качестве ответа 404.

Итак, я заметил, что Получатель не может использовать URL-адрес (предоставленный Отправителем) дважды, но он не может создать новый url каждый раз, потому что он не аутентифицирован (нет X-DocuSign-Authentication).

Как я могу правильно реализовать этот поток?

Ответы [ 2 ]

1 голос
/ 18 июня 2020

Множество хороших вопросов:

EnvelopeViews: createRecipient требует заголовка X-DocuSign-Authentication, поэтому этот запрос должен вызываться со стороны отправителя, не так ли?

  1. Не используйте заголовок X-DocuSign-Authentication. Это «устаревшая проверка подлинности», и DocuSign не поддерживает ее для новых приложений REST eSignature. Вместо этого используйте OAuth. Вероятно, поток предоставления JWT OAuth, поскольку этот поток позволяет вашему приложению олицетворять пользователя DocuSign (например, отправителя), когда пользователя нет.

  2. Вы может вызывать EnvelopeViews: createRecipient со своего сервера или из приложения браузера. Если вы звоните из своего браузера, вам необходимо реализовать частный шлюз CORS.

  3. В любом случае, когда подписывающая сторона готова подписать, вы получите URL-адрес церемонии подписания из EnvelopeViews : createRecipient API, а затем перенаправить браузер подписывающей стороны на URL.

EnvelopeViews: createRecipient возвращает URL-адрес, который можно использовать один раз, почему?

В целях безопасности. Это часть нашей архитектуры информационной безопасности. И не только URL-адрес церемонии подписания можно использовать только один раз, но и ограничен по времени. Его следует использовать в течение минуты или двух с момента его получения от DocuSign. Срок его действия истечет через 5 минут после его создания.

Второй раз, когда я использую этот URL, я получаю в качестве ответа 404.

Да, все так, как задумано. Вы получаете URL-адрес, а затем сразу перенаправляете подписавшего на URL-адрес. Затем они подписывают. Затем они перенаправляются обратно в ваше приложение.

Если вы хотите предоставить подписывающей стороне URL-адрес, который она может использовать позже, вы можете реализовать этот поток самостоятельно. Я описал это в других ответах.

Итак, я заметил, что Получатель не может использовать URL-адрес (предоставленный Отправителем) дважды, но он не может каждый раз генерировать новый URL-адрес, потому что он не аутентифицирован (нет X-DocuSign-Authentication).

Как я могу правильно реализовать этот поток?

Вы почти у цели. Реализуйте поток грантов JWT в своем приложении. Таким образом ваше приложение может выдавать себя за отправителя, даже когда его нет рядом. Когда подписывающая сторона хочет подписать, ваше приложение получает URL-адрес церемонии подписания из DocuSign, а затем перенаправляет для включения подписи.

Альтернативой, которая также работает нормально, является вход отправителя в DocuSign с помощью стандартного OAuth Предоставление кода авторизации. Это предоставит вашему приложению токен доступа и токен refre sh.

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

Позже, когда подписывающая сторона захочет sign, ваше приложение использует сохраненный в нем токен refre sh для создания нового токена доступа. Используйте токен доступа с методом API EnvelopeViews: createRecipient, чтобы получить URL-адрес церемонии подписания.

0 голосов
/ 18 июня 2020
  1. Заголовок X-DocuSign-Authentication - это устаревшая проверка подлинности, пожалуйста, не используйте ее, поскольку она не так безопасна, как современный OAauth.
  2. Опять же, безопасность. Каждый раз, когда вы хотите, чтобы кто-то подписал ваш код, должен генерироваться URL. Также обратите внимание, что вы не можете создать два URL-адреса. Только один действителен за раз. Ваше приложение должно иметь лог c, чтобы гарантировать, что только один пользователь подписывается и только в этот момент создается URL.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...