Loading
Идентификация пользователей и управление доступом
Процесс маркера гибридного пользователя-агента OAuth 2.0 для управления веб-сеансами

Процесс маркера гибридного пользователя-агента OAuth 2.0 для управления веб-сеансами

Используйте процесс маркера гибридного пользователя-агента OAuth 2.0 для предоставления гибридным приложениям прямого управления веб-сеансами. Когда сервер авторизации предоставляет маркер доступа, он добавляет коды сеансов (SID) для запрошенных доменов в ответ. После авторизации гибридное приложение может установить cookie-файлы Lightning, Visualforce и домена содержимого и связать маркер доступа с веб-сеансом, предоставив непрерывное обслуживание.

Требуемые версии

Доступно в версиях: Salesforce Classic и Lightning Experience
Доступно в версиях: Все выпуски
Примечание
Примечание Mobile SDK 9.1 поддерживает потоки гибридного приложения OAuth 2.0.

Поток гибридного маркера пользователя-агента выполняет те же действия авторизации, что и в потоке пользователя-агента, за исключением того, что гибридный поток маркера пользователя-агента использует 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».

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

  • content (запрашивает SID содержимого и домен)
  • lightning (запросы Lightning SID и домен)
  • visualforce (запрашивает Visualforce SID и домен)
  • refresh_token (запросы возобновленных сеансов)
state Любое состояние, запрашиваемое внешней веб-службой для отправки на URL-адрес обратного вызова. Это значение должно быть зашифровано как URL-адрес.
display

Изменение типа отображения страниц входа и авторизации. Salesforce поддерживает следующие значения.

  • page —Полностраничное окно авторизации (по умолчанию).
  • popup: компактный диалог, оптимизированный для современных всплывающих окон веб-обозревателя.
  • touch — Оптимизированный для мобильных устройств диалог, предназначенный для современных мобильных устройств, например, Android и iPhone.
  • mobile: диалог, оптимизированный для мобильных устройств, например, BlackBerry, операционная система 5.
login_hint

Данное поле содержит допустимое значение имени пользователя для предварительного заполнения страницы входа именем пользователя (например, login_hint=username@company.com). Если у пользователя уже есть активный сеанс в обозревателе, параметр login_hint не работает, и активный сеанс пользователя продолжается.

Чтобы передать параметр login_hint для сайтов Experience Cloud, также передайте параметр prompt=login. Вместе эти параметры перенаправляют пользователя на страницу входа с правильной подсказкой входа.

nonce Рекомендуем использовать область openid для запроса маркера кода пользователя. Маркер кода пользователя возвращается в ответе. Этот параметр необязателен, но он помогает обнаружить атаки повтора.
prompt

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

  • login—Сервер авторизации должен напоминать пользователю о необходимости повторной проверки подлинности, вынуждая его выполнить повторный вход.
  • consent—Сервер авторизации должен сообщить пользователю о необходимости повторного утверждения перед возвратом сведений клиенту.
  • select_account—При наличии, выполните одно из указанных ниже действий.
    • При наличии нуля или одной подсказки и входе пользователя отобразите страницу утверждения без запроса входа.
    • Если доступно ноль или одна подсказка, а пользователь не вошел, попросите вход.
    • При наличии более одной подсказки отобразите средство выбора организации.

Вы можете передать значения login и consent, разделенные пробелом, чтобы потребовать входа и повторной проверки подлинности пользователя. Например: ?prompt=login%20consent

Пользователи проверяют подлинность и авторизуют доступ

Пользователь входит в 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

Маркер, полученный из процесса маркера веб-сервера, пользователя-агента или гибридного приложения. Это значение является секретом. Принять надлежащие меры для его защиты.

Маркер обновления для гибридного процесса маркера пользователя- агента выдается только при запросе scope=refresh_token и выполнении одного из следующих сценариев.

  • URL-адрес переадресации использует настраиваемый протокол.
  • Хост URL-адреса переадресации соответствует хосте запроса и содержит серверные службы/oauth2/success. Например:
    • https://login.salesforce.com/services/oauth2/success
    • https://test.salesforce.com/services/oauth2/success
    • https://MyDomainName.my.salesforce.com/services/oauth2/success
    • https://MyDomainName.my.site.com/services/oauth2/success
  • The redirect URL is https://mobileauth.salesforce.com/oauth/done

Маркер обновления, предоставленный в этом потоке, полностью совместим со стандартным процессом маркера обновления 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 содержимого: MyDomainName.file.force.com → content_sid.

Это значение будет получено только при назначении области content.

content_sid

SID, связанный с доменом сеанса содержимого. Salesforce возвращает уникальный SID, который гибридное приложение напрямую устанавливает в cookie-файле сеанса домена.

Это значение будет получено только при назначении области content.

lightning_domain

Домен сеанса Lightning, сопоставляющий с SID содержимого: MyDomainName.lightning.force.com → lightning_sid.

Это значение будет получено только при назначении области lightning.

lightning_sid

SID, связанный с доменом сеанса Lightning. Salesforce возвращает уникальный SID, который гибридное приложение напрямую устанавливает в cookie-файле сеанса домена.

Это значение будет получено только при назначении области lightning.

visualforce_domain

Домен сеанса Visualforce, сопоставляющий с SID содержимого: MyDomainName.vf.force.com → visualforce_sid.

Это значение будет получено только при назначении области visualforce.

visualforce_sid

SID, связанный с доменом сеанса Visualforce. Salesforce возвращает уникальный SID, который гибридное приложение напрямую устанавливает в cookie-файле сеанса домена.

Это значение будет получено только при назначении области visualforce.

token_type Тип маркера Bearer, используемый для всех ответов, содержащих маркер доступа.
csrf_token

Маркер подделки межсайтовых запросов (CSRF) для предотвращения атак во время дочерних сеансов.

Это значение будет получено только при назначении области lightning.

sidCookieName Имя cookie-файла сеанса, используемого гибридным приложением для прямого соединения веб-сеанса. Значение по умолчанию: sid.
   
cookie-sid_Client Cookie-файл сеанса, который обнаруживает и предотвращает подделку сеанса. Этот cookie-файл сеанса позволяет гибридному приложению напрямую соединять веб-сеанс.
cookie-clientSrc Cookie-файл сеанса, используемый для защиты безопасности. Этот cookie-файл сеанса позволяет гибридному приложению напрямую соединять веб-сеанс.

Ответ также может содержать следующие параметры.

Параметр Описание
id_token

Подписанная структура данных, содержащая проверенные атрибуты пользователя, включая уникальный идентификатор пользователя и отметку времени, указывающую время выпуска маркера. Он также определяет запрашивающее клиентское приложение. См. Спецификации OpenID Connect.

Этот параметр возвращается, если параметр области содержит openid.

sfdc_site_url Если пользователь является участником сайта Experience Cloud, предоставляется URL-адрес сайта.
sfdc_site_id Если пользователь является участником сайта Experience Cloud, ему предоставляется код сайта.

Приложение устанавливает SID домена и соединяет веб-сеанс

Гибридное приложение устанавливает связанные SID доменов в cookie-файлах сеанса для прямого соединения веб-сеанса. Для получения примеров cookie-файлов, заданных для каждого домена, см. Управление cookie-файлами потока гибридного приложения OAuth 2.0.

В внедрениях, сбрасывающих подразделение пользователя на объекты для параметра «Сбросить стандартное подразделение при входе», гибридное приложение должно соединять веб-сеанс посредством frontdoor.jsp. Дополнительную информацию см. в разделе «Использование Frontdoor.jsp для соединения сеансов с Salesforce». Дополнительные сведения о подразделениях пользователей см. в разделе «Организация данных посредством подразделений».

 
Загрузка
Salesforce Help | Article