Client applications that access your organization's Salesforce.com data are subject to the same security protections that are used in the Salesforce.com user interface. Additional protection is available for organizations that install Force.com AppExchange managed packages if those packages contain components that access Salesforce.com via the API.
Client applications must log in using valid credentials for an organization. The server authenticates these credentials and, if valid, provides the client application with:
Salesforce.com supports only the Secure Sockets Layer (SSL) protocol SSLv3 and the Transport Layer Security (TLS) protocol. Ciphers must have a key length of at least 128 bits.
An organization's Salesforce.com administrator controls the availability of various features and views by configuring profiles and assigning users to them. To access the API (to issue calls and receive the call results), a user must be granted the “API Enabled” profile permission. Client applications can query or update only those objects and fields to which they have access via the profile of the logged-in user.
To create, edit, or delete a profile, go to in the Salesforce.com user interface.
Users can obtain their security token by changing their password or resetting their security token via the Salesforce.com user interface. When a user changes their password or resets their security token, Salesforce.com sends a new security token to the email address on the user's Salesforce.com record. The security token is valid until a user resets their security token, changes their password, or has their password reset.
When a user's password is changed, the user's security token is automatically reset. The user will experience a blocked login until he or she adds the automatically-generated security token to the end of his or her password or enters the new password after the administrator adds their IP address to the organization's list of trusted IP addresses.
If Single Sign-On (SSO) is enabled for your organization, users who access the API or a desktop client cannot log in to Salesforce.com unless their IP address is included on your organization's list of trusted IP addresses or on their profile, if their profile has IP address restrictions set. Futhermore, the delegated authentication authority usually handles login lockout policies for users with the “Uses Single Sign-On” permission. However, if the security token is enabled for your organization, then your organization's login lockout settings determine the number of times a user can attempt to log in with an invalid security token before being locked out of Salesforce.com. For more information, see “Setting Login Restrictions” and “Setting Password Policies” in the online help.
In the Salesforce.com user interface, sharing refers to the act of granting read or write access to a user or group so that they can view or edit a record owned by other users, if the default organization access levels do not otherwise permit such access. All API calls respect the sharing model.
The following table describes the types of access levels.
| API Value | Salesforce.com User Interface Label | API Picklist Label | Description |
|---|---|---|---|
| Private | Private | Only the record owner and Users above that role in the hierarchy can view and edit the record. | |
| Read Only | Read Only | All Users and Groups can view the record but not edit it. Only the owner and users above that role in the hierarchy can edit the record. | |
| Read/Write | Read/Write | All Users and Groups can view and edit the record. | |
| Read/Write/Transfer | Read/Write/Transfer | All Users and Groups can view, edit, delete, and transfer the record. (Only available for cases and leads as an organization-wide default setting.) | |
| Full Access | Owner | All Users and Groups can view, edit, transfer, delete, and share the record. (Only available for campaigns as an organization-wide default setting.) | |
| Controlled by Parent | Controlled By Parent | (Contacts only.) All Users and Groups can perform an action (such as view, edit, or delete) on the contact based on whether he or she can perform that same action on the record associated with it. |
Not all access levels are available for every object. See the Fields table for each object to learn which access levels are available, as well as other sharing details specific to that object.
For more information about sharing in general, see the Salesforce.com online help.
Certain objects can be created or deleted only in the Salesforce.com user interface. Other objects are read-only—client applications cannot create(), delete(), or update() such objects. Similarly, certain fields within some objects can be specified on create() but not on update(). Other fields are read-only—client applications cannot specify field values in create() or update() calls. For more information, see the respective object descriptions in Standard and Custom Object Basics.
Editing API access for a package is done in the Salesforce.com user interface. For more information, see “Managing API and Dynamic Apex Access in Packages” in the Salesforce.com online help.
API access for a package affects the API requests originating from components within the package; it determines the objects that the API requests can access. If the API access for a package is not defined, then the objects that the API requests have access to are determined by the user's profile permissions.
The API access for a package never allows users to do more than the permissions granted on the user's profile. API access in a package only reduces what the user's profile allows.
Choosing Restricted for the API Access setting in a package affects the following:
To manage API access to packages, see “Managing API and Dynamic Apex Access in Packages” in the Salesforce.com online help.
For security reasons, Salesforce.com restricts the outbound ports you may specify to one of the following:
The port restriction applies to any feature where a port is specified, for example outbound messages, AJAX proxy, or single-sign on.