The security of our API calls is of utmost importance to One45. Due to the immense power that our APIs hold, we've instituted best practices for ensuring your data is safe and secure.
In order to understand how we're securing our API requests, let's start by defining the two cornerstones of web-based security and how we're using them in our APIs:
Important! When we talk aboout authentication and authorization, we're referring to this only in the context of establishing a connection between your application and the One45 system. It is solely the responsibility of your application to implement it's own authentication and authorization for its own end users.
We use the industry-standard and battle hardened OAuth 2.0 implementation (http://oauth.net/2/) to authorize all API calls. This technology is used by many companies including Google, Facebook, and Twitter. Oauth 2.0 introduces the concept of using access tokens to authorize API requests in a secure fashion. Access tokens can be thought of as short-lived 'guest passes' to our system that must be generated by our OAuth token generation API (see Table A for description). OAuth will only generate access tokens for requests that have valid client key and secret pairs. Additionally, client key and secret pairs can only be generated by your institution's designated keyholders. As an application developer, you'll have to request the keyholder to generate a client key and secret in order to access the One45 APIs.
For more information, see OAuth 2.0 documentation
Term name | Description | Generated by | Lifespan |
client_key | An identifier for an external application, used for generating an access_token. | The 'Keyholder' user via API Portal's "Manage Applications" page. | Indefinite, until keyholder revokes client access |
client_secret | An password associated with a client key, used in conjunction with key to generate an access_token. | The 'Keyholder' user via API Portal's "Manage Applications" page. | Indefinite, until keyholder revokes client access |
access_token | A short-lived token that provides authorization to API requests it's attached to. | The "generate" API operation, using client key & secret. | 4 hours* |
*or until a new access_token is generated |
For best security practices, we strongly recommend:
For a simplified view of the above steps, refer to the sequence diagram in Figure A.