API Environments and Credential Management
Overview
Each RapidSOS service is deployed on several different infrastructure environments to facilitate development and testing new releases, preserving the security and privacy of live customer data.
Any details specific to an interface will be described in the documentation for that interface, however, all of them share the common base described in this document.
Environments
The following environments are defined in each API specification:
- Production
- Sandbox
When a Tech Partner API is used on one environment, the data is unique to that environment and not accessible by output APIs of other environments.
Production
- Full deployment of microservices to geographically-redundant clusters, API rate-limiting/throttling features enabled for denial of service protection, etc.
- Full data access controls
- All deployments handling live 9-1-1 in PSAPs should use this environment
Sandbox
- Exact clone of the production environment, with versions of software deployments identical to production
- Primarily intended for developer integration and testing
- Data access controls are lax compared to production - sensitive data should not be sent here
- No guarantees of uptime or data retention
Authentication & Encryption
RapidSOS currently supports two main modes for each interface:
- HTTPS with HTTP basic authentication
- HTTPS with OAuth2 2LO
Details for both modes are provided:
- HTTPS with HTTP basic authentication
- a mechanism that allows encrypted access to be conducted over the internet with usernames and passwords issued by RapidSOS to the interconnecting vendor or agency.
- Standard TLSv1.2 according to RFC 5246 must be used with single-sided authentication (server provides an X.509 certificate, but the client may be unauthenticated in the TLS handshake)
- Please note that TLSv1.0/TLSv1.1 are deprecated and should not be used
- Credentials must be sent in HTTP request headers following HTTP Basic Authentication according to RFC 2617.
- Requests with missing or unrecognized credentials will result in a standard HTTP 401: Unauthorized error.
- HTTPS with OAuth2 2LO mode
- similar to HTTPS with Basic Authentication, except that it includes an extra API call to an authentication server to obtain short-lived authorization Bearer tokens to be used in each request.
- In general this method is considered more secure than basic authentication since it is safe to log the entirety of the HTTP traffic (including headers) without compromising the credentials (since the tokens expire within 1 hour).
- When possible, RapidSOS recommends the use of this mode instead of Basic Authentication.
The sandbox described in this documentation accepts both modes simultaneously.
Credential Management
For All Environments
- Each set of credentials rate-limited to 1000 requests per minute, and monitored for abuse against a set of heuristics
Credential Usage Guidelines and Limits
- These expiration and rate limiting are configurable if need be, but it is not recommended to deviate too far from security best practices whenever possible.
- It is expected that credentials would normally be deployed on a per-partner basis in a B2B2B type use case