This topic describes aspects of authentication selectors within the context of PingFederate, including implementation, context selection, and callbacks.
Authentication selector interface
Authentication selectors allow PingFederate to choose an appropriate authentication source, an identity provider (IdP) adapter or an IdP connection (for federation hub use cases), based on criteria defined in the authentication selector instance.
When creating an authentication selector, use the following primary Java packages:
For each authentication selector implementation, in addition to the methods described under Shared plugin interfaces, you must define the following:
- Context Selection
- Authentication selector callback
selectContext() method to determine which
authentication source to select. The
contains the list of AuthenticationSourceKeys and names that are
available for the selector to reference.
cookies, parameters, headers, and
to determine which authentication source to select. The
HttpServletResponse also helps determine the appropriate
authentication source to select if the authentication selector requires user
is written to, it is considered a
committed response and returned to the user's browser. The
resumePath is a relative URL used in conjunction with the
resp object, such that the user's browser is sent to this URL to
resume the single sign-on (SSO) work flow.
AuthenticationSelectorContext selectContext(HttpServletRequest req,
Map<AuthenticationSourceKey, String> mappedAuthnSourcesNames,
Map<String, Object> extraParameters,
Once an authentication source is selected, you can create an AuthenticationSelectorContext to denote which authentication source to use. You can reference the selected authentication source by its ID or by its context, which is a name that decouples authentication selectors from the configured IDs.
Authentication selector callback
callback() method after authenticating against a
selected source. The
callback() method allows authentication selectors
to update resulting attributes, set cookies, or perform other custom
void callback(HttpServletRequest req,
Writing content to the resp object in the
callback() method is not supported, and doing so might result
in unexpected behavior.
cookies is supported.