Loading
Идентификация пользователей и управление доступом
Содержание
Выбрать фильтры

          Результаты отсутствуют
          Результаты отсутствуют
          Ниже приведены некоторые советы по поиску.

          Проверьте орфографию ключевых слов.
          Воспользуйтесь более общим поисковым запросом.
          Выберите несколько фильтров для расширения области поиска.

          Выполните поиск по всей справке Salesforce.
          Ключ подтверждения для расширения обмена кодами (PKCE)

          Ключ подтверждения для расширения обмена кодами (PKCE)

          Чтобы повысить безопасность внедрений OAuth и поставщика проверки подлинности, используйте расширение ключа подтверждения OAuth 2.0 для обмена кодами (PKCE). PKCE можно требовать на уровне всей организации, требовать его для определенного связанного приложения и автоматически включать его для поддерживаемых поставщиков проверки подлинности.

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

          Доступно в версиях: все версии

          Во время потока кода авторизации OAuth и его производных расширение PKCE помогает обеспечить, что клиент, инициирующий поток, является тем же клиентом, который завершает поток. Во время этих потоков приложение запрашивает код авторизации в Salesforce, который потом обменивается на маркер доступа. Традиционно приложение может защитить запрос маркера, добавив свой секрет пользователя связанного приложения. Поскольку секрет пользователя — это информация, известная только приложению и Salesforce, она функционирует как пароль для доступа к конечной точке маркера Salesforce. Даже если взломщик каким-то образом получает доступ к коду авторизации, он не может использовать его для получения маркера доступа, если у него нет секрета пользователя.

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

          Не имея секрета пользователя, приложение уязвимо для злоумышленников, перехвативших код авторизации и пытающихся обменять его на маркер доступа. PKCE помогает заполнить пробел в секрете пользователя посредством набора хэшированных параметров, понятных только вашему приложению и Salesforce. Во время потока, внедряющего PKCE, приложение создает случайную строку, известную как параметр code_verifier. Потом хэшируется это значение посредством алгоритма SHA-256. Это хэшированное значение является параметром code_challenge. Ключевым понятием хэширования SHA-256 является то, что оно работает только в одном направлении. code_challenge можно получить из code_verifier, выполнив алгоритм SHA-256. Но вы не можете запустить его в обратном порядке, чтобы получить code_verifier от code_challenge.

          Понятие односторонней функции играет важную роль в том, почему PKCE работает. Когда приложение отправляет первичный запрос кода авторизации, оно содержит параметр хэшированного code_challenge. Потом, при запросе маркера доступа, он содержит параметр code_verifier. Salesforce использует оба параметра и может выполнить алгоритм SHA-256 на значении code_verifier для сравнения с code_challenge. Если значения совпадают, Salesforce может проверить отправку запроса на авторизацию и запроса на маркер одним приложением. Даже если у злоумышленника есть код авторизации, он не может обменять его на маркер доступа, поскольку у него нет параметров PKCE, известных только вашему приложению и Salesforce.

          Рекомендуем всегда внедрять PKCE для общедоступных клиентов. Для личных клиентов рекомендуем внедрить PKCE и добавить секрет пользователя в запросы маркеров.

          При необходимости внедрите PKCE, добавив параметры code_challenge и code_verifier при создании вариантов потока кодов авторизации в Salesforce. Эти потоки поддерживают PKCE.

          Чтобы обеспечить применение PKCE, рекомендуем принять следующие меры безопасности.

          • Создание параметров PKCE
            Используйте конечную точку генератора PKCE для быстрого создания параметров code_challenge и code_verifier, которые можно внедрить в вариантах потока кода авторизации.

          Создание параметров PKCE

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

          1. Включите общий доступ к ресурсам с запросом происхождения (CORS) для конечных точек OAuth, что автоматически включает CORS для конечной точки /services/oauth2/pkce/generator.
          2. Чтобы создать параметры code_challenge и code_verifier, отправьте запрос HTTP GET в конечную точку /services/oauth2/pkce/generator в URL-адресе входа «Моего домена» или URL-адресе сайта Experience Cloud. Не добавляйте заголовки или параметры текста в этот запрос.
            Ниже указан пример запроса, использующего URL-адрес входа «Моего домена».
            GET /services/oauth2/pkce/generator? HTTP 1.1
            Host: MyDomainName.my.site.salesforce.com
            Ниже указан пример запроса, использующего URL-адрес сайта Experience Cloud.
            GET /services/oauth2/pkce/generator? HTTP 1.1
            Host: MyDomainName.my.site.com
            Salesforce отвечает следующими параметрами PKCE.
            ПараметрОписание
            code_challenge_method Метод, используемый для вычисления code_challenge из code_verifier. Salesforce использует метод S256, который вычисляет code_challenge из code_verifier посредством алгоритма SHA256. Дополнительную информацию см. в разделе 4.2 в RFC 7636: Ключ подтверждения для обмена кодами общедоступными клиентами OAuth.
            code_challenge

            Указывает хэш-значение SHA256 значения code_verifier в запросе маркера. Значением является URL-адрес Base-64, зашифрованный в соответствии с разделом 5 RFC 4648: Кодировки данных Base16, Base32 и Base64.

            При настройке потока авторизации добавьте это значение в запрос авторизации.

            code_verifier

            Указывает 128 байтов случайных данных с высокой энтропией, чтобы затруднить угадывание значения кода. Установите этот параметр, чтобы предотвратить атаки перехвата кода авторизации. Значением является URL-адрес Base-64, зашифрованный в соответствии с разделом 5 RFC 4648: Кодировки данных Base16, Base32 и Base64.

            При настройке потока авторизации добавьте это значение в запрос маркера.

            Ниже приведен пример ответа.
            {
            “code_challenge_method”:“S256”
            “code_challenge”:“JB7nT*************”
            “code_verifier”:“GkLvw**************”
            }

          При настройке потока веб-сервера, потока гибридного веб-сервера и вариантов кода авторизации и потока регистрационных данных добавьте параметры code_challenge и code_verifier в запросы по назначению.

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