Problem with SOAP call to 2.4.4 IdP / port 8443 / F5 load balancer
Benji Wakely
B.Wakely at latrobe.edu.au
Wed Nov 11 22:57:14 EST 2015
Fixed.
Drafting an email but-not-sending for a while investigating was ... instructive,
and helped keep the noise off this list while I worked through problems.
Scott, thanks for your earlier response.
Figured I should note what happened here for reference.
Problem:
- SP making a call to a previously-single-instance IdP (apache-->tomcat) fails when IdP is placed behind a load balancer. (f5-->apache-->tomcat)
# There were actually two problems:
- Disparate SP certs for back-and-front-end calls to IdP
- back-end calls sometimes would route to Node A on load balancer where Node B had the Session created for the user
Actions:
For the disparate SP certs:
- Fixed initially (workaround) by splicing togther the differing back-and-front-end certificates
(duplicated '<KeyDescriptor>' section in local metadata file at /opt/shibboleth-idp/metadata/serviceFoo.xml (referenced in relying-party.conf)
replaced cert with the one revealed by turning Debugging up to high.)
- Fixed Properly by discussing with Vendor.
For the back-end/front-end / split sessions:
- Not possible to Simply load balance this and keep Attribute Query functionality.
Can use Terracotta. Varying reports of Terracotta being a Pain.
- Better option would be to use memcache as detailed below.
References / reading: https://wiki.shibboleth.net/confluence/display/SHIB2/IdPStatelessClustering
https://wiki.shibboleth.net/confluence/display/SHIB2/Memcached+StorageService
Unresolved / never got to the bottom of:
- How or even conclusively If apache behaves differently when placed behind a load-balancer that Should be merely routing the traffic verbatim,
or if this was some kind of Weird Testing Fail on my behalf.
Would have been nice to know / have learned:
- You can have more than certificate set in relying party metadata that will validate a SP.
If this was a simple google fail, my apologies.
Complicating issues / affecting diagnosis :
- You can't load balance a back-channel request where the front-channel request hits a different node.
This was also occurring initially here and muddied the waters slightly.
Cheers,
--Benji
More information about the users
mailing list