WL#12503: Authentication for HTTP component

Affects: Server-8.0   —   Status: Complete

Motivation

The HTTP component of the MySQL Router (WL#11891) provides basic HTTP support.

Authentication for HTTP as defined by RFC 7235 is need to protect resources exposed by the HTTP component to authenticated users.

While HTTP specifies several Authentication methods "Basic" RFC 7617 is the most widely supported and allows most flexible integration with credential stores.

Note: Digest Authentication also exists (RFC 7616), but only the insecure "MD5" method is widely supported by clients.

Design Requirements

  1. Credentials stored by the HTTP Component MUST be stored securely.
  2. Follow RFC 7617 and RFC 7235 to integrate with existing HTTP clients.
  3. Credential store must be managable independent of a running HTTP component.

Goal

  • Allow authentication via Basic Authentication RFC 7617
  • Allow authentication against a secure, file based password storage
  • Provide a standalone tool to manage secure, file based password storage