EP91: REST API Authentication Methods

This week’s system design refresher:


Vertical Vs Horizontal Scaling: Key Differences You Should Know


Top 9 Engineering blog favorites

There are over 1,000 engineering blogs. Here are my top 9 favorites:

graphical user interface, application

Over to you - What are some of your favorite engineering blogs?


REST API Authentication Methods

Authentication in REST APIs acts as the crucial gateway, ensuring that solely authorized users or applications gain access to the API's resources.

Some popular authentication methods for REST APIs include:

  1. Basic Authentication:
    Involves sending a username and password with each request, but can be less secure without encryption.

    When to use:
    Suitable for simple applications where security and encryption aren’t the primary concern or when used over secured connections.

  2. Token Authentication:
    Uses generated tokens, like JSON Web Tokens (JWT), exchanged between client and server, offering enhanced security without sending login credentials with each request.

    When to use:
    Ideal for more secure and scalable systems, especially when avoiding sending login credentials with each request is a priority.

  3. OAuth Authentication:
    Enables third-party limited access to user resources without revealing credentials by issuing access tokens after user authentication.

    When to use:
    Ideal for scenarios requiring controlled access to user resources by third-party applications or services.

  4. API Key Authentication:
    Assigns unique keys to users or applications, sent in headers or parameters; while simple, it might lack the security features of token-based or OAuth methods.

    When to use:
    Convenient for straightforward access control in less sensitive environments or for granting access to certain functionalities without the need for user-specific permissions.

Over to you: Which REST API authentication method do you find most effective in ensuring both security and usability for your applications?


Symmetric encryption vs asymmetric encryption

Symmetric encryption and asymmetric encryption are two types of cryptographic techniques used to secure data and communications, but they differ in their methods of encryption and decryption.


How does Redis persist data?

Redis is an in-memory database. If the server goes down, the data will be lost.

The diagram below shows two ways to persist Redis data on disk:

  1. AOF (Append-Only File)

  2. RDB (Redis Database)

diagram

Note that data persistence is not performed on the critical path and doesn't block the write process in Redis.