Live data from Hacker News

Lessons from Failed DocuSign Integration

profsmallpine.com

21–30 of 85 posts

Re: Lessons from Failed DocuSign Integration

#21
post #20
post #14

I was on this project and can speak a bit more on the technical details here. A couple of high level goals: 1. We wanted to use their embedded flows, to keep the experience within our application as much as possible. 2. We wanted to avoid having to create a DS user for every user in our application that turned on this feature. We were looking for using 1 “API user” to make requests, handling data scoping ourselves wi…

>1. Go to an embedded page, authenticated as the “API user” (which looks like you’re sandboxed within DS to the embedded page) >2. Refresh the page >3. You now can click around the entire account - viewing any data that belongs to the API user (in our case, all of the data). I don't quite understand this. Shouldn't you be able to control what is displayed during the refresh?

No, their embedded view is hosted on their site. The functionality is directing to them to a page on their site, with a redirect URL to our app after they are "done" there. This allows DS to be embedded into app-side workflows.

Re: Lessons from Failed DocuSign Integration

#22

The author seems to have buried the lead here: "Someone on the team noticed that if you refresh the page, you get logged in as the user that was making the API request" And that is how the implementation works for many of Docusign's customers as a 'feature'. If that's true, that would seem like a potentially exploitable security hole. However, I'd have to question if that had something to do with the particular imple…

From what I can tell, the issue is that the OP was using a single user to perform all calls. They didn't want to sign users up individually, so they took this workaround route and found out that it wouldn't work after all. TLDR; they weren't using the API as intended because they wanted the DS part of the UX to be transparent to the user.

Re: Lessons from Failed DocuSign Integration

#24
post #20
post #14

I was on this project and can speak a bit more on the technical details here. A couple of high level goals: 1. We wanted to use their embedded flows, to keep the experience within our application as much as possible. 2. We wanted to avoid having to create a DS user for every user in our application that turned on this feature. We were looking for using 1 “API user” to make requests, handling data scoping ourselves wi…

>1. Go to an embedded page, authenticated as the “API user” (which looks like you’re sandboxed within DS to the embedded page) >2. Refresh the page >3. You now can click around the entire account - viewing any data that belongs to the API user (in our case, all of the data). I don't quite understand this. Shouldn't you be able to control what is displayed during the refresh?

I understood it as they were using the API for validation but loading the embedded content straight from DS, in which case they wouldn't be able to control whatever's displayed in the embed.

Re: Lessons from Failed DocuSign Integration

#25
post #21
post #20

Earlier quoted context omitted.

>1. Go to an embedded page, authenticated as the “API user” (which looks like you’re sandboxed within DS to the embedded page) >2. Refresh the page >3. You now can click around the entire account - viewing any data that belongs to the API user (in our case, all of the data). I don't quite understand this. Shouldn't you be able to control what is displayed during the refresh?

No, their embedded view is hosted on their site. The functionality is directing to them to a page on their site, with a redirect URL to our app after they are "done" there. This allows DS to be embedded into app-side workflows.

>No, their embedded view is hosted on their site.

Right, but aren't you telling them which view to show? For example, show document X for the user to sign.

Re: Lessons from Failed DocuSign Integration

#26
post #18
post #17

Earlier quoted context omitted.

We did exactly this integration, it was fairly seamless. I walked a Jr dev through the high level plan and we cooked up a POC in postman in about an hour that did a very rough bare bones version of what we were looking for. He was then able to run with that rough POC and build a production service that managed all of our docusign integration. I wonder what caused us to have such different experiences with the API.

You have definitely struck my curiosity - which version of this integration I outlined did you guys implement? 1. Embedded views + user creation w/o requiring email confirmation 2. Embedded views with 1 API User I don't want to assume anything here, but I think you either didn't build exactly what we were trying to, you are on the legacy version of their API, or you have that embedded view refresh bug I outlined live…

I just checked we are using the v2 rest api. We create a user, we do not send them an email, we then add the documents and setup the envelope, then direct them to the user's embed signing room.

I wish I could find the old postman POC since that would make it a lot easier for me to explain exactly our sequence of api calls.

Re: Lessons from Failed DocuSign Integration

#27
post #21
post #20

Earlier quoted context omitted.

>1. Go to an embedded page, authenticated as the “API user” (which looks like you’re sandboxed within DS to the embedded page) >2. Refresh the page >3. You now can click around the entire account - viewing any data that belongs to the API user (in our case, all of the data). I don't quite understand this. Shouldn't you be able to control what is displayed during the refresh?

No, their embedded view is hosted on their site. The functionality is directing to them to a page on their site, with a redirect URL to our app after they are "done" there. This allows DS to be embedded into app-side workflows.

[deleted]

Re: Lessons from Failed DocuSign Integration

#28
post #25
post #21

Earlier quoted context omitted.

No, their embedded view is hosted on their site. The functionality is directing to them to a page on their site, with a redirect URL to our app after they are "done" there. This allows DS to be embedded into app-side workflows.

>No, their embedded view is hosted on their site. Right, but aren't you telling them which view to show? For example, show document X for the user to sign.

Yes. The problem is that on page refresh, that constraint is lost and the user is logged into the account, in DS UI. They can click around anywhere at this point, outside of the page we specified.

Re: Lessons from Failed DocuSign Integration

#29
post #20

Earlier quoted context omitted.

>1. Go to an embedded page, authenticated as the “API user” (which looks like you’re sandboxed within DS to the embedded page) >2. Refresh the page >3. You now can click around the entire account - viewing any data that belongs to the API user (in our case, all of the data). I don't quite understand this. Shouldn't you be able to control what is displayed during the refresh?

I understood it as they were using the API for validation but loading the embedded content straight from DS, in which case they wouldn't be able to control whatever's displayed in the embed.

A user goes to a page and sees DocuSign view 1. Now they refresh and see DocuSign view 2 that shows everything. How did they get they get view 1 and why couldn't they do it again on refresh?

Re: Lessons from Failed DocuSign Integration

#30
post #14

I was on this project and can speak a bit more on the technical details here. A couple of high level goals: 1. We wanted to use their embedded flows, to keep the experience within our application as much as possible. 2. We wanted to avoid having to create a DS user for every user in our application that turned on this feature. We were looking for using 1 “API user” to make requests, handling data scoping ourselves wi…

When I read retrospectives like this, I wonder how many apps have this bug and don't know it.
Post reply on HN