Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

Profile Handling and Relying Party Configuration Management

Profile Handling

The profile workflows are built using Spring WebFlow, so it's important to understand the basics of WebFlow flows before proceeding.

Within the IdP, a profile workflow is a Webflow that handles a particular protocol/profile request (e.g., SAML 2 SSO or SAML 1 Attribute Query). Within the profile flow, various subflows may be run that carry out reusable tasks like authentication, attribute resolution, etc. These subflows are generally described in their own sections of the top level design.

The following describes the flow for each profile including the steps that make it up and what they do:

Relying Party Configuration Management

When a remote system makes a request of the identity provider, the IdP may wish to use a configuration tailored to the requester when responding. Such configurations are known as relying party configuration, for consistency with V2 terminology and configuration.

Relying Party Configuration

A relying party configuration (RPC) is a set of configuration options that apply to a given relying party. Every RPC contains, at least:

  • a unique identifier that is used mostly for logging purposes; it doesn't necessarily correspond to any actual "name" of the RP
  • a predicate that determines if the RPC applies for a given request
  • a set of profile configurations

The profile configurations indicate whether a particular communication profile is enabled for use with the relying party and any special configuration options for that profile. Example communication profiles would be SAML 1 attribute queries, SAML 2 SSO requests, etc.

Profile configurations also carry a SecurityConfiguration that supply relevent security settings such as algorithms, credentials, and so forth.

Relying Party Configuration Resolver

The IdP component responsible for keeping track of, and selecting the appropriate, RPC for a given request is the Relying Party Configuration Resolver.

The RPC for a request is selected by iterating through an ordered list of registered RPCs and evaluating the current ProfileRequestContext against the RPC's predicate. The first RPC with a predicate to return an affirmative result is the RPC that's used for the request.

In addition, the resolver stores a special RPC that is used when the IdP deems a particular requester to be "anonymous". This usually occurs when the request does not identify the requester or the identity can not be verified.

  • No labels