...
The IdP provides a number of general-purpose storage facilities that can be used by core subsystems like session management and consent. Broadly speaking, there are two kinds of storage plugins: client-side and server-side. Client-side plugins have the advantage of requiring no additional software or configuration and make clustering very robust and simple, but they only support a subset of use cases. Server-side plugins (aside from the simple case of storing data in memory) support all use cases, but require additional software and configuration, and usually create additional points of failure in a clustered deployment.
You may wish to review the SameSite topic, as it may have implications for your storage options and/or the need to address SameSite based on your chosen options.
The IdP ships with 3 preconfigured org.opensaml.storage.StorageService beans:
...
Expand | |||||||
---|---|---|---|---|---|---|---|
| |||||||
Requirements: memcached v1.4.14 or later The memcached-based storage facility in IdPv3 is based on the spymemcached library, which has a number of compelling features for HA deployments:
The failover facility merits further discussion. Failover is enabled by specifying multiple memcached hosts and Bear in mind that different storage use cases have different failover properties. While the replay cache would be similarly unimpacted, the artifact map failing to retrieve a previously stored artifact mapping would result in a failed login to the service to which the artifact was sent. The following architecture is strongly recommended suggested for HA deployments that wish to use memcache: Thus every IdP node runs a memcached service and the Java process running the IdP software connects to every memcached service. The following configuration example assumes the recommended architecture above and should be placed in conf/global.xml . MemcachedStorageService Configuration
Once a MemcachedStorageService bean has been defined as above, it can be used with subsystems that require a StorageService component. The following configuration snippet from conf/idp.properties indicates how to use memcached for session storage. Memcached for IdP Sessions
|