Skip to main content

Security best practices

Keep the private key in a secrets manager or HSM

Load it at runtime from AWS Secrets Manager, Azure Key Vault, HashiCorp Vault or an HSM. Never commit it, email it, paste it into a ticket, or send it to Ryno.

Use one credential per environment

Sandbox and production have separate certificates and client IDs. Never reuse a production key in sandbox.

Sign a fresh assertion every time

Use a new jti and a 60-second expiry. Never cache, log or reuse an assertion.

Cache tokens in memory only

Keep access tokens in process memory until shortly before they expire. Do not write them to disk, databases or logs.

Request the least scope

Only processes that write should request partner.write.

Keep clocks in sync

Run NTP on every server that signs assertions. Clock drift causes rejected assertions.

Verify every webhook

Check Ryno-Signature in constant time and reject deliveries older than five minutes. See Verifying deliveries.

Plan certificate rotation

Track the certificate's expiry date and request rotation well before it. If a key may be compromised, contact support immediately so Ryno can suspend the credential.