HTTP External Mechanism Support in Elytron

In  elytron

Overview

This proposal is to add support for the External HTTP mechanism with Elytron. This mechanism will perform no verification, but will authenticate a user based on credentials established externally. This will be used to accept a principal which is passed by the REMOTE_USER attribute in the AJP protocol.

Issue Metadata

Issue

Dev Contacts

QE Contacts

Testing By

[ ] Engineering

[X] QE

Affected Projects or Components

  • Security

Other Interested Projects

Requirements

Hard Requirements

  • New HTTP ExternalAuthenticationMechanism, ExternalMechanismFactory, and WildFlyElytronHttpExternalProvider classes

  • Ability to pass REMOTE_USER attribute from undertow to Elytron (via elytron-web)

Nice-to-Have Requirements

Non-Requirements

  • Note: This RFE does not make changes to the mod_cluster subsystem but will update the documentation to describe how to use the External mechanism for authentication with the Elytron subsystem

Test Plan

Community Documentation

  • Documentation will be added to General Elytron Architecture to reference the new mechanism being added.

  • Documentation will be added to mod_cluster Subsystem describing how to configure Elytron to authenticate a REMOTE_USER via the External HTTP Mechanism

Release Note Content

Users are now able to configure Elytron to use credentials established externally from the server to authenticate the client with HTTP. This will allow users to propagate authentication from mod-cluster/ajp to WildFly.