Session is recovered but then immediately removed
Eric Tully
eric_tully at omnisys.com
Tue May 23 00:00:43 UTC 2023
Hello All,
Our goal is to have users log into the SP on the main server https://foo.example.com
and then be able to use that same SAML session when they visit other servers on the site like:
https://server01.foo.example.com
https://server02.foo.example.com
The user is able to authenticate at the IdP and connect to the SP on the main server just fine. The problem is that when they go to either of the secondary servers (server01 or 02), the session seems to be recovered but then it's immediately removed as you can see in the shibd.log entries below. I've turned on debug for every log and I don't see any reason given for the session's removal.
All three servers have the same SP entity ID and same encryption (pem) files.
The shibboleth2.xml file is exactly the same on all three machines.
The sealed.keys file is also exactly the same on all three.
All three machines are set to the same time and timezone, UTC.
I made sure that the cookies are created for .foo.example.com so that they'd be visible in the subdomains (tested and working).
My main question is, how do I determine why it decided to remove the session?
I'm watching every log in /var/log/shibboleth/ and I've checked journalctl -xe
shibd.log shows the recovery and then removal of the session:
2023-05-22 21:54:15 DEBUG Shibboleth.SessionCache [1] [default]: checking for revocation of session (_b68e0b16601fc9d4f893502e467c4696)
2023-05-22 21:54:15 DEBUG Shibboleth.SessionCache [1] [default]: attempting recovery of session (_b68e0b16601fc9d4f893502e467c4696)
2023-05-22 21:54:15 DEBUG Shibboleth.SessionCache [1] [default]: storing recovered session (_b68e0b16601fc9d4f893502e467c4696)...
2023-05-22 21:54:15 DEBUG XMLTooling.StorageService [1] [default]: inserted record (session) in context (_b68e0b16601fc9d4f893502e467c4696) with expiration (1684799655)
2023-05-22 21:54:15 DEBUG XMLTooling.StorageService [1] [default]: inserted record (UtxmRnAuGzcFGeBvnD3bSLLubHw=) in context (NameID) with expiration (1684821248)
2023-05-22 21:54:15 INFO Shibboleth.SessionCache [1] [default]: session recovered: ID (_b68e0b16601fc9d4f893502e467c4696) IdP (https://inf01.example.com:8443/cas/idp) Protocol(urn:oasis:names:tc:SAML:2.0:protocol)
2023-05-22 21:54:15 DEBUG XMLTooling.StorageService [1] [default]: updated expiration of valid records in context (_b68e0b16601fc9d4f893502e467c4696) to (1684799655)
2023-05-22 21:54:15 DEBUG Shibboleth.Listener [1] [default]: dispatching message (remove::StorageService::SessionCache)
2023-05-22 21:54:15 INFO Shibboleth.SessionCache [1] [default]: removed session (_b68e0b16601fc9d4f893502e467c4696)
2023-05-22 21:54:15 DEBUG XMLTooling.StorageService [1] [default]: inserted record (_b68e0b16601fc9d4f893502e467c4696) in context (Revoked) with expiration (1684821255)
2023-05-22 21:54:15 INFO Shibboleth-TRANSACTION.AuthnRequest [1] [default]: ||https://inf01.example.com:8443/cas/idp||||||urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect||||||
Relevant sections of my shibboleth2.xml file:
<DataSealer type="Versioned" path="sealer.keys" />
<SessionCache type="StorageService" StorageService="mem" cacheAssertions="false"
cacheAllowance="3600" inprocTimeout="900" cleanupInterval="900"
persistedAttributes="clientName firstName geoLocation serverIpAddress username (snipped list of ten more)" />
<ReplayCache StorageService="mem"/>
<ApplicationDefaults entityID=https://foo.example.com/entry
REMOTE_USER="eppn subject-id pairwise-id persistent-id"
cipherSuites="DEFAULT:!EXP:!LOW:!aNULL:!eNULL:!DES:!IDEA:!SEED:!RC4:!3DES:!kRSA:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1">
<Sessions lifetime="28800" timeout="3600" relayState="ss:mem" consistentAddress="false" exportLocation=https://foo.example.com/Shibboleth.sso/GetAssertion checkAddress="false" handlerSSL="true" cookieProps="; domain=.foo.example.com; path=/ ; secure ; HttpOnly" redirectLimit="none" >
Apache is setup like this:
AuthType shibboleth
ShibRequireSession On
require valid-user
Require shib-session
but I also tried Require shib-session instead of valid-user but that didn't fix the problem.
Thank you for any help or pointers,
Eric Tully
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/users/attachments/20230523/fd29359e/attachment.htm>
More information about the users
mailing list