WSDL сам по себе является лишь определением веб-службы и не контролирует фактический доступ к вашей организации.Чтобы получить доступ к вашей организации, идентификатор сеанса должен быть включен в каждый запрос к веб-сервису.Идентификаторы сеансов привязаны к определенному пользователю в вашей организации, поэтому вы также можете контролировать доступ к ним, предоставляя им свой профиль и блокируя доступ только к тому, что ему нужно.Профили связаны с объектами / полями, а не с самими веб-службами, и думают о том, что им потребуется для доступа с точки зрения данных, поскольку они всегда могут использовать тот же сеанс для доступа к другим веб-службам.В профиле также есть элементы управления доступом на уровне класса Apex, но это не мешает им выполнять те же операции с данными через API-интерфейсы SOAP, поэтому убедитесь, что их профиль предоставляет только то, к чему им нужен доступ, и это будет применятьсяповсюду.
Что касается получения идентификатора сеанса, это в некоторой степени зависит от того, как вы взаимодействуете с ними и каково их приложение.В общем, рекомендуемый способ - использовать OAuth (называемый «Удаленный доступ» в справке Salesforce), благодаря чему имена пользователей и пароли не должны использоваться в их приложении, а скорее отправляются непосредственно в Salesforce к концу.пользователь.В зависимости от приложения можно выбрать несколько различных потоков, которые описаны в справке.Документ REST API имеет хорошее введение в использование OAuht для получения идентификатора сеанса (он же «токен» в OAuth).Говоря о REST, вы можете даже рассмотреть возможность использования нового Apex REST API , который позволяет создавать аналогичные пользовательские веб-сервисы из Apex, но с интерфейсами REST.
API-интерфейсы для партнеров и предприятий такжеиметь метод login (), что удобно, поскольку он также основан на SOAP, но теряет предпочтение, поскольку приложение должно напрямую обрабатывать имя пользователя и пароль.Если вы воспользуетесь этой опцией, вы войдете в систему с использованием API-интерфейса Partner и Enterprise, получите идентификатор сеанса и затем переключитесь на свой пользовательский веб-сервис.Так что, да, для этой опции вам придется использовать как WSDL, так и WSDL для Partner или Enterprise, и просто игнорировать другие методы, но опять же, наличие только тех методов не означает, что они могут получить к ним доступ (например, если вы удалитеУдалить из своего профиля для данного типа объекта, они не смогут использовать метод delete () для него).