On 17/08/13 04:33, Jacob Weber wrote:
> So if I understand correctly, the SP's session is more of a cache. If
> it expires, that doesn't mean that the user needs to log in again; it
> just means that it needs to go back to the IdP to check. As long as
> the IdP's session is still active, it will send back the same assertion.
Yes. You can (non-SLO) logout of a SP, and when you try to login again,
you will "magically" be logged in without the user noticing the IdP was
involved, as the IdP session was still valid. If the SP developers are
smart, they should set their SP session expiry to the same time as the
IdP - so the two logout events are synchronized - but that's their choice.
> Then it's the IdP's session that really controls the length of time
> until the user needs to log in again, right? The SP has no control
> over that.
Weeelll... You are correct in that if the IdP session expires, the user
cannot log into a fresh SP without fully reauthenticating. But - the SP
can *be coded* to allow a successful SAML login event to give out a 1000
year SP cookie if it so chooses. So in that situation, the fact that an
IdP session has expired has no affect on the users access to that SP.
In fact, we see that all the time with Mobile apps with apparent SAML
support. The *usability* issue with mobile apps means that they are all
designed so that having to type in passwords is an anathema, so even
when they support SAML, it's all about validating the authentication,
then giving out a 1000 year cookie (otherwise known as OAUTH) and never
talking to the IdP again. Totally ruins one of the primary reason
enterprises want to use SSO technology: namely that when an employee
leaves, an enterprise wants them to NOT be able to access any of the
company-supplied apps any more. So they disable/delete their account,
and indeed the ex-employee cannot login via their web browser any more -
but the mobile version of that same app *keeps working* (so far our
experience has shown this to be 100% true :-(
> So the IdP is providing not just identity, but the length of time that
> the identity is valid. If this is correct, then: - If the IdP's
> session expires, it needs to send a Single Logout request to the SP,
> to invalidate its session. Otherwise the SP could continue to work
> until its session expires. How would you handle this situation using
> SSP? It seems like this would need to be a server-to-server call,
> since the browser might not be making any requests to the IdP. - But
> if the SP's session expires, it doesn't need to do a Single Logout.
> The next time you hit a protected resource on the SP, it will just
> re-authenticate with the IdP. BTW, in SSP, are the sessions a fixed
> duration, or are they extended as long as they're being used? Thanks
> for helping me out here. Jacob
None of that is part of the SAML spec, so it just doesn't happen. For
one thing, the IdP doesn't talk to anyone - it's all Browser initiated.
SAML solves centralized authentication for web applications - that's it.
It doesn't handle provisioning or deprovisioning, and barely handles
SLO. In fact, our small usage of SAML so far has shown that SLO doesn't
even work - no commercial SP we've used so far supports SLO and in fact
one of them (Box) is so broken that we had to DISABLE the SLO button
just to stop users complaining. eg if you are logged into 3 SPs
(SP1,Box,SP3) and Box.net errors when you try to SLO, you never get to
"SP3" as your browser stops hopping at the error. ie you end up logged
out of SP1 only. As usual, the sad thing is the open source SPs I've
tried all support SLO - probably because the authors are on this list :-)
As far as setting expiry times, they are definitely configurable with
SSP and are documented in config/config.php
--
Cheers
Jason Haar
Information Security Manager, Trimble Navigation Ltd.
Phone:
+1 408 481 8171
PGP Fingerprint: 7A2E 0407 C9A6 CAF6 2B9F 8422 C063 5EBB FE1D 66D1