Запросы API Salesforce.com работают в контексте пользователя, идентифицируемого с помощью sessionId (он же access_token) (единственное исключение - неаутентифицированные пользовательские API, предоставляемые через сайты).
Таким образом, чтобы совершать вызовы API, вам понадобится идентификатор сеанса, вы можете получить его, как вы сказали, сохраняя маркер имени пользователя / пароля / безопасности и вызывая логин (или поток имени пользователя / пароля oauth2), когда вам это нужно.
В качестве альтернативы вы можете использовать интерактивный поток OAuth, который требует от пользователя только один раз авторизовать ваше приложение, после чего вам будет выдан долгоживущий токен, называемый токеном обновления. В любой момент после этого вы можете использовать сервис токенов oauth2, чтобы получить новый access_token (который может затем выполнять вызовы API), используя только токен обновления.
Похоже, что этот последний подход лучше всего соответствует вашим потребностям, для первоначальной авторизации вашего приложения потребуется только одноразовое взаимодействие с пользователем.