OAuth is the approved authentication method for external applications that need to access Salesforce data, including off-platform client applications and Heroku app integrations. Here are the key requirements:
1. **OAuth Implementation**: OAuth ensures secure authorization by allowing the application to make calls on behalf of the user while adhering to the principle of least privilege.
2. **Authentication Required**: External applications, including Heroku app integrations, must implement authentication before sending or accessing data. It's recommended to use secure methods like OAuth 2.0 or other appropriate authentication mechanisms.
3. **Individual Authentication**: Each external application that integrates with your package must implement its own authentication. Each subscriber is required to go through the OAuth flow and provide consent for data access.
4. **Prohibited Practices**:
- Storing Salesforce usernames and passwords, whether through the OAuth flow or otherwise, is not permitted
- Packaging credentials for accessing external servers within your package is not allowed
5. **Security and Compliance**: The authentication implementation must ensure data security and compliance with best practices to protect customer data.
These requirements ensure secure, authorized access while maintaining the principle of least privilege and protecting sensitive credentials.