Вы находитесь здесь:
Процесс маркера гибридного пользователя-агента OAuth 2.0 для управления веб-сеансами
Используйте процесс маркера гибридного пользователя-агента OAuth 2.0 для предоставления гибридным приложениям прямого управления веб-сеансами. Когда сервер авторизации предоставляет маркер доступа, он добавляет коды сеансов (SID) для запрошенных доменов в ответ. После авторизации гибридное приложение может установить cookie-файлы Lightning, Visualforce и домена содержимого и связать маркер доступа с веб-сеансом, предоставив непрерывное обслуживание.
Требуемые версии
| Доступно в версиях: Salesforce Classic и Lightning Experience |
| Доступно в версиях: Все выпуски |
Поток гибридного маркера пользователя-агента выполняет те же действия авторизации, что и в потоке пользователя-агента, за исключением того, что гибридный поток маркера пользователя-агента использует hybrid_token в качестве типа предоставления. Например, вы создаете гибридное приложение для отдела продаж для доступа к информации на ходу, включительно с панелью мониторинга, отслеживающей лучших потенциальных клиентов. Это приложение реализует гибридный поток маркера пользователя-агента, который выполняет следующие действия.
- Чтобы интегрировать гибридное приложение в Salesforce API, создайте приложение внешнего клиента. Включите параметры OAuth и назначьте данные области OAuth внешнему клиентскому приложению:
-
-
lightning -
content -
refresh_token -
visualforce -
web
-
- Конечный пользователь открывает приложение и направляется в Salesforce для проверки подлинности и авторизации приложения.
- После утверждения пользователем доступа для этого процесса авторизации приложение внешнего клиента получает обратный вызов из Salesforce на URL-адрес переадресации, который извлекает маркеры доступа и обновления. Visualforce, Lightning и SID содержимого для соответствующих доменов также добавлены вместе с cookie-файлами сеанса, которые позволяют приложению напрямую соединять веб-сеанс.
- Приложение устанавливает cookie-файлы сеанса доменов Lightning, Visualforce и содержимого и соединяет маркер доступа с веб-сеансом.
- Пользователь имеет доступ к панели мониторинга лучших потенциальных клиентов по продажам без прерываний сеансов.
Ниже указана разбивка каждого этапа процесса гибридного приложения OAuth 2.0.
- Создайте приложение внешнего клиента для гибридного приложения.
- Приложение перенаправляет пользователей в конечную точку авторизации.
- Пользователь проверяет подлинность и авторизует доступ.
- Salesforce предоставляет маркер доступа и запрошенные области.
Примечание Поток гибридного пользователя-агента может выдавать только непрозрачные маркеры доступа. Он не поддерживает маркеры доступа на основе JWT. - Приложение напрямую устанавливает SID в cookie-файлах сеанса доменов и соединяет веб-сеанс.
Переадресация на конечную точку авторизации
Чтобы получить авторизацию пользователя для доступа к данным Salesforce, приложение перенаправляет пользователя в конечную точку авторизации. Ниже указан пример переадресации HTTP.
https://login.salesforce.com/services/oauth2/authorize?response_type=hybrid_token&
client_id=3MVG9lKcPoNINVBIPJjdw1J9LLJbP_pqwoJYyuisjQhr_LLurNDv7AgQvDTZwCoZuDZrXcPCmBv4o.8ds.5iE&
redirect_uri=https%3A%2F%2Flogin.salesforce.com%2Fservices%2Foauth2%2Fsuccess&scope=web%20visualforce%20refresh_token%20lightning%20content
Добавьте следующие параметры в URL-адрес.
| Параметр | Описание |
|---|---|
| Конечная точка авторизации OAuth 2.0 | Конечная точка авторизации OAuth 2.0 экземпляра Salesforce. Внешние клиентские приложения отправляют запросы авторизации OAuth в эту конечную точку. |
client_id
|
Ключ пользователя приложения внешнего клиента. Чтобы получить доступ к ключу пользователя, найдите приложение внешнего клиента в менеджере приложений внешних клиентов и выберите «Редактировать параметры» в раскрывающемся списке. Потом разверните раздел «Параметры OAuth» и нажмите «Ключ и секрет пользователя». Иногда требуется проверить подлинность пользователя перед просмотром ключа пользователя. |
redirect_uri
|
URL-адрес, куда пользователи перенаправляются после успешной проверки подлинности. URI-адрес переадресации должен соответствовать одному из значений в поле URL-адреса обратного вызова приложения внешнего клиента. В противном случае утверждение не выполняется. URI-адрес переадресации можно найти на странице параметров OAuth приложения внешнего клиента. Это значение должно быть зашифровано как URL-адрес. |
response_type
|
Используйте значение hybrid_token. Можно также использовать значение token id_token с областью openid и параметром nonce. Если вы укажете token id_token, Salesforce вернет маркер кода в ответе. Для дополнительных сведений см. «Области и маркеры OAuth». |
Эти параметры необязательны.
| Параметр | Описание |
|---|---|
scope
|
Полномочия, определяющие тип защищенных ресурсов, доступных приложению внешнего клиента. Вы назначаете области внешнему клиентскому приложению при его создании, и они добавляются в маркеры OAuth во время процесса авторизации. Если вы не добавите этот параметр, будут запрошены все области, назначенные приложению внешнего клиента. Области, переданные в этом параметре, должны быть поднабором зарегистрированных областей. Действительные параметры см. в разделе «Области OAuth». Для этого процесса назначьте область
|
state
|
Любое состояние, запрашиваемое внешней веб-службой для отправки на URL-адрес обратного вызова. Это значение должно быть зашифровано как URL-адрес. |
display
|
Изменение типа отображения страниц входа и авторизации. Salesforce поддерживает следующие значения.
|
login_hint
|
Данное поле содержит допустимое значение имени пользователя для предварительного заполнения страницы входа именем пользователя (например, Чтобы передать параметр |
nonce
|
Рекомендуем использовать область openid для запроса маркера кода пользователя. Маркер кода пользователя возвращается в ответе. Этот параметр необязателен, но он помогает обнаружить атаки повтора. |
prompt
|
Указывает, как сервер авторизации напоминает пользователю о необходимости повторной проверки подлинности и повторного утверждения. Salesforce поддерживает следующие значения.
Вы можете передать значения |
Пользователи проверяют подлинность и авторизуют доступ
Пользователь входит в Salesforce с помощью своих регистрационных данных. Пользователь напрямую взаимодействует с конечной точкой авторизации, поэтому приложение не видит регистрационные данные пользователя.
После успешного входа Salesforce перенаправляет пользователей на страницу утверждения для предоставления доступа к приложению.
Salesforce предоставляет маркер доступа и запрошенные области
После утверждения доступа пользователя к приложению Salesforce перенаправляет пользователя на URL-адрес обратного вызова. Переадресация содержит предоставленный маркер доступа, запрошенные имена доменов, сеансы домена и связанные области. Приложение внешнего клиента извлекает маркер и параметры для доступа к ограниченным ресурсам от имени конечного пользователя.
Ниже указан пример обратного вызова с сервера. Ответ находится за хэштегом (#), а не в качестве параметров запроса HTTP.
https://www.customercontactinfo.com/user_callback.jsp#
access_token=yourtokenhere&
refresh_token=yourtokenhere&
instance_url=https://yourInstance.salesforce.com/
id=https://user.internal.salesforce.com/7443%2Fid%2F00Dxx0000006HM7EAM%2F005xx000001X8ErAAK&
issued_at=1604004352722&
signature=DcQ84..
content_domain=MyDomainName.file.force.com&
content_sid=00Dxx0000006Gb…&
lightning_domain=MyDomainName.lightning.force.com&
lightning_sid=00Dxx000000...&
visualforce_domain=MyDomainName.file.force.com&
visualforce_sid=00Dxx000000...&
sidCookieName=sid&
cookie-sid_Client=0000000...&
cookie-clientSrc=10.xxx.xx.xx&
csrf_token=eyJub...&
scope=web+visualforce+refresh_token+lightning+content&
token_type=Bearer
Ответ в примере содержит следующие параметры после хэштега (#). URL-адрес обратного вызова приложения внешнего клиента предшествует хэштегу (#).
| Параметр | Описание |
|---|---|
access_token
|
Маркер OAuth, используемый внешним клиентским приложением для запроса доступа к защищенному ресурсу от имени клиентского приложения. Маркер доступа может сопровождаться дополнительными полномочиями в виде областей. |
refresh_token
|
Маркер, полученный из процесса маркера веб-сервера, пользователя-агента или гибридного приложения. Это значение является секретом. Принять надлежащие меры для его защиты. Маркер обновления для гибридного процесса маркера пользователя- агента выдается только при запросе
Маркер обновления, предоставленный в этом потоке, полностью совместим со стандартным процессом маркера обновления OAuth. |
instance_url
|
URL-адрес экземпляра организации пользователя. Например: https://yourInstance.salesforce.com/. |
id
|
URL-адрес удостоверения, который можно использовать для идентификации пользователя и запроса дополнительных сведений о пользователе. См. URL-адреса удостоверения. |
issued_at
|
Отметка времени создания подписи в миллисекундах. |
signature
|
Подпись HMAC-SHA256, зашифрованная в Base64, подписанная client_secret. Подпись может содержать конкатенированный код и issued_at value, которые можно использовать для проверки того, что URL-адрес удостоверения не изменился с момента отправки сервером. |
scope
|
Области, связанные с маркером доступа. Области дополнительно определяют тип защищенных ресурсов, доступных клиенту. Вы назначаете области внешнему клиентскому приложению при его создании, и они добавляются в маркеры OAuth во время процесса авторизации. Действительные параметры см. в разделе «Области OAuth». |
content_domain
|
Домен сеанса домена, сопоставляющий с SID содержимого: Это значение будет получено только при назначении области |
content_sid
|
SID, связанный с доменом сеанса содержимого. Salesforce возвращает уникальный SID, который гибридное приложение напрямую устанавливает в cookie-файле сеанса домена. Это значение будет получено только при назначении области |
lightning_domain
|
Домен сеанса Lightning, сопоставляющий с SID содержимого: Это значение будет получено только при назначении области |
lightning_sid
|
SID, связанный с доменом сеанса Lightning. Salesforce возвращает уникальный SID, который гибридное приложение напрямую устанавливает в cookie-файле сеанса домена. Это значение будет получено только при назначении области |
visualforce_domain
|
Домен сеанса Visualforce, сопоставляющий с SID содержимого: Это значение будет получено только при назначении области |
visualforce_sid
|
SID, связанный с доменом сеанса Visualforce. Salesforce возвращает уникальный SID, который гибридное приложение напрямую устанавливает в cookie-файле сеанса домена. Это значение будет получено только при назначении области |
token_type
|
Тип маркера Bearer, используемый для всех ответов, содержащих маркер доступа. |
csrf_token
|
Маркер подделки межсайтовых запросов (CSRF) для предотвращения атак во время дочерних сеансов. Это значение будет получено только при назначении области |
sidCookieName
|
Имя cookie-файла сеанса, используемого гибридным приложением для прямого соединения веб-сеанса. Значение по умолчанию: sid. |
cookie-sid_Client
|
Cookie-файл сеанса, который обнаруживает и предотвращает подделку сеанса. Этот cookie-файл сеанса позволяет гибридному приложению напрямую соединять веб-сеанс. |
cookie-clientSrc
|
Cookie-файл сеанса, используемый для защиты безопасности. Этот cookie-файл сеанса позволяет гибридному приложению напрямую соединять веб-сеанс. |
Ответ также может содержать следующие параметры.
| Параметр | Описание |
|---|---|
id_token
|
Подписанная структура данных, содержащая проверенные атрибуты пользователя, включая уникальный идентификатор пользователя и отметку времени, указывающую время выпуска маркера. Он также определяет запрашивающее клиентское приложение. См. Спецификации OpenID Connect. Этот параметр возвращается, если параметр области содержит |
sfdc_site_url
|
Если пользователь является участником сайта Experience Cloud, предоставляется URL-адрес сайта. |
sfdc_site_id
|
Если пользователь является участником сайта Experience Cloud, ему предоставляется код сайта. |
Приложение устанавливает SID домена и соединяет веб-сеанс
Гибридное приложение устанавливает связанные SID доменов в cookie-файлах сеанса для прямого соединения веб-сеанса. Для получения примеров cookie-файлов, заданных для каждого домена, см. Управление cookie-файлами потока гибридного приложения OAuth 2.0.
В внедрениях, сбрасывающих подразделение пользователя на объекты для параметра «Сбросить стандартное подразделение при входе», гибридное приложение должно соединять веб-сеанс посредством frontdoor.jsp. Дополнительную информацию см. в разделе «Использование Frontdoor.jsp для соединения сеансов с Salesforce». Дополнительные сведения о подразделениях пользователей см. в разделе «Организация данных посредством подразделений».
