Вы находитесь здесь:
Поток регистрационных данных клиента OAuth 2.0 для интеграции между серверами
Иногда требуется прямой общий доступ к информации между двумя приложениями без вмешательства пользователя. Для этих сценариев можно использовать поток регистрационных данных клиента OAuth 2.0. В этом потоке клиентское приложение обменивает свои регистрационные данные клиента, определенные во внешнем клиентском приложении - его ключ пользователя и секрет пользователя - на маркер доступа. Этот поток устраняет необходимость четкого взаимодействия с пользователем, но требует указания пользователя интеграции для выполнения интеграции. Вы можете использовать этот поток в качестве более безопасной альтернативы потоку имени пользователя и пароля OAuth 2.0.
Требуемые версии
| Доступно в версиях: Salesforce Classic и Lightning Experience |
| Доступно в версиях: Все выпуски |
Чтобы использовать поток регистрационных данных клиента, необходимо создать приложение внешнего клиента и настроить его параметры OAuth и политики доступа.
Например, вы создаете настраиваемое приложение для запуска автоматических отчетов из Salesforce. Вы хотите, чтобы приложение запускало отчеты каждый вечер. Чтобы интегрировать настраиваемое приложение в Salesforce, настройте приложение внешнего клиента. Потом, чтобы настроить приложение внешнего клиента для потока регистрационных данных клиента, включите поток и назначьте пользователя интеграции. Когда служба ночных отчетов запускается, настраиваемое приложение открывает данные Salesforce, выполняя следующие общие шаги.
- Приложение внешнего клиента отправляет свои регистрационные данные клиента в конечную точку маркера OAuth Salesforce посредством запроса POST.
- Salesforce проверяет регистрационные данные клиента и подлинность приложения.
- Salesforce возвращает маркер доступа от имени назначенного пользователя интеграции.
- Приложение внешнего клиента использует маркер доступа для вызова Salesforce API, например, REST API.
- API отвечает запрошенными данными для отчета.
Запрос маркера доступа
Рассмотрим процесс получения маркера доступа посредством потока регистрационных данных клиента.
Чтобы запустить поток, приложение внешнего клиента публикует регистрационные данные клиента в конечной точке маркера Salesforce. Вы можете добавить регистрационные данные клиента в качестве параметров в текст запроса. Или для обеспечения дополнительной безопасности разместите регистрационные данные клиента в заголовке базовой авторизации.
Ниже указан пример запроса POST с регистрационными данными клиента в тексте запроса.
POST /services/oauth2/token HTTP/1.1
Host: MyDomainName.my.salesforce.com
grant_type=client_credentials&
client_id=*******************&
client_secret=*******************В этом процессе запросы на https://login.salesforce.com и https://test.salesforce.com не поддерживаются. Используйте URL-адрес «Моего домена». Чтобы найти URL-адрес «Моего домена», введите строку «Мой домен» в поле «Быстрый поиск» в меню «Настройка» и выберите пункт «Мой домен».
Данные параметры должны быть добавлены в запрос.
| Параметр | Описание |
|---|---|
client_id |
Ключ пользователя приложения внешнего клиента. Чтобы получить доступ к ключу пользователя, найдите приложение внешнего клиента в менеджере приложений внешних клиентов и выберите «Редактировать параметры» в раскрывающемся списке. Потом разверните раздел «Параметры OAuth» и нажмите «Ключ и секрет пользователя». Иногда требуется проверить подлинность пользователя перед просмотром ключа пользователя. |
client_secret |
Секрет пользователя приложения внешнего клиента. Чтобы открыть секрет пользователя, найдите приложение внешнего клиента в менеджере приложений внешнего клиента и выберите «Редактировать параметры» в раскрывающемся списке. Потом разверните раздел «Параметры OAuth» и нажмите «Ключ и секрет пользователя». Иногда требуется проверить подлинность пользователя перед просмотром секрета клиента. |
grant_type |
Тип предоставления OAuth 2.0, запрашиваемый приложением внешнего клиента. Для потока регистрационных данных клиента это значение должно быть установлено на Подробное объяснение типа предоставления регистрационных данных клиента см. в разделе 4.4 Предоставление регистрационных данных клиента в основе авторизации OAuth 2.0 от Инженерно-технической целевой группы по Интернету. |
Ниже указан пример с регистрационными данными клиента в заголовке базовой авторизации. В этом формате client_id добавляется к client_secret в client_id:client_secret формата, и итоговое значение кодируется Base64.
POST /services/oauth2/token HTTP/1.1
Host: MyDomainName.my.salesforce.com
Header: Authorization: Basic
TXlDbGllbnRJRDpNeUNsaWVudFNlY3JldA==
grant_type=client_credentialsЕсли вы используете этот формат, grant_type является единственным обязательным параметром в тексте запроса. grant_type должен быть установлен на client_credentials.
Salesforce предоставляет маркер доступа
После проверки регистрационных данных клиента Salesforce возвращает ответ, содержащий маркер доступа и запрошенные области. Приложение может использовать маркер доступа для доступа к защищенным данным в Salesforce.
Ниже указан пример ответа на маркер доступа в формате JSON.
{
"access_token": "*******************",
"instance_url": "https://yourInstance.salesforce.com",
"id": "https://login.salesforce.com/id/XXXXXXXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXX",
"token_type": "Bearer",
"scope": "id api",
"issued_at": "1657741493799",
"signature": "c2lnbmF0dXJl"
}Данные параметры добавлены в ответ.
| Параметр | Описание |
|---|---|
access_token
|
Маркер OAuth, используемый внешним клиентским приложением для запроса доступа к защищенному ресурсу от имени клиентского приложения. Маркер доступа может сопровождаться дополнительными полномочиями в виде областей. |
instance_url
|
URL-адрес экземпляра организации пользователя. Например: https://yourInstance.salesforce.com/. |
id
|
URL-адрес удостоверения, который можно использовать для идентификации организации и пользователя интеграции. Формат URL-адреса: https://login.salesforce.com/id/orgID/userID. |
token_type
|
Тип Bearer маркера, используемый для всех ответов, содержащих маркер доступа.
|
scope
|
Области, связанные с маркером доступа. Области дополнительно определяют тип защищенных ресурсов, доступных клиенту. Вы назначаете области внешнему клиентскому приложению при его создании, и они добавляются в маркеры OAuth во время процесса авторизации. Поскольку поток регистрационных данных клиента не поддерживает сеансы пользовательского интерфейса и не выдает маркер обновления, Salesforce автоматически фильтрует эти области.
Для дополнительных сведений см. «Области и маркеры OAuth». |
issued_at
|
Отметка времени создания подписи в миллисекундах. |
signature
|
Подпись HMAC-SHA256, зашифрованная в Base64, подписанная client_secret. Подпись может содержать конкатенированный код и значение issued_at, которые можно использовать для проверки того, что URL-адрес удостоверения не изменился после отправки сервером. |
