Многие пользователи в интеграции учетных записей и приложений - PullRequest
0 голосов
/ 23 ноября 2018

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

Однако учтите это: у меня есть 3 пользователя, перечисленные в моей демонстрационной учетной записи wowproj.dev@gmail.com: сам wowproj.dev@gmail.com и Мэри@ inbox.ru и Mike@inbox.ru.

Мне нужно знать две вещи:

1) могу ли я статически указывать пользователя при выполнении авторизации кода (скажем, по его «имени пользователя api»), так что пользователь должен тольконажмите какую-нибудь кнопку «ОК» (возможно, также введите свой пароль, но не имя пользователя) - это возможно?В противном случае возможно, что в моем приложении будут пользователи «Майк» и «Мэри», и эти пользователи также есть в моей учетной записи Docusign;затем пользователь моего приложения «Майк» начинает какое-то действие, но когда его спрашивают о согласии, «Мэри» вводит свои учетные данные Docusign и дает свое согласие.Я хочу, чтобы согласие было у Майка!Например, я мог сохранить имя пользователя API Mike в своей учетной записи в своем приложении и использовать его для предоставления прав доступа.Но, насколько я вижу, ни логин пользователя, ни его имя пользователя api не отправляются в Docusign в запросе кода авторизации, поэтому я не вижу, как добиться того, чего хочу.

2) Когда его спрашиваютв следующий раз подразумевается тот же пользователь - это может быть проблемой.Что если мой «Майк» из предыдущего абзаца, когда его спросит Docusign, введет свои учетные данные и даст свое согласие, то он выйдет из МОЕГО приложения, а Мэри войдет вместо этого и начнет какое-то действие с участием Docusign;примет ли Docusign, что это все еще сессия Майка?Как мне убедиться, что этого не происходит?

1 Ответ

0 голосов
/ 25 ноября 2018

Я не понимаю, как в вашем вопросе используется "подразумеваемый".Вот как это работает.Если у вас есть дополнительные вопросы, обновите (отредактируйте) свой исходный вопрос.

При использовании предоставления кода авторизации пользователь сначала идентифицирует себя в DocuSign.

Затем, если он еще не сделал этогопоэтому его просят дать согласие на интеграцию.Разрешения, запрошенные интеграцией, являются областями интеграции .Обычная область действия: подпись , могут быть и другие.

После того, как он даст согласие, служба авторизации DocuSign перенаправит браузер пользователя обратно к интеграции, и код авторизации будет включенв качестве параметра запроса.

Затем ваша интеграция выполняет oauth-вызов DocuSign, чтобы обменять код авторизации на токен доступа.

Далее (обычно) ваша интеграция использует метод OAuth :: getUserInfo для получения имени пользователя, адреса электронной почты, авторизованных учетных записей DocuSign и многого другого из DocuSign.

Обеспечениечто пользователь вашего приложения - пользователь DocuSign

Вы не можете принудительно установить, кто будет проходить аутентификацию с DocuSign.Но вы можете проверить, что правильный человек аутентифицирован.Например:

  1. Майк входит в ваше приложение.Вы знаете электронную почту Майка.
  2. Ваше приложение хочет, чтобы его пользователь прошел аутентификацию с DocuSign.Ваше приложение инициирует поток предоставления кода авторизации OAuth с помощью DocuSign.
  3. Пользователь вашего приложения теперь видит экран входа в DocuSign.
  4. (Проблема) в том, что Майк просит Мэри пройти аутентификацию в DocuSign для него.Мэри делает это.
  5. Но когда ваше приложение узнает адрес электронной почты аутентифицированного пользователя DocuSign, это будет адрес электронной почты Мэри, а не Майка.Таким образом, ваше приложение может отклонить аутентификацию DocuSign, отправив пользователю сообщение о том, что Mike должен пройти повторную аутентификацию с DocuSign.

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

Вместо сравнения адресов электронной почты вы также можете использовать идентификатор пользователя DocuSign.Но для этого необходимо выполнить загрузку приложения с таблицей, которая связывает учетную запись Майка и его идентификатор пользователя DocuSign.Адреса электронной почты, вероятно, проще.

Re: другие пользователи входят в систему после предыдущего сеанса

Существует два случая:

Один и тот же браузер на том же компьютере

Это «проблема общедоступного компьютера».

Майк использует браузер «G» для входа в ваше приложение, а также в DocuSign.Позже Мэри садится на свое место и использует тот же браузер и то же приложение.

По умолчанию предоставление кода авторизации OAuth для DocuSign включает автоматическую аутентификацию.Это означает, что поток аутентификации DocuSign молча позволит Мэри использовать сеанс DocuSign Майка (если он все еще активен).Для сценария с общественной машиной это явно нехорошо.Решения:

  1. Всегда требуйте, чтобы DocuSign активно аутентифицировал человека (автоматическая аутентификация не допускается).Для этого включите prompt=login в исходный URL-адрес, отправленный DocuSign.См. документы .

  2. Очистить куки браузера между пользователями.Стандартные методы работы с общедоступными компьютерами будут включать это.

Разные пользователи в одном приложении

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

Вся эта информация определяется как часть процесса аутентификации с DocuSign.

В наши дни все современные платформы веб-приложений предоставляют простой в использовании интерфейс сеансов.

У нас также есть примеры кода, которые вы можете использовать. См. Этот список хранилищ. (С дальнейшими подробностями.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...